Percurso 05Lição 4 / 8

Observar o serviço e os seus utilizadores

Ligue métricas, logs e traces aos objetivos do serviço. Conceba alertas, limites de dados e verificações de telemetria em falta.

Prática11 minRevisto

Publicado por Como escrevemos

Verifique a sua compreensãoA latência do export aumenta. Os traces amostrados mostram spans lentos da base de dados. O que pode concluir?Faça o exercício
A latência do export aumenta. Os traces amostrados mostram spans lentos da base de dados. O que pode concluir?

O que vai aprender

  • Escolher telemetria que responda a uma pergunta operacional específica.
  • Distinguir um sintoma do serviço de uma causa interna.
  • Proteger a telemetria e detetar evidências em falta ou desatualizadas.

Comece pela pergunta

A monitorização verifica condições conhecidas. A observabilidade ajuda a investigar o comportamento do sistema, incluindo falhas que não previu. Mais dashboards não fornecem automaticamente melhores respostas.

Num serviço fictício de exportação, comece com uma pergunta do utilizador: um utilizador autorizado consegue receber o export correto dentro do tempo acordado? Depois, escolha sinais que respondam a essa pergunta e ajudem a explicar as falhas.

O OpenTelemetry fornece instrumentação e normas de telemetria. Pode enviar sinais para backends compatíveis. Continua a precisar de armazenamento, consultas, controlos de acesso, retenção e pessoas que atuem com base nas evidências. Introdução à observabilidade.

Ligue diferentes formas de evidência

Uma métrica mede uma quantidade ao longo do tempo. Um log regista um evento. Um trace liga operações relacionadas à medida que um pedido atravessa um sistema. Um span representa uma operação dentro de um trace.

Pergunta operacionalExemplo de evidênciaLimite a ter em conta
Quantos exports elegíveis falham?Número de falhas e número de pedidos elegíveisUm denominador errado produz uma taxa enganadora
O que aconteceu a um export?Log estruturado com ID do job, resultado e versãoEventos em falta deixam lacunas
Onde foi gasto o tempo?Trace através da API, fila, worker e base de dadosA amostragem e falhas na propagação de contexto podem ocultar trabalho
O que mudou antes do sintoma?Registos de deployment e configuraçãoA sequência temporal, por si só, não demonstra uma causa

Para trabalho assíncrono, preserve uma correlação segura entre o job submetido e a execução do worker. Uma resposta HTTP 202 pode significar que o trabalho foi aceite. Não prova que o export terminou.

Emita alertas quando for preciso agir

Defina o SLI e o respetivo denominador antes de estabelecer o SLO. No exemplo, conte os exports elegíveis concluídos corretamente dentro da duração acordada. Defina como entram na medição os jobs de longa duração e os abandonados.

Um orçamento de erro descreve o nível de falha permitido no período do SLO. A taxa de consumo descreve a rapidez com que as falhas consomem esse orçamento. As orientações da Google usam várias janelas temporais para equilibrar a deteção atempada e o ruído dos alertas. Alertas baseados em SLOs.

Contacte a pessoa de prevenção quando a condição exigir uma ação atempada. Encaminhe trabalho menos urgente para uma fila. Cada alerta precisa de um responsável, uma descrição do impacto, uma ligação para a investigação e uma instrução de resposta. Reveja alertas que repetidamente não levam a qualquer ação.

Não use um limiar genérico para todos os serviços. O impacto nos utilizadores, o tráfego, o horário de atividade e a capacidade de resposta afetam a decisão.

Proteja o pipeline de telemetria

A telemetria pode conter dados pessoais, tokens, parâmetros de pedidos e documentos confidenciais. Defina os campos permitidos antes da recolha. Restrinja o acesso e a retenção. Remova ou oculte segredos antes de exportar para um backend externo. Telemetria sensível.

Não use o email de um cliente ou um ID único de job como etiqueta de uma métrica. Etiquetas sem limites aumentam o número 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 controlo de acesso.

Meça o próprio pipeline. Verifique falhas de ingestão, dados descartados e o tempo decorrido desde a observação mais recente. Um gráfico de erros sem variações pode significar ausência de erros ou ausência de telemetria recebida. Mostre essa diferença.

Investigue uma falha concreta

O serviço fictício devolve HTTP 202 para todos os pedidos. O tempo de espera dos jobs na fila aumenta de segundos para 15 minutos. Os logs dos workers mostram timeouts repetidos da base de dados. Os traces amostrados situam a maior parte do tempo dos workers em chamadas à base de dados.

Estas evidências sustentam uma investigação focada. Não permitem determinar se a causa é uma alteração da consulta, o esgotamento das ligações ou a capacidade da base de dados. Compare estas hipóteses com o método de depuração.

O Taiga Monitoring fornece uma perspetiva do estado do produto com sinais de disponibilidade e experiência no browser. Complementa a observabilidade da infraestrutura e da aplicação; não substitui esses sistemas. Monitoring.

Faça o exercício

Para o export fictício desta lição, defina um SLI, um alerta que exija ação, três campos de telemetria permitidos e dois proibidos. Indique como detetaria uma falha no pipeline de telemetria.

Descarregar ficha (Markdown)
Verifique a sua compreensão ↑

Continuar a aprender

Fontes e leituras adicionais

Leituras relacionadas da Taiga

← Lição anterior: Continuar a encontrar e corrigir vulnerabilidades