Database モニタリングの概要

概要

Datadog データベースモニタリングを使用すると、データベースの状態とパフォーマンスの理解を深め、問題の根本原因を特定しやすくなります。

1 つの場所で、次を表示できます。

  • ホストレベルのメトリクス
  • 説明プラン
  • 過去のクエリパフォーマンスメトリクス

このガイドに目を通し、PostgreSQL データベースの例で Datadog データベースモニタリングを設定してください。次に、高価なクエリを特定し、遅いクエリのトラブルシューティングを行い、ダッシュボードを作成してクエリ量の変化を表示します。

セットアップ

前提条件

始める前に、Datadog アカウントが必要です。

サンプルアプリケーションを実行するには、GNU MakeDocker を備えたマシンが必要です。Datadog API キーを利用できるようにします。

サンプルアプリケーションをインストールします

サンプルアプリケーションは、Docker コンテナ内の Datadog Agent と PostgreSQL データベースを起動します。アプリケーションの実行中、Agent はデータベースメトリクスを Datadog に送信します。Datadog データベースモニタリングでアプリケーションからのデータを表示できます。

以下の手順に従って、サンプルアプリケーションを MacOS または Linux にインストールします。

  1. サンプルアプリケーションを含むリポジトリのクローンを作成します。

    git clone https://github.com/DataDog/dd-database-monitoring-example
    
  2. dd-database-monitoring-example ディレクトリに変更します。

    cd dd-database-monitoring-example
    
  3. 環境変数 DD_API_KEY を Datadog API キーに設定します。

    export DD_API_KEY=<API_KEY>
    
  4. アプリケーションを起動します。

    make postgres
    

Ctrl + C を押してコマンドを停止するまで、コマンドは実行され続けます。

高価なクエリを特定する

どのクエリが最もデータベース時間を消費するかを調べるには、クエリメトリクスビューを使用します。

  1. Database Monitoring ページで、UI の Query metrics タブをクリックします。

  2. 正規化されたクエリテーブルを Percent time で並べ替えて、データベースの実行に最も多くの時間を費やしているクエリを確認します。

    データベース時間を最も消費するクエリが最初の行に表示されます。

    パーセント時間でソートされた正規化されたクエリ

遅いクエリをトラブルシューティングする

遅いクエリを識別するだけでなく、Datadog データベースモニタリングはその診断にも役立ちます。クエリの説明プランは、データベースがクエリを解決するために実行する手順を説明します。クエリサンプルビューでサンプルをクリックして、説明プランを表示します。

  1. Database Monitoring 内の Samples タブを選択して、Query Samples ビューに移動します。

  2. In ドロップダウンで、Explain Plans を選択します。

  3. 正規化されたクエリテーブルを Duration で並べ替えます。

    期間でソートされた正規化されたクエリサンプル
  4. テーブル内の Explain Plan 列にデータがあるクエリを見つけてクリックし、Sample Details ページを開きます。

  5. Explain Plan の下で、List View をクリックします。Explain Plan Sample ページの下部にあるこの実行計画では、クエリに Index Scan が必要であることが示されています。

    インデックススキャンを示すクエリ実行計画

データベースの状態とパフォーマンスを視覚化する

データベースの状態とパフォーマンスを一目で理解するには、Datadog データベースモニタリングメトリクスをダッシュボードに追加します。

クエリ量の変更を表示する

たとえば、クエリカウントメトリクスを追跡する Change ウィジェットを追加することで、過去 1 時間のクエリ量の絶対的な変化を確認できます。

  1. UI で Dashboards > New Dashboard を選択します。

  2. ダッシュボードの名前を入力します。New Dashboard ボタンをクリックして、新しいダッシュボードに移動します。

  3. ダッシュボードにコンテンツを追加するには、Add Widgets をクリックします。

  4. ウィジェットカルーセルで、Change ウィジェットを選択します。

  5. Metric ドロップダウンで postgresql.queries.count を選択します。このメトリクスは、PostgreSQL データベースに送信されたクエリの数をカウントします。

  6. ウィジェットがホストごとにクエリを集計するように、Break it down by ドロップダウンで host を選択します。

    postgres クエリメトリクスの変更ウィジェットを構成する
  7. Save ボタンをクリックします。ダッシュボードに新しいウィジェットが表示されます。

    クエリカウントを表示するウィジェットを変更する

すぐに使えるダッシュボードを表示する

Datadog データベースモニタリングが提供するすぐに使用できるダッシュボードで、現在のデータベースアクティビティ、リソース使用率などを確認します。

ダッシュボードにアクセスするには、Database Monitoring ページから Dashboards タブを選択し、表示したいダッシュボードを選択します。

必要に応じて、すぐに使用できるダッシュボードのクローンを作成して変更できます。

その他の参考資料