JMX インテグレーションに一致する Bean がありますが収集できません。

JMX インテグレーションのセットアップに問題がありますか?このような場合は、以下の記事を参考にしてください。

上記の記事で説明されているようにすべてが適切にセットアップされており、さらにメトリクスが Agent ログファイルに表示される場合 (ただし status コマンド には表示されない)、おそらく使用している metric_type に問題があると思われます。

以下は、list_matching_attributes.log ファイルの出力です。

Matching: 0/350. Bean name: Hadoop:service=HBase,name=Master,sub=Server - Attribute name: tag.isActiveMaster  - Attribute type: java.lang.String

どうすれば解決できますか?

Agent ログファイルにアクセスし、以下のようなエラーを検索してください。

2016-12-05 03:08:33,261 | WARN | JMXAttribute | Unable to get metrics from Hadoop:service=HBase,name=Master,sub=Server - tag.isActiveMaster
java.lang.NumberFormatException: For input string: "false"
 [...]

これは、Hadoop:service=HBase,name=Master,sub=Server - tag.isActiveMaster が文字列の値を返していることを意味します。

jmx.yaml ファイルをチェックしてください。次の抜粋は似たようなものを示しているはずです。

init_config:
instances:
  - name: hbase_master
    host: localhost
    port: xxx
    tags:
      application: hbase
      service: master
    conf:
      - include:
          bean: "Hadoop:service=HBase,name=Master,sub=Server"
          [...]
            tag.isActiveMaster:
              alias: jmx.hadoop.hbase.master.server.tag.isActiveMaster
              metric_type: java.lang.String

java.lang.String の metric_type は、ログに表示されていた問題を確認します。

この問題を解決するには、関連する metric_type を変更し、jmx.yaml ファイルが以下の構成になっていることを確認します (最後の 4 行の変更点に注意)。

init_config:
instances:
  - name: hbase_master
    host: localhost
    port: xxx
    tags:
      application: hbase
      service: master
    conf:
      - include:
          bean: "Hadoop:service=HBase,name=Master,sub=Server"
          [...]
            tag.isActiveMaster:
              alias: jmx.hadoop.hbase.master.server.tag.isActiveMaster
              metric_type: gauge
              values:
                true: 1
                false: 0
              # 注: Agent 6 を使用する場合、ブーリアンキーは引用符で囲まれた値でなければなりません: {"true": 1, "false": 0, default: 0}

Jmxfetch はそれが文字列であることを認識し、このルールを使ってそれを数値メトリクスに変換します。

まだ問題がある場合は、Datadog サポートチームに連絡してください。