Spring Boot Actuator provides dependency management and auto-configuration for Micrometer, an application metrics facade that abstracts over more than a dozen monitoring systems. Adding a registry dependency to your classpath is all that is needed — Spring Boot auto-configures theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/spring-projects/spring-boot/llms.txt
Use this file to discover all available pages before exploring further.
MeterRegistry and begins collecting metrics from the JVM, HTTP layer, data sources, and other auto-detected components.
Supported monitoring systems
Prometheus (pull-based scraping)
Prometheus (pull-based scraping)
Prometheus polls your application by scraping the Then add the following job to For ephemeral or batch jobs that cannot be scraped, add the Prometheus Pushgateway dependency and enable it:
/actuator/prometheus endpoint. Add the registry dependency and expose the endpoint:prometheus.yml:Datadog
Datadog
Datadog periodically pushes metrics to Optionally, provide an application key to also export meter descriptions and types:
datadoghq.com. Provide your API key:InfluxDB
InfluxDB
Exports to an InfluxDB v1 instance by default. For InfluxDB v2 configure
org, bucket, and token:Graphite
Graphite
OTLP (OpenTelemetry Protocol)
OTLP (OpenTelemetry Protocol)
Exports metrics using the OpenTelemetry protocol to any OTLP-capable backend:Custom headers for authentication can be added via
management.otlp.metrics.export.headers.*.Other supported systems
Other supported systems
| System | Key configuration property |
|---|---|
| AppOptics | management.appoptics.metrics.export.api-token |
| Atlas | management.atlas.metrics.export.uri |
| Dynatrace | management.dynatrace.metrics.export.uri and api-token |
| Elastic | management.elastic.metrics.export.host |
| Ganglia | management.ganglia.metrics.export.host and port |
| Humio | management.humio.metrics.export.api-token |
| JMX | management.jmx.metrics.export.domain |
| KairosDB | management.kairos.metrics.export.uri |
| New Relic | management.newrelic.metrics.export.api-key and account-id |
| Stackdriver | management.stackdriver.metrics.export.project-id |
| StatsD | management.statsd.metrics.export.host and port |
Auto-configured metrics
Spring Boot instruments many common technologies automatically. All metrics are published to every configuredMeterRegistry.
JVM metrics (jvm.*)
JVM metrics (jvm.*)
JVM metrics are published under the
jvm. meter name prefix and include:- Memory and buffer pool details
- Garbage collection statistics
- Thread utilization
- Virtual thread statistics (requires
io.micrometer:micrometer-java21) - Classes loaded and unloaded
- JVM version information
- JIT compilation time
System and process metrics (system.*, process.*, disk.*)
System and process metrics (system.*, process.*, disk.*)
Published under
system., process., and disk. meter names:- CPU metrics
- File descriptor metrics
- Uptime metrics and absolute start time
- Available disk space
HTTP server metrics (http.server.requests)
HTTP server metrics (http.server.requests)
All requests handled by Spring MVC, Spring WebFlux, and Jersey controllers produce metrics named
http.server.requests by default. Customize the name with management.observations.http.server.requests.name.HTTP client metrics for RestTemplate, RestClient, and WebClient are published as http.client.requests. Use the auto-configured builders to get instrumentation automatically:RestTemplateBuilderforRestTemplateRestClient.BuilderforRestClientWebClient.BuilderforWebClient
DataSource metrics (jdbc.connections.*, hikaricp.*)
DataSource metrics (jdbc.connections.*, hikaricp.*)
All
DataSource beans are instrumented with gauges showing active, idle, maximum, and minimum connections. Hikari-specific metrics are published with the hikaricp prefix, tagged by pool name.Control the pool name with spring.datasource.name.Application startup metrics
Application startup metrics
application.started.time— time taken to start the applicationapplication.ready.time— time taken until the application is ready to serve requests
Logger, cache, Kafka, MongoDB, Redis, and more
Logger, cache, Kafka, MongoDB, Redis, and more
| Component | Meter name prefix |
|---|---|
| Logback / Log4J2 | logback.events. / log4j2.events. |
| Caches (Caffeine, Redis, Hazelcast, JCache) | cache |
| Kafka consumer/producer | Auto-configured via MicrometerConsumerListener |
| MongoDB commands | mongodb.driver.commands |
| MongoDB connection pool | mongodb.driver.pool.* |
| RabbitMQ | rabbitmq |
| Spring Integration | spring.integration. |
| Spring Data repositories | spring.data.repository.invocations |
| Tomcat | tomcat. (requires server.tomcat.mbeanregistry.enabled=true) |
| SSL bundles | ssl.chain.expiry |
Registering custom metrics
InjectMeterRegistry directly into any Spring-managed component:
MeterBinder to ensure correct dependency ordering:
Customizing metrics
Common tags
Apply tags to all meters for environment-level dimensions like host, region, and stack:Per-meter properties
Disable, filter, or configure histogram behavior for specific meter IDs:Registry customizer
Apply global customizations before any meters are registered:The metrics endpoint
The/actuator/metrics endpoint lists all available meter names. Drill into a specific meter by name:
Use the meter’s Micrometer name (e.g.,
jvm.memory.max), not its monitoring-system-normalized form (e.g., jvm_memory_max in Prometheus), when querying the metrics endpoint.