Observe o serviço e seus usuários
ConcluídoRelacione métricas, logs e traces aos objetivos do serviço. Projete alertas, limites de dados e verificações para telemetria ausente.
Publicado por TaigaComo escrevemos
Confira seu entendimentoA latência da exportação aumenta. Traces amostrados mostram spans lentos de banco de dados. O que você pode concluir?Faça o exercício
O que você vai aprender
- Escolher telemetria que responda a uma pergunta operacional específica.
- Diferenciar um sintoma do serviço de uma causa interna.
- Proteger a telemetria e detectar evidências ausentes ou desatualizadas.
Comece pela pergunta
O monitoramento verifica condições conhecidas. A observabilidade ajuda a investigar o comportamento do sistema, incluindo falhas que você não previu. Mais dashboards não oferecem automaticamente respostas melhores.
Para um serviço fictício de exportação, comece com uma pergunta do usuário: um usuário autorizado consegue receber a exportação correta no tempo acordado? Depois, escolha sinais que ajudem a responder e a explicar as falhas.
O OpenTelemetry fornece instrumentação e padrões de telemetria. Pode enviar sinais a backends compatíveis. Você ainda precisa de armazenamento, consultas, controles de acesso, retenção e pessoas que ajam sobre as evidências. Introdução à observabilidade.
Conecte formas diferentes de evidência
Uma métrica mede uma quantidade ao longo do tempo. Um log registra um evento. Um trace conecta operações relacionadas enquanto uma requisição atravessa o sistema. Um span representa uma operação dentro de um trace.
| Pergunta operacional | Exemplo de evidência | Limite a lembrar |
|---|---|---|
| Quantas exportações elegíveis falham? | Quantidade de falhas e de requisições elegíveis | Um denominador errado gera uma taxa enganosa |
| O que aconteceu com uma exportação? | Log estruturado com ID do job, resultado e versão | Eventos ausentes deixam lacunas |
| Onde o tempo foi gasto? | Trace entre API, fila, worker e banco de dados | Amostragem e falhas na propagação de contexto podem ocultar trabalho |
| O que mudou antes do sintoma? | Registros de deployment e configuração | A sequência temporal, sozinha, não estabelece uma causa |
Em trabalho assíncrono, preserve uma correlação segura entre o job enviado e a execução do worker. Uma resposta HTTP 202 pode significar que o trabalho foi aceito. Não prova que a exportação terminou.
Alerte quando for necessário agir
Defina o SLI e seu denominador antes de estabelecer o SLO. No exemplo, conte exportações elegíveis concluídas corretamente dentro da duração acordada. Defina como jobs de longa duração e jobs abandonados entram na medição.
Um orçamento de erro descreve a falha permitida na janela do SLO. A taxa de consumo, ou burn rate, descreve a velocidade com que as falhas consomem esse orçamento. As orientações do Google usam várias janelas para equilibrar detecção em tempo hábil e ruído de alertas. Alertas baseados em SLOs.
Acione uma pessoa quando a condição exigir uma ação rápida. Encaminhe trabalho menos urgente para uma fila. Todo alerta precisa de responsável, descrição do impacto, link para investigação e instrução de resposta. Revise alertas que repetidamente não levam a nenhuma ação.
Não use um único limite genérico para todos os serviços. Impacto no usuário, tráfego, horário de negócio e capacidade de resposta afetam a decisão.
Proteja o pipeline de telemetria
A telemetria pode conter dados pessoais, tokens, parâmetros de requisição e documentos confidenciais. Defina os campos permitidos antes da coleta. Restrinja acesso e retenção. Remova ou oculte segredos antes de exportar para um backend externo. Telemetria sensível.
Não use um e-mail de cliente ou ID único de job como rótulo de métrica. Rótulos sem limites aumentam a quantidade de séries temporais e podem expor identificadores. Use dimensões controladas nas métricas. Coloque identificadores de correlação aprovados em logs ou traces com controle de acesso.
Meça o próprio pipeline. Verifique falhas de ingestão, dados descartados e o tempo desde a observação mais recente. Um gráfico plano de erros pode significar ausência de erros ou ausência de telemetria recebida. Mostre essa distinção.
Investigue uma falha concreta
O serviço fictício retorna HTTP 202 para toda requisição. O tempo dos jobs na fila sobe de segundos para 15 minutos. Os logs dos workers mostram tempos limite de banco de dados excedidos repetidamente. Os traces amostrados concentram a maior parte do tempo dos workers em chamadas ao banco.
Essas evidências apoiam uma investigação focada. Não estabelecem se a causa é uma alteração de consulta, conexões esgotadas ou capacidade do banco. Compare essas hipóteses com o método de depuração.
O Monitoring da Taiga oferece uma visão da saúde do produto com sinais de disponibilidade e experiência no navegador. Complementa a observabilidade de infraestrutura e aplicação; não substitui esses sistemas. Monitoring.
Faça o exercício
Para a exportação fictícia desta lição, defina um SLI, um alerta que exija ação, três campos permitidos de telemetria e dois campos proibidos. Informe como detectaria uma falha no pipeline de telemetria.
Baixar planilha de exercício (Markdown)Desmarcar esta opção exclui todo o progresso salvo neste navegador.
O progresso fica neste navegador. Sem conta e sem rastreamento.
Fontes e leituras adicionais
- OpenTelemetry: Observability primer ↗
- OpenTelemetry: Handling sensitive data ↗
- Google SRE: Alerting on SLOs ↗
- Taiga docs: Monitoring ↗