JMX Workshop @ ByteBay 2018
See ArrayBlockingQueue-exercise
branch for example workshop exercise solution.
Resources
JMX Tutorials and Docs
Simple JMX tutorial from Oracle
Easy to follow JMX tutorial series, start from the bottom
Oracle: Monitoring and Management Using JXM Technology
Oracle: JMX Technology Overview
Oracle: JMX Technology Tutorial
Oracle: Java SE Monitoring and Management Guide see Chapter 2 for remote monitoring security settings!
Best practices, a bit outdated (2005?)
Insecurity
Frameworks/Libraries
Spring Framework and JMX
Dropwizard Metrics - can be used without Dropwizard, saves you lots of work!
Connection Pools
C3P0 JMX
HikariCP
Tomcat JDBC Connection Pool
Servers
Jetty, Managing Jetty with JConsole and JMC
Tomcat Cassandra
Kafka uses Metrics, actually
APM (kindof)
Jolokia exposes MBeans data via HTTP
jmxtrans collects attributes to report or push further
Prometheus, collects JMX data, JMX Exporter is needed in your application. See additional instructions in dropwizardjmxdemo/README.md
Grafana great-looking dashboarding over Prometheus data
Troubleshooting
In case JMX Agent is not active by default and jconsole
can't connect,
you can enable remote connectivity by passing the following paramaters when
starting java:
-Dcom.sun.management.jmxremote.port=9005
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Please note the security implications, as noted during the workshop!