JVM monitoring
NetXMS has Java plugin that allow to monitor JVM. This subagent is build using JMX functionality.
Metrics
Single-value Metrics
Metric |
Type |
Meaning |
---|---|---|
JMX.ObjectAttribute(name,object,attribute,[item]) |
String |
Get attribute of any connection, object. Optional attribute item is used when attribute is a list. |
JMX.Memory.ObjectsPendingFinalization(name) |
Unsigned integer |
JVM objects pending finalization |
JMX.Memory.Heap.Committed(name) |
Unsigned integer 64 |
JVM committed heap memory |
JMX.Memory.Heap.Current(name) |
Unsigned integer 64 |
JVM current heap size |
JMX.Memory.Heap.Init(name) |
Unsigned integer 64 |
JVM initial heap size |
JMX.Memory.Heap.Max(name) |
Unsigned integer 64 |
JVM maximum heap size |
JMX.Memory.NonHeap.Committed(name) |
Unsigned integer 64 |
JVM committed non-heap memory |
JMX.Memory.NonHeap.Current(name) |
Unsigned integer 64 |
JVM current non-heap memory size |
JMX.Memory.NonHeap.Init(name) |
Unsigned integer 64 |
JVM initial non-heap memory size |
JMX.Memory.NonHeap.Max(name) |
Unsigned integer 64 |
JVM maximum non-heap memory size |
JMX.Threads.Count(name) |
Unsigned integer |
JVM live threads count |
JMX.Threads.DaemonCount(name) |
Unsigned integer |
JVM daemon threads count |
JMX.Threads.PeakCount(name) |
Unsigned integer |
JVM peak number of threads |
JMX.Threads.TotalStarted(name) |
Unsigned integer |
JVM total threads started |
JMX.VM.BootClassPath(name) |
String |
JVM boot class path |
JMX.VM.ClassPath(name) |
String |
JVM class path |
JMX.VM.LoadedClassCount(name) |
Unsigned integer |
JVM loaded class count |
JMX.VM.Name(name) |
String |
JVM name |
JMX.VM.SpecVersion(name) |
String |
JVM specification version |
JMX.VM.TotalLoadedClassCount(name) |
Unsigned integer |
JVM total loaded class count |
JMX.VM.UnloadedClassCount(name) |
Unsigned integer |
JVM unloaded class count |
JMX.VM.Uptime(name) |
Unsigned integer |
JVM uptime |
JMX.VM.Vendor(name) |
String |
JVM vendor |
JMX.VM.Version(name) |
String |
JVM version |
Lists
Metric |
Meaning |
---|---|
JMX.Domains(name) |
List of JVM domains |
JMX.Objects(name) |
List of JVM objects |
JMX.ObjectAttributes(name) |
List of JVM object’s attributes |
Configuration
It is required to define java subagent and it’s configurations before JMX plugin configuration. More information about Java subagent and it’s configuration can be found in Java subagent section. JMS has only one configuration parameter “Server”. It is used to define JMX server connection string.
JMS server connection string declaration options:
name:url
name:login@url
name:login/password@url
Configuration example
In example are defined 2 JMS connections: name and serverName2.
MasterServers = netxms.demo
SubAgent=java.nsm
[JAVA]
jvm = /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
Plugin = jmx.jar
[JMX]
Server=name:login/password@localhost
Server=serverName2:admin/pwd123@server1