JVM monitoring

NetXMS has Java plugin that allow to monitor JVM. This subagent is build using JMX functionality.

Metrics

Parameters

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