Use when adding service-wide Spring Boot 3 Actuator, Micrometer metrics, distributed tracing, OpenTelemetry export, structured logging, health probes, dashboards, or alerts. Combine with ai-observability only for Spring AI-specific token, prompt, and model telemetry.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add rrezartprebreza/spring-boot-skills --skill production-observability --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Production Observability?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rrezartprebreza-production-observability)More formats (shields.io, HTML) on the badges page.
---
name: production-observability
description: >
Use when adding service-wide Spring Boot 3 Actuator, Micrometer metrics, distributed tracing,
OpenTelemetry export, structured logging, health probes, dashboards, or alerts. Combine with
ai-observability only for Spring AI-specific token, prompt, and model telemetry.
---
# Production Observability
Instrument user-visible operations and operational boundaries, not every method.
## Baseline
- Add Actuator and one metrics registry selected by the deployment platform.
- Use Micrometer Observation for application metrics and traces.
- Use Micrometer Tracing with the chosen bridge; do not mix tracing APIs throughout business code.
- Export through OTLP when the platform standardizes on OpenTelemetry collectors.
- Expose only required actuator endpoints and secure every non-public endpoint.
## Observation conventions
- Name observations by stable operation, such as `orders.create`.
- Keep metric tags low-cardinality: method, outcome, region, or bounded status.
- Put request IDs, user IDs, order IDs, and exception messages only in traces or logs.
- Propagate context across `@Async`, executor, and Reactor boundaries.
- Record latency, throughput, failures, and saturation for every external dependency.
## Health and readiness
- Keep liveness independent from remote systems so a dependency outage does not restart every pod.
- Put required dependencies in readiness groups.
- Write custom health indicators only for dependencies that affect traffic acceptance.
- Set explicit timeouts on health checks.
## Logging and alerts
- Emit structured logs with trace and span correlation.
- Redact credentials, tokens, personal data, prompts, and payloads by default.
- Alert on symptoms tied to service objectives, not raw metric noise.
- Include runbook links and enough dimensions to identify the affected service and dependency.
## Examples
- See `examples/good-observation.java` and `examples/bad-observation.java`.
## Gotchas
- Agent tags metrics with user or entity IDs - this creates unbounded cardinality.
- Agent exposes every actuator endpoint publicly - expose the minimum and secure it.
- Agent makes liveness depend on the database - dependency outages then cause restart loops.
- Agent logs request bodies and tokens for debugging - redact sensitive data before emission.
- Agent creates spans but loses context in async work - configure context propagation explicitly.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!