Passo-a-passo detalhado do skill, referenciando as fases cognitivas:
1SENSE — Descoberta de métricas disponíveis
```bash
# Listar todas as métricas do serviço
curl -s prometheus/api/v1/label/__name__/values | jq '.data[]' | grep my-service
# Verificar cardinalidade (evitar métricas com milhões de séries)
curl prometheus/api/v1/query?query=count({job="my-service"})
```
2CONTEXTUALIZE — Definir SLOs e convenções
Definir SLOs: `availability = 99.9%` (43min downtime/mês), `latency p95 < 200ms`
Error budget = `100% - 99.9% = 0.1%` → 43 minutos de downtime disponíveis por mês
Burn rate 1.0 = consumindo budget no ritmo esperado; > 1.0 = alert imediato
3RECOMMEND — Gerar panels RED
```promql
# Rate (requisições por segundo)
sum(rate(http_request_duration_seconds_count{job="my-service"}[5m])) by (status_code)
# Error rate (%)
sum(rate(http_request_duration_seconds_count{status_code=~"5.."}[5m]))
/ sum(rate(http_request_duration_seconds_count[5m])) * 100
# Duration p95 (latência)
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
```
4RECOMMEND — Gerar panel SLO
```promql
# Availability atual (rolling 30 dias)
1 - (sum(increase(http_requests_total{status=~"5.."}[30d]))
/ sum(increase(http_requests_total[30d])))
# Error budget remaining
(0.001 - (1 - sum(rate(http_requests_total{status=~"5.."}[30d]))
/ sum(rate(http_requests_total[30d])))) / 0.001 * 100
```
5EVALUATE — Validar e calibrar
Importar JSON no Grafana e verificar que todos os panels carregam
Ajustar time ranges e step intervals para performance
Calibrar thresholds: testar alertas em staging antes de produção
6REFLECT — Alertas e documentação
Vincular alertas ao Alertmanager com rotas para Slack/PagerDuty
Documentar cada painel com description explicando o que monitorar
Reportar telemetria via mcp-skillschain