0 XP

DEVOPSQUEST

Minha Trilha
Módulo 10 · Observabilidade e SRE

Engenharia de alertas: burn rate multijanela e revisão do plantão

Intermediário 55 min+25 XPPrometheuspromtoolAlertmanager

Objetivos desta aula

  • Calcular burn rate a partir de um SLO baseado em requisições
  • Combinar janelas longa e curta em uma regra
  • Separar paginação urgente de trabalho planejável
  • Tratar ausência de tráfego como condição distinta
  • Revisar a qualidade dos alertas com o plantão

Esta aula transforma a ideia de alerta acionável em uma política verificável. O objetivo não é silenciar sintomas, mas chamar alguém apenas quando há uma decisão urgente. Para cada regra, escreva impacto, responsável, ação inicial e canal; sem esses itens, severity: critical é apenas um rótulo.

Considere SLO de disponibilidade de 99,9% em 30 dias, medido por requisições. A fração de falha permitida é 0.001; o burn rate é a proporção observada de erros dividida por esse valor. Assim, 1,44% de erros corresponde a 14.4 vezes a taxa permitida.

A janela longa acumula evidência de impacto; a curta confirma que o problema continua acontecendo. Exigir burn rate acima de 14.4 tanto em uma hora quanto em cinco minutos reduz páginas causadas por uma falha antiga que já cessou. O operador and on(service) combina séries da mesma dimensão.

O limiar tem uma interpretação de orçamento: mantendo o mesmo perfil de tráfego, 14.4 × 1h / 720h representa aproximadamente 2% do orçamento de 30 dias. Para SLO por requisições, o consumo real depende da distribuição do tráfego; valide também contagens acumuladas, em vez de converter tudo automaticamente em minutos.

O bloco usa o contador de histograma já instrumentado, http_request_duration_seconds_count, e pressupõe a label service. As regras de gravação calculam proporções por serviço. Se a sua instrumentação não expõe essa label, adicione-a de forma consistente ou adapte a agregação antes de copiar a regra.

Sem tráfego não significa 100% de disponibilidade. A divisão pode gerar NaN, e ausência de coleta pode eliminar séries; não force zero com um preenchimento que esconda falhas. Monitore scrape e disponibilidade do pipeline separadamente e use uma sonda sintética quando a jornada precisar de validação mesmo sem usuários.

Paginação e ticket têm urgências diferentes. A queima rápida pode chamar o plantão; uma degradação lenta e persistente pode gerar trabalho para o horário útil, conforme a política acordada. for: 2m adiciona persistência, mas também atraso: avalie esse custo no tempo de detecção.

Por fim, faça uma revisão semanal de ruído: quantas notificações exigiram ação, quais duplicaram outras e quais chegaram tarde? Teste regras com promtool, simule recuperação e confira roteamento no Alertmanager. Só ajuste limites após comparar impacto e evidência; reduzir páginas às cegas pode ocultar incidentes.

Na prática

Regras multijanela por serviço

yaml

# Pré-requisito: contador com labels service e status.
groups:
  - name: cloudshop-slo
    rules:
      - record: service:http_errors:ratio1h
        expr: |
          sum by (service) (rate(http_request_duration_seconds_count{status=~"5.."}[1h]))
          / sum by (service) (rate(http_request_duration_seconds_count[1h]))
      - record: service:http_errors:ratio5m
        expr: |
          sum by (service) (rate(http_request_duration_seconds_count{status=~"5.."}[5m]))
          / sum by (service) (rate(http_request_duration_seconds_count[5m]))
      - alert: CloudShopBudgetQueimaRapida
        expr: |
          (service:http_errors:ratio1h{service="cloudshop-api"} / 0.001 > 14.4)
          and on (service)
          (service:http_errors:ratio5m{service="cloudshop-api"} / 0.001 > 14.4)
        for: 2m
        labels:
          severity: critical
          team: platform
        annotations:
          summary: "Falhas da API consomem o orçamento rapidamente"
          description: "Verificar impacto e seguir docs/runbooks/api-5xx.md"

Validar o arquivo antes de recarregar o Prometheus

bash

# Salve o YAML anterior como cloudshop-slo.rules.yml.
# Verifica sintaxe; não substitui testes de comportamento com séries simuladas.
promtool check rules cloudshop-slo.rules.yml

Por que isso importa

Alertas sustentáveis preservam atenção humana para situações que realmente ameaçam a experiência do usuário.

Erro comum

Usar apenas a janela longa e continuar notificando depois que o serviço já se recuperou.

Dica de produção

Adicione testes de regra para erro sustentado, recuperação, baixo tráfego e série ausente antes de ativar paginação.

Alerta de segurança

Notificações devem trazer links e agregados, nunca credenciais ou amostras de dados pessoais; restrinja quem pode criar silêncios.

Pergunta de entrevista

Por que combinar duas janelas e como validar que o alerta não mascara ausência de telemetria?

Glossário

Burn rate
Razão entre a taxa de falhas observada e a taxa permitida pelo SLO.
Regra de gravação
Expressão PromQL cujo resultado é armazenado como nova série.
Multijanela
Uso combinado de intervalos diferentes para avaliar um sintoma.
Paginação
Notificação urgente que exige resposta do plantão.
Fadiga de alertas
Perda de atenção causada por notificações frequentes e pouco úteis.

Conexão com o CloudShop

Entregar regra multijanela do CloudShop validada, política de canais e registro de revisão de ruído.

Quiz da aula

  1. 1. Com SLO de 99,9%, qual o burn rate para 1,44% de erros?

  2. 2. Qual o papel da janela curta?

  3. 3. Uma série sem dados prova disponibilidade total?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima