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

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: 3087

# 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"} 3.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"} 45056.0
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"} 45056.0
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"} 6.815744E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.048576E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 8388608.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3997696.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.8546688E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.1206656E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 7.9036416E7
# 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"} 5.8720256E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 7.6702208E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7681200.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1382528.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3964160.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.8529152E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.0819048E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 7.8245424E7

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: 3092

# 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"} 3.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"} 45056.0
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"} 45056.0
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"} 6.815744E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.048576E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 8388608.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3997696.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.8481152E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.1206656E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 7.8905344E7
# 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"} 5.6623104E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 7.6702208E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7681200.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1382528.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3960320.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.844224E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.0806464E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 7.8094768E7
# 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: 1460

# 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"} 6.815744E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.048576E8
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 8388608.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3997696.0
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.8612224E7
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.1206656E7
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 7.9036416E7
# 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"} 5.9768832E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 7.6702208E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 7681200.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1382528.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"} 3973760.0
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.8553984E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.0819648E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 7.8261024E7
  翻译: