name: spring-boot-observability
description: Instrument Spring Boot with Micrometer metrics, distributed tracing, and structured logging. Use when adding Micrometer metrics, distributed tracing, or structured logging to Spring Boot.
metadata:
triggers:
files:
- 'logback-spring.xml'
- 'application.properties'
keywords:
- micrometer
- tracing
- correlation-id
- mdc
Spring Boot Observability
Priority: P0 (CRITICAL)
Implementation Workflow
- Add tracing and metrics dependencies to
pom.xml
- Configure
application.yaml for tracing, actuator, and log correlation
- Add structured logging with MDC context
- Verify with
curl localhost:8080/actuator/prometheus and check trace IDs in logs
Enable Distributed Tracing
- Correlation IDs: Enable trace/span ID injection.
- Propagation: Propagate context across threads (
@Async) and clients.
- OpenTelemetry: Use OTel bridge (
micrometer-tracing-bridge-otel).
See implementation examples for application.yaml tracing configuration and actuator exposure.
Configure Structured Logging
- Format: Use JSON logging (
logstash-logback-encoder) in production.
- MDC: Use MDC for contextual info (userId, tenantId). Always clear MDC in finally block.
- Output: Log to stdout only. Let container handle shipping.
See implementation examples for structured logging with MDC context and Logstash encoder.
Secure Actuator Endpoints
- Security: Secure
/actuator/** with Admin role.
- Probes: Enable K8s Liveness/Readiness probes.
- Verify: Run
curl localhost:8080/actuator/prometheus to confirm metrics exposed.
Anti-Patterns
- No System.out: Use @Slf4j for all structured logging.
- No open Actuator: Secure /actuator/** with Admin role.
- No DIY tracing: Use Micrometer with OTel bridge.
References