I Have a Matching Bean for my JMX integration but nothing on Collect !
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.