Pocket

というわけで毎度Datadogの設定にハマる私ですが、今回は去年の10月頃にリリースされたDatadogの新機能である Database Monitoring を利用してAurora MySQL 8のクエリをモニタリングしてみました。Datadogのドキュメントとプラスして補足も兼ねてブログしたいと思います。


Database Monitoring

https://www.datadoghq.com/ja/product/database-monitoring/

Datadog データベースモニタリングでは、すべてのデータベースのクエリメトリクスと実行計画を1つの場所で見ることができます。データベースモニタリングでは、コストのかかるクエリや遅いクエリを素早くピンポイントで特定し、正確な実行内容を掘り下げてボトルネックに対処できます。また、クエリとホストメトリクスの相関関係により、リソースの制約がデータベースのパフォーマンスに与える影響を容易に特定し理解できます。1ホスト$ 70で利用可能。

データベースは日々生きているといっても過言ではありません。運用していくと突然アラートが鳴り、Webのレスポンスが悪くなり、大量のスロークエリが出現します。その中でどんなSQLが実行しているのか、コード内であればどこが問題なのかなど迅速に調査しながら改善する必要があります。そこでDatadogのAPM(以下ブログより)と今回のDatabase Monitoringを利用すれば調査の工数がかからなくなります。早速、初期設定があるので試していきましょう。

[Datadog][APM]ECS/FargateでPHPアプリをモニタリングする


Setting Up Database Monitoring for Aurora managed MySQL

https://docs.datadoghq.com/ja/database_monitoring/setup_mysql/aurora/?tab=mysql57

※Aurora MySQL 8がまだなさそうなので5.7のドキュメントを参考にしています。

  • パラメーターグループの修正

  • datadog DBユーザーの作成と権限設定

  • スキーマの作成

  • explanを収集するようにストアドプロシージャの設定

※hogeはDB名を指定すること

  • ExplainPlanを収集するすべてのスキーマでストアドプロシージャを設定

  • performance_schema.events_statements_*を有効

まずはクエリ監視のために追加するパラメーターグループですが、一旦クラスターとインスタンスの2つに設定しました。必ずDBの再起動をしないと反映されないので気をつけましょう。反映されているかは以下のSQL叩けば確認できます。

また、Datadog Agentは統計とクエリを収集するために、データベースへの読み取り専用ユーザーが必要が必要になるので上記のように設定しましょう。

  • Datadog Agentのインストールと設定

/etc/datadog-agent/conf.d/mysql.d/conf.yaml

今回はテストなのでEC2にDatadog Agentをインストールしてライターインスタンスに対して接続してみました。ECS/FargateであればDatadogコンテナを準備すればいけますね。これで設定は完了となります。


APM > Databases

モニタリングすることができました!実際の動作しているクエリやレスポンスなどが可視化されていることで、スロークエリも早期発見や予測なども調査しやすくなったと思います。


まとめ

AWSにもRDS Performance Insightsがありますが、DatadogのDatabase Monitoringの方がより細かく可視化されているかなといった印象を受けました。コストは1ホスト$70で割高ですが、サービスの質をより上げるのには必要でしょうね。これからバシバシ活用していきます!

※ちなみにPerformance Insightsも条件付きなので忘れないようにしたいところですな。

[AWS][RDS]Performance Insightsの条件

Pocket

カテゴリー: AWSDatadog

adachin

1989年生まれのSRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。好きなツールはAnsible,Terraform,CircleCIで、ECS/Fargateでのインフラ構築を得意とする。副業では数社サーバー保守とベンチャー企業のインフラ改善やMENTAで未経験者にインフラのコーチングを実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、ECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。個人開発では「夫婦、パートナー向け家事管理サービス/famii」をCakePHP4で絶賛開発中。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください