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/probesand 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_totalandjvm_classes_unloaded_totalmetrics 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_totalandjvm_classes_unloaded_totalmetrics 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_totalandjvm_classes_unloaded_totalmetrics 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. 
 |