Generic Java JMX
Overview
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Java Applications
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Refer to the vendor documentation.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.MEM.POOL.NAME.MATCHES} | This macro used in memory pool discovery as a filter. |
Old Gen|G1|Perm Gen|Code Cache|Tenured Gen |
{$JMX.USER} | JMX username. |
|
{$JMX.PASSWORD} | JMX password. |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX agent | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing
|
ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing
|
ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing
|
Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=Compilation","Name"] Preprocessing
|
Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX agent | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing
|
Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing
|
Memory: Heap memory used | Current memory usage outside the heap. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing
|
Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing
|
Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing
|
Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing
|
Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX agent | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing
|
OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX agent | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing
|
OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them. |
JMX agent | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX agent | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing
|
Runtime: JVM uptime | JMX agent | jmx["java.lang:type=Runtime","Uptime"] Preprocessing
|
|
Runtime: JVM name | JMX agent | jmx["java.lang:type=Runtime","VmName"] Preprocessing
|
|
Runtime: JVM version | JMX agent | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing
|
|
Threading: Daemon thread count | Number of daemon threads running. |
JMX agent | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing
|
Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX agent | jmx["java.lang:type=Threading","PeakThreadCount"] |
Threading: Thread count | The number of threads running at the current moment. |
JMX agent | jmx["java.lang:type=Threading","ThreadCount"] |
Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX agent | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Generic Java JMX: Compilation: {HOST.NAME} uses suboptimal JIT compiler | find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1 |
Info | Manual close: Yes | |
Generic Java JMX: Memory: Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])>0 |
Warning | ||
Generic Java JMX: Memory: Non-Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])>0 |
Warning | ||
Generic Java JMX: OperatingSystem: Opened file descriptor count is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
Warning | ||
Generic Java JMX: OperatingSystem: Process CPU Load is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX} |
Average | ||
Generic Java JMX: Runtime: JVM is not reachable | nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1 |
Average | Manual close: Yes | |
Generic Java JMX: Runtime: {HOST.NAME} runs suboptimal VM type | find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1 |
Info | Manual close: Yes |
LLD rule Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Garbage collector discovery | Garbage collectors metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=GarbageCollector"] |
Item prototypes for Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
GarbageCollector: {#JMXNAME} number of collections per second | Displays the total number of collections that have occurred per second. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionCount"] Preprocessing
|
GarbageCollector: {#JMXNAME} accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionTime"] Preprocessing
|
LLD rule Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool discovery | Memory pools metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=MemoryPool"] |
Item prototypes for Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool: {#JMXNAME} committed | Current memory allocated. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.committed"] Preprocessing
|
Memory pool: {#JMXNAME} maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"] Preprocessing
|
Memory pool: {#JMXNAME} used | Current memory usage. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"] |
Trigger prototypes for Memory pool discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Generic Java JMX: Memory pool: {#JMXNAME} memory usage is high | min(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"],{$JMX.MP.USAGE.TIME:"{#JMXNAME}"})>(last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])*{$JMX.MP.USAGE.MAX:"{#JMXNAME}"}/100) and last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])>0 |
Warning |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Generic Java JMX
Overview
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- Java Applications
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Refer to the vendor documentation.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.MEM.POOL.NAME.MATCHES} | This macro used in memory pool discovery as a filter. |
Old Gen|G1|Perm Gen|Code Cache|Tenured Gen |
{$JMX.USER} | JMX username. |
|
{$JMX.PASSWORD} | JMX password. |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX agent | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing
|
ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing
|
ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing
|
Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=Compilation","Name"] Preprocessing
|
Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX agent | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing
|
Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing
|
Memory: Heap memory used | Current memory usage outside the heap. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing
|
Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing
|
Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing
|
Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing
|
Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX agent | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing
|
OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX agent | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing
|
OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them. |
JMX agent | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX agent | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing
|
Runtime: JVM uptime | JMX agent | jmx["java.lang:type=Runtime","Uptime"] Preprocessing
|
|
Runtime: JVM name | JMX agent | jmx["java.lang:type=Runtime","VmName"] Preprocessing
|
|
Runtime: JVM version | JMX agent | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing
|
|
Threading: Daemon thread count | Number of daemon threads running. |
JMX agent | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing
|
Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX agent | jmx["java.lang:type=Threading","PeakThreadCount"] |
Threading: Thread count | The number of threads running at the current moment. |
JMX agent | jmx["java.lang:type=Threading","ThreadCount"] |
Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX agent | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1 |
Info | Manual close: Yes | |
Memory: Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])>0 |
Warning | ||
Memory: Non-Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])>0 |
Warning | ||
OperatingSystem: Opened file descriptor count is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
Warning | ||
OperatingSystem: Process CPU Load is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX} |
Average | ||
Runtime: JVM is not reachable | nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1 |
Average | Manual close: Yes | |
Runtime: {HOST.NAME} runs suboptimal VM type | find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1 |
Info | Manual close: Yes |
LLD rule Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Garbage collector discovery | Garbage collectors metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=GarbageCollector"] |
Item prototypes for Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
GarbageCollector: {#JMXNAME} number of collections per second | Displays the total number of collections that have occurred per second. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionCount"] Preprocessing
|
GarbageCollector: {#JMXNAME} accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionTime"] Preprocessing
|
LLD rule Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool discovery | Memory pools metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=MemoryPool"] |
Item prototypes for Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool: {#JMXNAME} committed | Current memory allocated. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.committed"] Preprocessing
|
Memory pool: {#JMXNAME} maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"] Preprocessing
|
Memory pool: {#JMXNAME} used | Current memory usage. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"] |
Trigger prototypes for Memory pool discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Memory pool: {#JMXNAME} memory usage is high | min(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"],{$JMX.MP.USAGE.TIME:"{#JMXNAME}"})>(last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])*{$JMX.MP.USAGE.MAX:"{#JMXNAME}"}/100) and last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])>0 |
Warning |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Generic Java JMX
Overview
For Zabbix version: 6.2 and higher
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MEM.POOL.NAME.MATCHES} | This macro used in memory pool discovery as a filter. |
`Old Gen |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
{$JMX.PASSWORD} | JMX password. |
`` |
{$JMX.USER} | JMX username. |
`` |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Garbage collector discovery | Garbage collectors metrics discovery. |
JMX | jmx.discovery["beans","java.lang:name=*,type=GarbageCollector"] |
Memory pool discovery | Memory pools metrics discovery. |
JMX | jmx.discovery["beans","java.lang:name=*,type=MemoryPool"] Filter: - {#JMXNAME} MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
JMX | ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=Compilation","Name"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
JMX | Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory used | Current memory usage outside the heap. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them. |
JMX | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
JMX | OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM uptime | - |
JMX | jmx["java.lang:type=Runtime","Uptime"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM name | - |
JMX | jmx["java.lang:type=Runtime","VmName"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Runtime: JVM version | - |
JMX | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Daemon thread count | Number of daemon threads running. |
JMX | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX | jmx["java.lang:type=Threading","PeakThreadCount"] |
JMX | Threading: Thread count | The number of threads running at the current moment. |
JMX | jmx["java.lang:type=Threading","ThreadCount"] |
JMX | Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
JMX | GarbageCollector: {#JMXNAME} number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: {#JMXNAME} accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool: {#JMXNAME} committed | Current memory allocated. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool: {#JMXNAME} maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool: {#JMXNAME} used | Current memory usage. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | - |
find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1 |
INFO | Manual close: YES |
Memory: Heap memory usage is high | - |
min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])>0 |
WARNING | |
Memory: Non-Heap memory usage is high | - |
min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])>0 |
WARNING | |
OperatingSystem: Opened file descriptor count is high | - |
min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
WARNING | |
OperatingSystem: Process CPU Load is high | - |
min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX} |
AVERAGE | |
Runtime: JVM is not reachable | - |
nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1 |
AVERAGE | Manual close: YES |
Runtime: {HOST.NAME} runs suboptimal VM type | - |
find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1 |
INFO | Manual close: YES |
Memory pool: {#JMXNAME} memory usage is high | - |
min(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"],{$JMX.MP.USAGE.TIME:"{#JMXNAME}"})>(last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])*{$JMX.MP.USAGE.MAX:"{#JMXNAME}"}/100) and last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])>0 |
WARNING |
Feedback
Please report any issues with the template at https://support.zabbix.com
Generic Java JMX
Overview
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- Java Applications
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Refer to the vendor documentation.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.MEM.POOL.NAME.MATCHES} | This macro used in memory pool discovery as a filter. |
Old Gen|G1|Perm Gen|Code Cache|Tenured Gen |
{$JMX.USER} | JMX username. |
|
{$JMX.PASSWORD} | JMX password. |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX agent | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing
|
ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing
|
ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing
|
Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX agent | jmx["java.lang:type=Compilation","Name"] Preprocessing
|
Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX agent | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing
|
Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing
|
Memory: Heap memory used | Current memory usage outside the heap. |
JMX agent | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing
|
Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing
|
Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing
|
Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX agent | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing
|
Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX agent | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing
|
OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX agent | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing
|
OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them. |
JMX agent | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX agent | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing
|
Runtime: JVM uptime | JMX agent | jmx["java.lang:type=Runtime","Uptime"] Preprocessing
|
|
Runtime: JVM name | JMX agent | jmx["java.lang:type=Runtime","VmName"] Preprocessing
|
|
Runtime: JVM version | JMX agent | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing
|
|
Threading: Daemon thread count | Number of daemon threads running. |
JMX agent | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing
|
Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX agent | jmx["java.lang:type=Threading","PeakThreadCount"] |
Threading: Thread count | The number of threads running at the current moment. |
JMX agent | jmx["java.lang:type=Threading","ThreadCount"] |
Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX agent | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1 |
Info | Manual close: Yes | |
Memory: Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])>0 |
Warning | ||
Memory: Non-Heap memory usage is high | min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) and last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])>0 |
Warning | ||
OperatingSystem: Opened file descriptor count is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
Warning | ||
OperatingSystem: Process CPU Load is high | min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX} |
Average | ||
Runtime: JVM is not reachable | nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1 |
Average | Manual close: Yes | |
Runtime: {HOST.NAME} runs suboptimal VM type | find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1 |
Info | Manual close: Yes |
LLD rule Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Garbage collector discovery | Garbage collectors metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=GarbageCollector"] |
Item prototypes for Garbage collector discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
GarbageCollector: {#JMXNAME} number of collections per second | Displays the total number of collections that have occurred per second. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionCount"] Preprocessing
|
GarbageCollector: {#JMXNAME} accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionTime"] Preprocessing
|
LLD rule Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool discovery | Memory pools metrics discovery. |
JMX agent | jmx.discovery["beans","java.lang:name=*,type=MemoryPool"] |
Item prototypes for Memory pool discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory pool: {#JMXNAME} committed | Current memory allocated. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.committed"] Preprocessing
|
Memory pool: {#JMXNAME} maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"] Preprocessing
|
Memory pool: {#JMXNAME} used | Current memory usage. |
JMX agent | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"] |
Trigger prototypes for Memory pool discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Memory pool: {#JMXNAME} memory usage is high | min(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"],{$JMX.MP.USAGE.TIME:"{#JMXNAME}"})>(last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])*{$JMX.MP.USAGE.MAX:"{#JMXNAME}"}/100) and last(/Generic Java JMX/jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"])>0 |
Warning |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Generic Java JMX
Overview
For Zabbix version: 5.4 and higher
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
Template links
There are no template links in this template.
Discovery rules
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
JMX | ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=Compilation","Name"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: ConcurrentMarkSweep number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: ConcurrentMarkSweep accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: Copy number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: Copy accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=Copy","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: MarkSweepCompact number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: MarkSweepCompact accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: ParNew number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: ParNew accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: PS MarkSweep number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: PS MarkSweep accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: PS Scavenge number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: PS Scavenge accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
JMX | Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory used | Current memory usage outside the heap. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Old Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Old Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"] |
JMX | MemoryPool: CMS Old Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"] |
JMX | MemoryPool: CMS Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"] |
JMX | MemoryPool: CMS Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"] |
JMX | MemoryPool: Code Cache committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CodeCache maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"] |
JMX | MemoryPool: Code Cache used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"] |
JMX | MemoryPool: Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"] |
JMX | MemoryPool: Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"] |
JMX | MemoryPool: PS Old Gen | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: PS Old Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"] |
JMX | MemoryPool: PS Old Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"] |
JMX | MemoryPool: PS Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: PS Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"] |
JMX | MemoryPool: PS Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"] |
JMX | MemoryPool: Tenured Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: Tenured Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"] |
JMX | MemoryPool: Tenured Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"] |
JMX | OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you're are opening file descriptors and never closing them. |
JMX | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
JMX | OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM uptime | - |
JMX | jmx["java.lang:type=Runtime","Uptime"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM name | - |
JMX | jmx["java.lang:type=Runtime","VmName"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Runtime: JVM version | - |
JMX | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Daemon thread count | Number of daemon threads running. |
JMX | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX | jmx["java.lang:type=Threading","PeakThreadCount"] |
JMX | Threading: Thread count | The number of threads running at the current moment. |
JMX | jmx["java.lang:type=Threading","ThreadCount"] |
JMX | Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | - |
find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1 |
INFO | Manual close: YES |
GarbageCollector: Concurrent Mark Sweep in fire fighting mode | - |
last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"]) |
AVERAGE | |
GarbageCollector: Mark Sweep Compact in fire fighting mode | - |
last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"]) |
AVERAGE | |
GarbageCollector: PS Mark Sweep in fire fighting mode | - |
last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"]) |
AVERAGE | |
Memory: Heap memory usage more than {$JMX.HEAP.USAGE.MAX}% for {$JMX.HEAP.MEM.USAGE.TIME} | - |
min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100) |
WARNING | |
Memory: Non-Heap memory usage more than {$JMX.NONHEAP.MEM.USAGE.MAX}% for {$JMX.NONHEAP.MEM.USAGE.TIME} | - |
min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) |
WARNING | |
MemoryPool: CMS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Old Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Old Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"CMS Old Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"CMS Old Gen"}/100) |
WARNING | |
MemoryPool: CMS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Perm Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"CMS Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"CMS Perm Gen"}/100) |
WARNING | |
MemoryPool: Code Cache memory usage more than {$JMX.MP.USAGE.MAX:"Code Cache"}% for {$JMX.MP.USAGE.TIME:"Code Cache"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"],{$JMX.MP.USAGE.TIME:"Code Cache"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"])*{$JMX.MP.USAGE.MAX:"Code Cache"}/100) |
WARNING | |
MemoryPool: Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"Perm Gen"}% for {$JMX.MP.USAGE.TIME:"Perm Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"Perm Gen"}/100) |
WARNING | |
MemoryPool: PS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Old Gen"}% for {$JMX.MP.USAGE.TIME:"PS Old Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"PS Old Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"PS Old Gen"}/100) |
WARNING | |
MemoryPool: PS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"PS Perm Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"PS Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"PS Perm Gen"}/100) |
WARNING | |
MemoryPool: Tenured Gen memory usage more than {$JMX.MP.USAGE.MAX:"Tenured Gen"}% for {$JMX.MP.USAGE.TIME:"Tenured Gen"} | - |
min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"Tenured Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"Tenured Gen"}/100) |
WARNING | |
OperatingSystem: Opened file descriptor count more than {$JMX.FILE.DESCRIPTORS.MAX}% of maximum | - |
min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
WARNING | |
OperatingSystem: Process CPU Load more than {$JMX.CPU.LOAD.MAX}% for {$JMX.CPU.LOAD.TIME} | - |
min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX} |
AVERAGE | |
Runtime: JVM is not reachable | - |
nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1 |
AVERAGE | Manual close: YES |
Runtime: {HOST.NAME} runs suboptimal VM type | - |
find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1 |
INFO | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
Template App Generic Java JMX
Overview
For Zabbix version: 5.0 and higher
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MEM.POOL.NAME.MATCHES} | This macro used in memory pool discovery as a filter. |
`Old Gen |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the threshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
{$JMX.PASSWORD} | JMX password. |
`` |
{$JMX.USER} | JMX username. |
`` |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Garbage collector discovery | Garbage collectors metrics discovery. |
JMX | jmx.discovery["beans","java.lang:name=*,type=GarbageCollector"] |
Memory pool discovery | Memory pools metrics discovery. |
JMX | jmx.discovery["beans","java.lang:name=*,type=MemoryPool"] Filter: - A: {#JMXNAME} MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
JMX | ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=Compilation","Name"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
JMX | Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory used | Current memory usage outside the heap. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them. |
JMX | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
JMX | OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM uptime | - |
JMX | jmx["java.lang:type=Runtime","Uptime"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM name | - |
JMX | jmx["java.lang:type=Runtime","VmName"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Runtime: JVM version | - |
JMX | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Daemon thread count | Number of daemon threads running. |
JMX | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX | jmx["java.lang:type=Threading","PeakThreadCount"] |
JMX | Threading: Thread count | The number of threads running at the current moment. |
JMX | jmx["java.lang:type=Threading","ThreadCount"] |
JMX | Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
JMX | GarbageCollector {#JMXNAME}: number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector {#JMXNAME}: accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:name={#JMXNAME},type=GarbageCollector","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool {#JMXNAME}: committed | Current memory allocated. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool {#JMXNAME}: maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory pool {#JMXNAME}: used | Current memory usage. |
JMX | jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | - |
{TEMPLATE_NAME:jmx["java.lang:type=Compilation","Name"].str(Client)}=1 |
INFO | Manual close: YES |
Memory: Heap memory usage more than {$JMX.HEAP.USAGE.MAX}% for {$JMX.HEAP.MEM.USAGE.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=Memory","HeapMemoryUsage.used"].min({$JMX.HEAP.MEM.USAGE.TIME})}>({TEMPLATE_NAME:jmx["java.lang:type=Memory","HeapMemoryUsage.max"].last()}*{$JMX.HEAP.MEM.USAGE.MAX}/100) and {TEMPLATE_NAME:jmx["java.lang:type=Memory","HeapMemoryUsage.max"].last()}>0 |
WARNING | |
Memory: Non-Heap memory usage more than {$JMX.NONHEAP.MEM.USAGE.MAX}% for {$JMX.NONHEAP.MEM.USAGE.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"].min({$JMX.NONHEAP.MEM.USAGE.TIME})}>({TEMPLATE_NAME:jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"].last()}*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) and {TEMPLATE_NAME:jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"].last()}>0 |
WARNING | |
OperatingSystem: Opened file descriptor count more than {$JMX.FILE.DESCRIPTORS.MAX}% of maximum | - |
{TEMPLATE_NAME:jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"].min({$JMX.FILE.DESCRIPTORS.TIME})}>({TEMPLATE_NAME:jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"].last()}*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
WARNING | |
OperatingSystem: Process CPU Load more than {$JMX.CPU.LOAD.MAX}% for {$JMX.CPU.LOAD.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"].min({$JMX.CPU.LOAD.TIME})}>{$JMX.CPU.LOAD.MAX} |
AVERAGE | |
Runtime: JVM is not reachable | - |
{TEMPLATE_NAME:jmx["java.lang:type=Runtime","Uptime"].nodata(5m)}=1 |
AVERAGE | Manual close: YES |
Runtime: {HOST.NAME} runs suboptimal VM type | - |
{TEMPLATE_NAME:jmx["java.lang:type=Runtime","VmName"].str(Server)}<>1 |
INFO | Manual close: YES |
Memory pool {#JMXNAME}: {#JMXNAME} memory usage more than {$JMX.MP.USAGE.MAX:"{#JMXNAME}"}% for {$JMX.MP.USAGE.TIME:"{#JMXNAME}"} | - |
{TEMPLATE_NAME:jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.used"].min({$JMX.MP.USAGE.TIME:"{#JMXNAME}"})}>({TEMPLATE_NAME:jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"{#JMXNAME}"}/100) and {TEMPLATE_NAME:jmx["java.lang:name={#JMXNAME},type=MemoryPool","Usage.max"].last()}>0 |
WARNING |
Feedback
Please report any issues with the template at https://support.zabbix.com
Template App Generic Java JMX
Overview
For Zabbix version: 4.0
Official JMX Template from Zabbix distribution. Could be useful for many Java Applications (JMX).
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$JMX.CPU.LOAD.MAX} | A threshold in percent for CPU utilization trigger. |
85 |
{$JMX.CPU.LOAD.TIME} | The time during which the CPU utilization may exceed the threshold. |
5m |
{$JMX.FILE.DESCRIPTORS.MAX} | A threshold in percent for file descriptors count trigger. |
85 |
{$JMX.FILE.DESCRIPTORS.TIME} | The time during which the file descriptors count may exceed the threshold. |
3m |
{$JMX.HEAP.MEM.USAGE.MAX} | A threshold in percent for Heap memory utilization trigger. |
85 |
{$JMX.HEAP.MEM.USAGE.TIME} | The time during which the Heap memory utilization may exceed the threshold. |
10m |
{$JMX.MP.USAGE.MAX} | A threshold in percent for memory pools utilization trigger. Use a context to change the treshold for a specific pool. |
85 |
{$JMX.MP.USAGE.TIME} | The time during which the memory pools utilization may exceed the threshold. |
10m |
{$JMX.NONHEAP.MEM.USAGE.MAX} | A threshold in percent for Non-heap memory utilization trigger. |
85 |
{$JMX.NONHEAP.MEM.USAGE.TIME} | The time during which the Non-heap memory utilization may exceed the threshold. |
10m |
Template links
There are no template links in this template.
Discovery rules
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
JMX | ClassLoading: Loaded class count | Displays number of classes that are currently loaded in the Java virtual machine. |
JMX | jmx["java.lang:type=ClassLoading","LoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Total loaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | ClassLoading: Unloaded class count | Displays the total number of classes that have been loaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=ClassLoading","UnloadedClassCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Name of the current JIT compiler | Displays the total number of classes unloaded since the Java virtual machine has started execution. |
JMX | jmx["java.lang:type=Compilation","Name"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Compilation: Accumulated time spent | Displays the approximate accumulated elapsed time spent in compilation, in seconds. |
JMX | jmx["java.lang:type=Compilation","TotalCompilationTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: ConcurrentMarkSweep number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: ConcurrentMarkSweep accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: Copy number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: Copy accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=Copy","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: MarkSweepCompact number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: MarkSweepCompact accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: ParNew number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: ParNew accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: PS MarkSweep number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: PS MarkSweep accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | GarbageCollector: PS Scavenge number of collections per second | Displays the total number of collections that have occurred per second. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"] Preprocessing: - CHANGE_PER_SECOND |
JMX | GarbageCollector: PS Scavenge accumulated time spent in collection | Displays the approximate accumulated collection elapsed time, in seconds. |
JMX | jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionTime"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory committed | Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.committed"] |
JMX | Memory: Heap memory maximum size | Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Heap memory used | Current memory usage outside the heap. |
JMX | jmx["java.lang:type=Memory","HeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory committed | Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory maximum size | Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Non-Heap memory used | Current memory usage outside the heap |
JMX | jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Memory: Object pending finalization count | The approximate number of objects for which finalization is pending. |
JMX | jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Old Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Old Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"] |
JMX | MemoryPool: CMS Old Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"] |
JMX | MemoryPool: CMS Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CMS Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"] |
JMX | MemoryPool: CMS Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"] |
JMX | MemoryPool: Code Cache committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: CodeCache maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"] |
JMX | MemoryPool: Code Cache used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"] |
JMX | MemoryPool: Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"] |
JMX | MemoryPool: Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"] |
JMX | MemoryPool: PS Old Gen | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: PS Old Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"] |
JMX | MemoryPool: PS Old Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"] |
JMX | MemoryPool: PS Perm Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: PS Perm Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"] |
JMX | MemoryPool: PS Perm Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"] |
JMX | MemoryPool: Tenured Gen committed | Current memory allocated |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.committed"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | MemoryPool: Tenured Gen maximum size | Maximum amount of memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size. |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"] |
JMX | MemoryPool: Tenured Gen used | Current memory usage |
JMX | jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"] |
JMX | OperatingSystem: File descriptors maximum count | This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number. |
JMX | jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | OperatingSystem: File descriptors opened | This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you’re are opening file descriptors and never closing them. |
JMX | jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"] |
JMX | OperatingSystem: Process CPU Load | ProcessCpuLoad represents the CPU load in this process. |
JMX | jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM uptime | - |
JMX | jmx["java.lang:type=Runtime","Uptime"] Preprocessing: - MULTIPLIER: |
JMX | Runtime: JVM name | - |
JMX | jmx["java.lang:type=Runtime","VmName"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Runtime: JVM version | - |
JMX | jmx["java.lang:type=Runtime","VmVersion"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Daemon thread count | Number of daemon threads running. |
JMX | jmx["java.lang:type=Threading","DaemonThreadCount"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
JMX | Threading: Peak thread count | Maximum number of threads being executed at the same time since the JVM was started or the peak was reset. |
JMX | jmx["java.lang:type=Threading","PeakThreadCount"] |
JMX | Threading: Thread count | The number of threads running at the current moment. |
JMX | jmx["java.lang:type=Threading","ThreadCount"] |
JMX | Threading: Total started thread count | The number of threads started since the JVM was launched. |
JMX | jmx["java.lang:type=Threading","TotalStartedThreadCount"] |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Compilation: {HOST.NAME} uses suboptimal JIT compiler | - |
{TEMPLATE_NAME:jmx["java.lang:type=Compilation","Name"].str(Client)}=1 |
INFO | Manual close: YES |
GarbageCollector: Concurrent Mark Sweep in fire fighting mode | - |
{TEMPLATE_NAME:jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"].last()}>{Template App Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"].last()} |
AVERAGE | |
GarbageCollector: Mark Sweep Compact in fire fighting mode | - |
{TEMPLATE_NAME:jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"].last()}>{Template App Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"].last()} |
AVERAGE | |
GarbageCollector: PS Mark Sweep in fire fighting mode | - |
{TEMPLATE_NAME:jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"].last()}>{Template App Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"].last()} |
AVERAGE | |
Memory: Heap memory usage more than {$JMX.HEAP.USAGE.MAX}% for {$JMX.HEAP.MEM.USAGE.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=Memory","HeapMemoryUsage.used"].min({$JMX.HEAP.MEM.USAGE.TIME})}>({Template App Generic Java JMX:jmx["java.lang:type=Memory","HeapMemoryUsage.max"].last()}*{$JMX.HEAP.MEM.USAGE.MAX}/100) |
WARNING | |
Memory: Non-Heap memory usage more than {$JMX.NONHEAP.MEM.USAGE.MAX}% for {$JMX.NONHEAP.MEM.USAGE.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"].min({$JMX.NONHEAP.MEM.USAGE.TIME})}>({Template App Generic Java JMX:jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"].last()}*{$JMX.NONHEAP.MEM.USAGE.MAX}/100) |
WARNING | |
MemoryPool: CMS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Old Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Old Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"CMS Old Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"CMS Old Gen"}/100) |
WARNING | |
MemoryPool: CMS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Perm Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"CMS Perm Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"CMS Perm Gen"}/100) |
WARNING | |
MemoryPool: Code Cache memory usage more than {$JMX.MP.USAGE.MAX:"Code Cache"}% for {$JMX.MP.USAGE.TIME:"Code Cache"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"].min({$JMX.MP.USAGE.TIME:"Code Cache"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Code Cache"}/100) |
WARNING | |
MemoryPool: Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"Perm Gen"}% for {$JMX.MP.USAGE.TIME:"Perm Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"Perm Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Perm Gen"}/100) |
WARNING | |
MemoryPool: PS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Old Gen"}% for {$JMX.MP.USAGE.TIME:"PS Old Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"PS Old Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"PS Old Gen"}/100) |
WARNING | |
MemoryPool: PS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"PS Perm Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"PS Perm Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"PS Perm Gen"}/100) |
WARNING | |
MemoryPool: Tenured Gen memory usage more than {$JMX.MP.USAGE.MAX:"Tenured Gen"}% for {$JMX.MP.USAGE.TIME:"Tenured Gen"} | - |
{TEMPLATE_NAME:jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"Tenured Gen"})}>({Template App Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Tenured Gen"}/100) |
WARNING | |
OperatingSystem: Opened file descriptor count more than {$JMX.FILE.DESCRIPTORS.MAX}% of maximum | - |
{TEMPLATE_NAME:jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"].min({$JMX.FILE.DESCRIPTORS.TIME})}>({Template App Generic Java JMX:jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"].last()}*{$JMX.FILE.DESCRIPTORS.MAX}/100) |
WARNING | |
OperatingSystem: Process CPU Load more than {$JMX.CPU.LOAD.MAX}% for {$JMX.CPU.LOAD.TIME} | - |
{TEMPLATE_NAME:jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"].min({$JMX.CPU.LOAD.TIME})}>{$JMX.CPU.LOAD.MAX} |
AVERAGE | |
Runtime: JVM is not reachable | - |
{TEMPLATE_NAME:jmx["java.lang:type=Runtime","Uptime"].nodata(5m)}=1 |
AVERAGE | Manual close: YES |
Runtime: {HOST.NAME} runs suboptimal VM type | - |
{TEMPLATE_NAME:jmx["java.lang:type=Runtime","VmName"].str(Server)}<>1 |
INFO | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com