I finally started sending some key JMX stats into Graphite via our collectd setup. A few notes since I’ll probably forget all about this until I next need to configure this.
JMX listens on a random port. Ended up adding all of the following to JAVA_OPTS
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=19876
What objects and attributes are available to monitor? Enable jmxproxy in tomcat with the following in /etc/tomcat7/tomcat-users.xml
and then peruse http://localhost:8080/manager/jmxproxy/
Configured the plugin with Miah’s chef-collectd cookbook. See my recipe and the template at:
The main changes to the plugin configuration is a change to prefix for the thread_pools and the ‘Type’ for class loading.
We use the carbon-writer plugin from Gregory Szorc. The plugin didn’t sanitize out double-quotes, which pretty much horked the Graphite browser. This pull request fixes that.
The Ubuntu build doesn’t include debugging so turning up the log level to ‘’debug’ does nothing. And the ’‘info’ level gives you almost nothing. The most useful steps for tracking down my issues (which came down to the aforementioned double-quote) was a) running in the foreground:
/usr/sbin/collectd -f -C /etc/collectd/collectd.conf
and enabling the CSV plugin to see what was getting written before going to carbon/graphite.