Postgres インテグレーションでカスタムメトリクスを収集するには、Agent の構成ディレクトリ のルートにある conf.d/postgres.d/conf.yaml ファイルの custom_queries オプションを使用します。詳細については、サンプル postgres.d/conf.yaml を参照してください。

注: その他のテーブルへのクエリを必要とするカスタムメトリクスを生成する際は、Postgres ユーザーにそれらのテーブルへの SELECT 権限を付与する必要があります。例: grant SELECT on <TABLE_NAME> to <USER>;

コンフィギュレーション

custom_queries には以下のオプションがあります:

オプション必須説明
metric_prefix各メトリクスは選択したプレフィックスで始まります。
クエリ実行する SQL です。簡単なステートメントにすることも、複数行のスクリプトにすることもできます。結果のすべての行が評価されます。複数行のスクリプトが必要な場合は、パイプを使用します。
列を表すリストです。左から右へ順に並べられます。

次の 2 つの必須データがあります。
- name: サフィックスとして metric_prefix に付加され、完全な名前を形成します。typetag と指定されている場合、この列は、このクエリによって収集されるすべてのメトリクスにタグとして適用されます。
- type: 送信方法 (gaugecountrate など)。tag と設定し、この列のアイテムの名前と値 (<name>:<row_value>) で行の各メトリクスにタグ付けすることができます。
タグ各メトリクスに適用する静的タグのリスト。

  • 定義済みの columns のうち最低 1 つは、メトリクスタイプ (gaugecountrate など) である必要があります。

  • columns 内の定義済みアイテム数は、クエリで返される列数と同じである必要があります。

  • columns のアイテムが定義される順番は、クエリで返される順番と同じである必要があります。

    custom_queries:
      - query: Select F3, F2, F1 from Table;
        columns:
          - {name: f3_metric_alias, type: gauge}
          - {name: f2_tagkey      , type: tag  }
          - {name: f1_metric_alias, type: count}
        [...]
    

データベースとテーブル

以下に示すのは、testdb データベースの company テーブルです。テーブルには 3 件の従業員レコードが含まれています。

testdb=# SELECT * FROM company;

id| name  | age| address    |salary | entry_date | last_raise_time
-------------------------------------------------------------------
1 | Paul  | 32 | California | 20000 | 1457570000 | 1457570300
2 | Allen | 25 | Texas      | 30000 | 1457570060 | 1457570300
3 | Teddy | 23 | Norway     | 45000 | 1457570120 | 1457570300

SQL クエリから YAML コンフィギュレーションへ

ここでは、Paul の年齢と給料をメトリクス値として、Paul の名前と住所をタグとして取得することが目標です。

SQL クエリ:

SELECT age,salary,name,address FROM company WHERE name = 'Paul'

対応する YAML custom_queries の構成

custom_queries:
  - metric_prefix: postgresql
    query: SELECT age,salary,name,address FROM company WHERE name = 'Paul'
    columns:
      - name: employee_age
        type: gauge
      - name: employee_salary
        type: gauge
      - name: name
        type: tag
      - name: localisation
        type: tag
    tags:
      - query:custom

Postgres YAML ファイルを更新した後、Datadog Agent を再起動 します。

検証

結果を確認するには、メトリクスエクスプローラー を使用してメトリクスを検索します。

SQL メトリクスエクスプローラー

デバッグ作業

Agent の status サブコマンドを実行 し、Checks セクションで postgres を探します。

postgres
--------
  - instance #0 [ERROR]: 'Missing metric_prefix parameter in custom_queries'
  - Collected 0 metrics, 0 events & 0 service checks

また、Agent のログ でも有益な情報を確認できる場合があります。

その他の参考資料

お役に立つドキュメント、リンクや記事: