Bean 正規表現を使用して JMX メトリクスをフィルタリングし、追加のタグを提供する

Datadog は、JMX Mbean 名とドメイン名をマッチングさせて、includeexclude フィルターを構成するための正規表現をサポートしています。正規表現は、Java の正規表現形式に準拠する必要があります。これらのフィルターはバージョン 5.5.0 で追加されたことに注意してください。

提供された正規表現からのキャプチャグループは、メトリクスの追加のタグ値を供給するために使用することができます。

この記事では、Java インテグレーションbean_regex を使用する方法の一例と、そのようなキャプチャグループを参照して追加のタグを設定する方法について説明します。

domain.example.com:name=my.metric.name.env.dev.region.eu-central-1.method.GET.status.200 という Mbean 名があるとします。Agent がメトリクスを収集した後、タグとして使用できる情報がいくつかあります。例えば、以下のタグでメトリクスをエクスポートすることができます。

  • env: dev
  • region: eu-central-1
  • method: GET
  • status: 200

Bean 正規表現は、単一の正規表現または正規表現のリストとして提供することができます。後者の場合、リストの中で最初にマッチしたエントリのみが考慮されます。カスタムメトリクスにいくつかのタグを追加してエクスポートするためのコンフィギュレーションファイルの例をご覧ください。

init_config:
  is_jmx: true

instances:
  - host: "<JMX_ENDPOINT>"
    port: "<JMX_PORT>"

    conf:
      - include:
          domain: domain.example.com
          bean_regex:
            - "domain.example.com:name=my.metric.name.*(?:\\.env\\.)([a-z]+)(?:.*\\.region\\.)([a-z-]+[0-9])(?:.*\\.method\\.)([A-Z]+)(?:.*\\.status\\.)([0-9]+)(?:.*)"
          attribute:
            attribute1:
              metric_type: gauge
              alias: "my.jmx.metric"
          tags:
              env: $1
              region: $2
              method: $3
              status_code: $4
              optional: tag

各キャプチャグループは、Java Map に格納されます。最初のキャプチャグループは位置 0 から始まります。どのキャプチャグループをタグとしてエクスポートするかを決めたら、include または exclude フィルターの tags セクションで、グループの番号 (例えば、Map 内の位置) と同様に参照する必要があります。

bean_regex で提供された例では、キャプチャグループは次のとおりです。

  • $0: domain.example.com:name=my.metric.name.env.dev.region.eu-central-1.method.GET.status.200
  • $1: dev
  • $2: eu-central-1
  • $3: GET
  • $4: 200

メトリクスエクスプローラーを使用すると、メトリクスをクエリしたり、先ほど作成したタグでフィルターをかけたりすることができます。

その他の参考資料