collectd-formula
collectd-formula copied to clipboard
collectd.java allows only single java application to graph
Right now it is only possible to define Connection in java.con. This means e.g if you running zk and Kafka on same node you can't graph both applications.
Current Setup:
pillar.example
collectd:
javalib: /opt/java/jre/lib/amd64/libjava.so
plugins:
java:
jvmargs:
- "-verbose:jni"
- "-Djava.class.path=/usr/share/collectd/java/collectd-api.jar:/usr/share/collectd/java/generic-jmx.jar"
host: {{ grains['id'] }}
port: 28181
/etc/collectd.d/java.conf
<Connection>
ServiceURL "service:jmx:rmi:///jndi/rmi://example.host.com:28181/jmxrmi"
Host "example.host.com"
Collect "classes"
Collect "compilation"
Collect "garbage_collector"
Collect "memory"
Collect "memory_pool"
</Connection>
Expected Setup:
pillar.example
collectd:
javalib: /opt/java/jre/lib/amd64/libjava.so
plugins:
java:
jvmargs:
- "-verbose:jni"
- "-Djava.class.path=/usr/share/collectd/java/collectd-api.jar:/usr/share/collectd/java/generic-jmx.jar"
app1:
host: {{ grains['id'] }}
InstancePrefix "app1-"
port: 28181
app2:
host: {{ grains['id'] }}
InstancePrefix "app2-"
port: 9999
/etc/collectd.d/java.conf
<Connection>
ServiceURL "service:jmx:rmi:///jndi/rmi://example.host.com:28181/jmxrmi"
Host "example.host.com"
InstancePrefix "app1-"
Collect "classes"
Collect "compilation"
Collect "garbage_collector"
Collect "memory"
Collect "memory_pool"
</Connection>
<Connection>
ServiceURL "service:jmx:rmi:///jndi/rmi://example.host.com:9999/jmxrmi"
Host "example.host.com"
InstancePrefix "app2-"
Collect "classes"
Collect "compilation"
Collect "garbage_collector"
Collect "memory"
Collect "memory_pool"
</Connection>