This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Boot 3.4.1!

Prometheus (prometheus)

The prometheus endpoint provides Spring Boot application’s metrics in the format required for scraping by a Prometheus server.

Retrieving All Metrics

To retrieve all metrics, make a GET request to /actuator/prometheus, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/prometheus' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: text/plain;version=0.0.4;charset=utf-8
Content-Length: 3095

# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
# TYPE jvm_buffer_count_buffers gauge
jvm_buffer_count_buffers{id="direct"} 16.0
jvm_buffer_count_buffers{id="mapped"} 0.0
jvm_buffer_count_buffers{id="mapped - 'non-volatile memory'"} 0.0
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual machine is using for this buffer pool
# TYPE jvm_buffer_memory_used_bytes gauge
jvm_buffer_memory_used_bytes{id="direct"} 1.7043464E7
jvm_buffer_memory_used_bytes{id="mapped"} 0.0
jvm_buffer_memory_used_bytes{id="mapped - 'non-volatile memory'"} 0.0
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{id="direct"} 1.7043463E7
jvm_buffer_total_capacity_bytes{id="mapped"} 0.0
jvm_buffer_total_capacity_bytes{id="mapped - 'non-volatile memory'"} 0.0
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space"} 5.8720256E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.09051904E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4653056.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.9595264E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.2517376E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 8.8408064E7
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for memory management
# TYPE jvm_memory_max_bytes gauge
jvm_memory_max_bytes{area="heap",id="G1 Eden Space"} -1.0
jvm_memory_max_bytes{area="heap",id="G1 Old Gen"} 1.073741824E9
jvm_memory_max_bytes{area="heap",id="G1 Survivor Space"} -1.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 5836800.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 1.22912768E8
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.22908672E8
jvm_memory_max_bytes{area="nonheap",id="Compressed Class Space"} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="Metaspace"} -1.0
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="heap",id="G1 Eden Space"} 8388608.0
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 8.19712E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1438848.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4608640.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.9556864E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.2058608E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 8.7548808E7

The default response content type is text/plain;version=0.0.4. The endpoint can also produce application/openmetrics-text;version=1.0.0 when called with an appropriate Accept header, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/prometheus' -i -X GET \
    -H 'Accept: application/openmetrics-text; version=1.0.0; charset=utf-8'

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/openmetrics-text;version=1.0.0;charset=utf-8
Content-Length: 3101

# TYPE jvm_buffer_count_buffers gauge
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
jvm_buffer_count_buffers{id="direct"} 16.0
jvm_buffer_count_buffers{id="mapped"} 0.0
jvm_buffer_count_buffers{id="mapped - 'non-volatile memory'"} 0.0
# TYPE jvm_buffer_memory_used_bytes gauge
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual machine is using for this buffer pool
jvm_buffer_memory_used_bytes{id="direct"} 1.7043464E7
jvm_buffer_memory_used_bytes{id="mapped"} 0.0
jvm_buffer_memory_used_bytes{id="mapped - 'non-volatile memory'"} 0.0
# TYPE jvm_buffer_total_capacity_bytes gauge
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
jvm_buffer_total_capacity_bytes{id="direct"} 1.7043463E7
jvm_buffer_total_capacity_bytes{id="mapped"} 0.0
jvm_buffer_total_capacity_bytes{id="mapped - 'non-volatile memory'"} 0.0
# TYPE jvm_memory_committed_bytes gauge
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space"} 5.8720256E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.09051904E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4653056.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.9529728E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.2517376E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 8.8276992E7
# TYPE jvm_memory_max_bytes gauge
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for memory management
jvm_memory_max_bytes{area="heap",id="G1 Eden Space"} -1.0
jvm_memory_max_bytes{area="heap",id="G1 Old Gen"} 1.073741824E9
jvm_memory_max_bytes{area="heap",id="G1 Survivor Space"} -1.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 5836800.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 1.22912768E8
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.22908672E8
jvm_memory_max_bytes{area="nonheap",id="Compressed Class Space"} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="Metaspace"} -1.0
# TYPE jvm_memory_used_bytes gauge
# HELP jvm_memory_used_bytes The amount of used memory
jvm_memory_used_bytes{area="heap",id="G1 Eden Space"} 6291456.0
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 8.19712E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1438848.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4600064.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.9477888E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.2046024E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 8.7389696E7
# EOF

Query Parameters

The endpoint uses query parameters to limit the samples that it returns. The following table shows the supported query parameters:

Parameter Description

includedNames

Restricts the samples to those that match the names. Optional.

Retrieving Filtered Metrics

To retrieve metrics matching specific names, make a GET request to /actuator/prometheus with the includedNames query parameter, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/prometheus?includedNames=jvm_memory_used_bytes%2Cjvm_memory_committed_bytes' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: text/plain;version=0.0.4;charset=utf-8
Content-Length: 1457

# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space"} 5.8720256E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.09051904E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4653056.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.96608E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.2517376E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 8.8408064E7
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="heap",id="G1 Eden Space"} 9437184.0
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 8.19712E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7340032.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1438848.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 4611712.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.9586432E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.2059208E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 8.7555968E7