Depois do logging estruturado, o Day 12/30 do #30DiasJava foi dedicado à saúde operacional. O resultado é um Monitoring Service com métricas padronizadas, dashboards versionados e alertas acionáveis para todo o ecossistema Spring Boot.
📡 What went live
- Prometheus Operator com scrape configs automáticos para todos os microsserviços (
/actuator/prometheus). - Dashboards Grafana opinativos (Finance, Reporting, Observability) versionados em
monitoring/dashboards/*.json. - Alertmanager integrado ao Slack/Email com escalonamento por severidade (warning → time responsável, critical → on-call).
- SLO Tracker: availability e latency definidos por serviço (ex.: 99.5% availability, P95 < 200 ms).
- Runbooks linkados diretamente nas anotações de alerta.
💡 Why it matters
- Visibilidade unificada: engenharia, produto e operações olham para os mesmos painéis.
- Alertas priorizados (sem ruído) com contexto completo e passos de mitigação.
- Base para evolução: contratos de métricas permitem comparar serviços sem surpresa.
📚 Deep dive (+ code)
- Artigo completo: https://enouveau.io/blog/2025/11/12/monitoring-service-under-the-hood.html
- Repositório: https://github.com/adelmonsouza/30DiasJava-Day12-Monitoring
- Projeto pessoal: Este é um projeto do desafio #30DiasJava, mantido independentemente para fins educacionais.
🧩 Implementation Notes
- Metrics contracts: starter
monitoring-service-starteradiciona métricas (http.server.requests,custom.*) com tags padrão (service,tenant,environment). - Recording rules em
monitoring/prometheus/rules/calculam SLOs e backlog (queue size, export duration). - Dashboard-as-code: JSON +
grafana-toolkit/Terraform para importar/exportar versões. - Alert templates com labels (
team,runbook,severity) e anotação comgrafana.com/d/<dashboard-id>. - Synthetic probes:
monitoring-proberchama endpoints críticos a cada 30 s (health check e fluxos essenciais).
✅ Daily checklist
- Prometheus scraping ativo (targets
UP) e TSDB saudável. - Alertmanager silencioso (sem alertas pendentes) ou incidentes resolvidos.
- Painéis Grafana atualizados com notas de deploy e SLO compliance.
Next episode → Day 13/30 — Feature Flags & Experimentation Platform (em breve)