JVM(jstat) custom metrics plugin for mackerel.io agent.
mackerel-plugin-jvm -javaname=<javaname> [-pidfile=</path/to/pidfile>] [-jstatpath=</path/to/jstat] [-jpspath=/path/to/jps] [-jinfopath=/path/to/jinfo] [-remote=<host:port>]
- JVM 1.6 or higher
[plugin.metrics.jvm]
command = "/path/to/mackerel-plugin-jvm -javaname=NettyServer -jstatpath=/usr/bin/jstat -jpspath=/usr/bin/jps -jinfopath=/usr/bin/jinfo"
user = "SOME_USER_NAME"
This plugin can retrieve metrics from remote jstatd with rmi protocol by setting -remote
option.
In this case, following limitations are applied:
- jps and jstat commands must be executable localy from this plugin
- 'CMS Initiating Occupancy Fraction' metric cannot be retrieved remotely
You can check javaname by jps command.
# jps
14203 NettyServer
14822 Jps
Please choose an arbitrary name as javaname
when you use pidfile
option.
It is just used as a prefix of graph label.
This plugin (as well as the jps command explained above) must be executed by the user who executes the target Java application process, while mackerel-agent usually runs under root privilege.
Since the executing user may not be root, you are required to specify the user in mackerel-agent-conf
as shown above.
Since there is a performance issue called the four month bug, several middlewares specify the -XX:+PerfDisableSharedMem
JVM option as default.
When the JVM option is enabled, this plugin is no longer able to work because which depends jps
and jstat
JDK tools.