JVM monitoring

NetXMS has a Java plugin that allows to monitor the 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 the java subagent and its configuration before JMX plugin configuration. More information about the Java subagent and its configuration can be found in the Java subagent section. JMS has only one configuration parameter “Server”. It is used to define the JMX server connection string.

JMS server connection string declaration options:

  • name:url

  • name:login@url

  • name:login/password@url

Configuration example

In this example there are 2 JMS connections defined: 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