I Have a Matching Bean for my JMX integration but nothing on Collect !

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Trouble setting up your JMX integration ? Here are a few great articles to get you started :

If everything is set up properly as described in the above articles, and your metric appears in the Agent log file (but not in the status command), then there is probably an issue with the metric_type that you’re using.

Here is the output of the list_matching_attributes.log file :

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

How can I solve this?

Go to your Agent Log file and search for errors similar to the following:

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"
 [...]

This means that your Hadoop:service=HBase,name=Master,sub=Server - tag.isActiveMaster is returning string values.

Check your jmx.yaml file, the following excerpt should show something similar:

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

The java.lang.String metric_type confirms the issue you were seeing in the logs.

To resolve this issue, change the associated metric_type, and ensure that your jmx.yaml file has the following configuration (note the changes in the last four lines):

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
              # Note: If using Agent 6, boolean keys must be in quotes values: {"true": 1, "false": 0, default: 0}

Jmxfetch then knows it’s a string and uses this rule to transform that into a numeric metric.

Reach out to Datadog Support team if you are still having issues.