SLI e SLO no Node.js transformam confiabilidade em objetivos mensuráveis. SLI é o indicador observado, como proporção de respostas válidas ou latência abaixo de um limite. SLO é a meta definida para esse indicador durante uma janela.
Em vez de buscar “100% disponível”, a equipe escolhe quais experiências importam e quanto de falha é aceitável.
SLI de disponibilidade
SLI = requisições boas / requisições válidasDefina claramente o que é bom. Respostas 2xx podem contar como sucesso, enquanto 5xx representam falha do serviço. Alguns 4xx são responsabilidade do cliente e podem ser excluídos.
SLI de latência
Um exemplo: proporção de requisições concluídas em até 300 ms. Essa abordagem é mais útil que apenas acompanhar média.
SLO
Um SLO pode afirmar: “99,9% das requisições válidas devem ser bem-sucedidas em 30 dias” ou “99% devem concluir em até 300 ms”.
Métricas com Prometheus
sum(rate(http_requests_total{status_class!="5xx"}[30d]))
/
sum(rate(http_requests_total[30d]))Adapte a consulta à semântica real. Consulte Prometheus no Node.js.
Histograma de latência
sum(rate(http_request_duration_seconds_bucket{le="0.3"}[30d]))
/
sum(rate(http_request_duration_seconds_count[30d]))Janela de medição
Janelas móveis de 28 ou 30 dias evitam reinícios artificiais no começo do mês. Escolha uma janela coerente com o ciclo de produto e resposta operacional.
SLIs por jornada
Uma rota isolada pode estar saudável enquanto a jornada de compra falha. Quando possível, defina indicadores para operações que o usuário realmente tenta concluir.
Dependências
O SLO do serviço deve refletir o resultado entregue, mesmo quando a causa está em uma dependência. Métricas internas ajudam a diagnosticar, mas não devem ocultar impacto.
Indicadores úteis
- disponibilidade;
- latência;
- freshness de dados;
- durabilidade;
- correção do resultado;
- tempo de processamento de fila.
Não misture classes diferentes
Rotas interativas, jobs assíncronos e exportações possuem expectativas distintas. Defina SLOs separados em vez de uma média geral sem significado.
Alertas por burn rate
Alertas baseados na velocidade de consumo do error budget detectam degradações relevantes. Uma taxa alta em janela curta exige resposta rápida; uma taxa moderada em janela longa indica problema persistente.
Instrumentação no Node.js
Registre rota normalizada, status, duração e resultado de negócio. Para filas, meça idade da mensagem e conclusão, não apenas se o consumidor está vivo.
Revisão periódica
SLO não é promessa imutável. Revise quando o produto muda, mas não reduza a meta apenas para esconder degradação. Relacione objetivos a decisões de capacidade e arquitetura.
Erros comuns
- usar média de latência;
- contar qualquer 4xx como falha do serviço;
- definir SLO sem dados;
- criar dezenas de indicadores sem ação;
- medir apenas infraestrutura;
- alertar em cada violação momentânea;
- não associar SLO ao produto.
Conclusão
SLI e SLO no Node.js oferecem uma linguagem objetiva para confiabilidade. Escolha poucas jornadas críticas, defina o que conta como sucesso e acompanhe a proporção ao longo de uma janela.
Use métricas de baixa cardinalidade e alertas de burn rate. Consulte a documentação de SLO do Google SRE e a documentação de histogramas do Prometheus.



