JVM probes
JVM probes are defined in the instrumentation module.
Available JVM probes
There are common properties for configuring all JVM probes, including:
-
class
- the full class name of the instrumentation probe to instantiate, for example, info.magnolia.services.instrumentation.probes.jvm.ClassLoadingProbe. -
enabled
- a flag, either true or false, true indicating the probe is active and collecting metrics and false if not.
All JVM probes are configured in the Instrumentation module. Probes should be added in /modules/instrumentation/config/probes and specify the class property (required) and enabled property (optional). JVM probes defined in the instrumentation module are created or modified when the instrumentation module is restarted or changed.
|
Property | Default | Description | ||
---|---|---|---|---|
|
The fully qualified class name of the probe to instantiate.
|
|||
|
true |
Flag controlling if the probe is active and can provide measurements ( |
JVMProbe
The JVMProbe will provide details on the running JVM, including version, vendor and runtime description.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Labels
Label | Metrics | Description |
---|---|---|
|
|
Something like "11.0.8+10", actual value depends on the JVM in use. |
|
|
Something like "Yoyodyne Propulsion Systems Corporation", actual value depends on the JVM in use. |
|
|
Something like "OpenJDK Runtime Environment", actual value depends on the JVM in use. |
ClassLoadingProbe
The ClassLoadingProbe probe will provide measurements of the number of classes loaded and unloaded in the JVM running Magnolia. The metric will change when the JVM loads and unloads classes.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Metrics
The jvm_classes_loaded , jvm_classes_loaded_total and jvm_classes_unloaded_total metrics are labelled with the default Prometheus (job and instance).
|
Metric | Description |
---|---|
|
A count of the number of Java classes loaded in the JVM running Magnolia. |
|
The total number of Java classes loaded in the JVM since it was started. |
|
A count of the number of Java classes unloaded by the JVM. |
GarbageCollectionProbe
The GarbageCollectionProbe measures the number of times the JVM collected garbage and cumulative time spent garbage collecting.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Metrics
The jvm_classes_loaded , jvm_classes_loaded_total and jvm_classes_unloaded_total metrics are labelled with the default Prometheus (job and instance).
|
Metric | Description |
---|---|
|
The count of number times the garbage collection method was executed by the JVM. |
|
The total time in seconds spent collecting garbage by method by the JVM. |
MemoryProbe
The MemoryProbe records the sizes of the various memory areas and pools in the JVM over time. Memory areas covered are heap and non-heap memory.
The naming and usage of the memory pools depends on what JVM and version you are using.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Metrics
The jvm_classes_loaded , jvm_classes_loaded_total and jvm_classes_unloaded_total metrics are labelled with the default Prometheus (job and instance).
|
Metric | Description |
---|---|
|
The number of bytes currently used by the memory area. The "area" label identifies the memory area ("heap" or "non-heap"). |
|
The number of bytes currently committed in the memory area. The "area" label identifies the memory area ("heap" or "non-heap"). |
|
The maximum number of bytes used by the memory area. The "area" label identifies the memory area ( "heap" or "non-heap"). |
|
The initial size in bytes of the memory area. The "area" label identifies the memory area ( "heap" or "non-heap"). |
|
The number of bytes currently used by the labeled memory pool. The "pool" label identifies the memory pool. |
|
The number of bytes committed by the labeled memory pool. The "pool" label identifies the memory pool. |
|
The maximum number of bytes used by the labeled memory pool. The "pool" label identifies the memory pool. |
|
The initial size in bytes of the labeled memory pool. The "pool" label identifies the memory pool. |
Labels
Label | Metrics | Description |
---|---|---|
|
|
The memory area, "heap" or "non-heap". |
|
|
The memory pool. |
ThreadsProbe
The ThreadsProbe records the number of threads being used in the JVM over time broken down by type.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Metrics
Only the common labels (job and instance) are available for the threads metrics. |
Metric | Description |
---|---|
|
The total number of threads currently in use of all types. |
|
The total number of daemon threads currently in use. |
|
The maximum number of threads in use since the JVM was started. |
|
The total number of threads created in the JVM. |
|
The number of currently deadlocked threads. |
|
The number of currently deadlocked threads waiting for an object monitor. |
VersionInfoProbe
The VersionInfoProbe records the maker and version of the JVM running Magnolia.
Configuration properties
Property | Description | Required |
---|---|---|
|
Should be |
Metrics
Only the common labels (job and instance) are available for the threads metrics. |
Metric | Description | ||||
---|---|---|---|---|---|
|
The version information about the JVM.
|
Labels
Label | Metrics | Description | ||
---|---|---|---|---|
|
|
A string describing the JVM maker.
|
||
|
|
A string describing the version of the JVM.
|