Observabilidade: Logs, Métricas e Tracing com OpenTelemetry
Voltar para Learn
FAACCapítulo 32

Fundamentos e Arquitetura de APIs Corporativas

Observabilidade: Logs, Métricas e Tracing com OpenTelemetry

Da instrumentação de aplicações à correlação distribuída, SLOs e diagnóstico de APIs em produção

Edição aprofundada - material de estudo e consulta profissional

Plataforma de observabilidade correlacionando logs, métricas e traces de serviços distribuídos

Apresentação do capítulo

Os capítulos anteriores mostraram que uma transação de pode atravessar , balanceadores, , service meshes, serviços, bancos e sistemas de mensageria. Quando algo falha, nenhum componente isolado enxerga toda a jornada. Observabilidade é a disciplina que transforma sinais emitidos por esses componentes em capacidade de compreender o estado interno do sistema, reconstruir causalidade e avaliar impacto para consumidores e processos de negócio.

, métricas e distribuído são frequentemente chamados de pilares da observabilidade. A expressão é útil, mas pode induzir a uma interpretação fragmentada. O valor não está em armazenar três tipos de dados em ferramentas diferentes; está em correlacioná-los por identidade de serviço, ambiente, versão, requisição, e contexto de negócio. Uma métrica indica que a latência aumentou, um localiza a etapa responsável e um explica o erro específico.

OpenTelemetry fornece , SDKs, convenções semânticas, protocolos e um Collector agnóstico de fornecedor para produzir, processar e exportar telemetria. Ele não substitui o de observabilidade. Seu papel é padronizar instrumentação e transporte, reduzindo dependência de agentes proprietários e permitindo que sinais consistentes sejam enviados a diferentes destinos.

Este capítulo aprofunda a teoria de observabilidade, o desenho de e métricas, a anatomia de e spans, propagação de contexto, , Collector, , sampling, exemplars, , segurança, controle de cardinalidade e . O foco permanece em corporativas, e arquiteturas distribuídas.

Como estudar este capítulo

Escolha uma única jornada de negócio - por exemplo, criar pagamento - e acompanhe como ela aparece nos três sinais. Pergunte qual identidade descreve o serviço, como o contexto atravessa cada salto, quais atributos são estáveis e como o diagnóstico mudaria se um dos sinais estivesse ausente.

Objetivos de aprendizagem

  • Diferenciar monitoramento, telemetria, observabilidade, diagnóstico e auditoria.
  • Projetar estruturados, métricas úteis e distribuídos com contexto consistente.
  • Explicar , , context, , event, link, status e .
  • Compreender , traceparent, tracestate e propagação entre protocolos.
  • Descrever , SDKs, auto-instrumentação, e OpenTelemetry Collector.
  • Aplicar e controlar atributos de alta cardinalidade.
  • Comparar , parent-based sampling e .
  • Relacionar exemplars, e a métricas e .
  • Desenhar resilientes, seguros e economicamente sustentáveis.
  • Diagnosticar falhas de instrumentação e lacunas de correlação em e microsserviços.

Estrutura do capítulo

  • 32.1 Observabilidade, monitoramento e telemetria
  • 32.2 Sinais e correlação
  • 32.3 estruturados
  • 32.4 Métricas e cardinalidade
  • 32.5 distribuído e spans
  • 32.6 Propagação de contexto e
  • 32.7 OpenTelemetry: , e instrumentação
  • 32.8 e OpenTelemetry Collector
  • 32.9 e Resources
  • 32.10 Sampling e exemplars
  • 32.11 , , alertas e
  • 32.12 Observabilidade em , Kubernetes e mensageria
  • 32.13 Segurança, privacidade, custos e
  • Resumo, checklist, laboratórios, exercícios, glossário e referências

32.1 Observabilidade, monitoramento e telemetria

Telemetria é o conjunto de dados emitidos pelo sistema: registros de eventos, medições, , perfis e outros sinais. Monitoramento utiliza parte desses dados para acompanhar condições conhecidas, comparar valores com limites e disparar alertas. Observabilidade é uma propriedade mais ampla: a capacidade de inferir o estado interno e responder perguntas novas a partir dos sinais externos disponíveis.

Um sistema pode estar intensamente monitorado e ainda ser pouco observável. Dezenas de painéis de CPU, memória e disponibilidade não explicam por que somente consumidores de uma região recebem 502 ao consultar um específico. A observabilidade exige contexto, correlação, granularidade adequada e uma arquitetura de dados que permita navegar do sintoma agregado até a evidência individual.

Auditoria possui objetivo diferente. Um de auditoria registra ações relevantes para segurança e conformidade, preservando autoria, integridade e retenção. Ele pode participar de investigações, mas não deve ser confundido com de diagnóstico. Misturar os dois usos leva a excesso de dados sensíveis em ferramentas operacionais ou a trilhas de auditoria incompletas.

Tabela 1 - Os conceitos se complementam, mas atendem objetivos diferentes.
ConceitoPergunta principalExemplo
TelemetriaQuais sinais o sistema emitiu?, métricas, e profiles.
MonitoramentoUma condição conhecida ocorreu?Taxa de erros acima do limite.
ObservabilidadeO que explica este comportamento?Correlacionar rota, versão, e .
AuditoriaQuem fez o quê, quando e sob qual autoridade?Alteração de policy ou acesso a dado sensível.

32.2 , métricas e como sinais correlacionados

registram eventos discretos com contexto detalhado. Métricas representam medições agregadas e são eficientes para tendências, alertas e capacidade. representam o caminho causal de uma operação através de processos e serviços. Cada sinal possui custos, modelos de consulta e granularidades distintas; nenhum deles é suficiente para todos os diagnósticos.

A correlação depende de atributos comuns. identifica a entidade que produziu a telemetria, como serviço, instância, pod, e ambiente. ID e ID conectam a uma execução específica. Atributos semânticos padronizam conceitos como método , rota, sistema de mensageria, banco de dados e código de erro. Sem consistência, painéis e consultas viram conjuntos de exceções por equipe.

OpenTelemetry também trata e profiles como sinais ou mecanismos adjacentes. propaga pares chave-valor pelo contexto distribuído; profiles registram uso de recursos em nível de código e estão evoluindo no ecossistema. Neste capítulo, o foco permanece nos três sinais mais presentes em , sem ignorar que a arquitetura moderna pode correlacioná-los a outros dados.

Logs, métricas e traces correlacionados por contexto compartilhado
Figura 1 - Os sinais ganham valor operacional quando descrevem a mesma entidade e a mesma jornada.

32.3 estruturados e eventos operacionais

Um estruturado representa o evento como campos tipados ou pares chave-valor, normalmente serializados em ou no formato nativo do agente. Em vez de escrever apenas "falha no pagamento", o registro inclui timestamp, severidade, serviço, ambiente, versão, operação, código de erro, trace_id, span_id e identificadores de negócio permitidos. Essa estrutura melhora filtragem, agregação e correlação automática.

Severidade deve refletir a capacidade de ação. DEBUG e ajudam em ambientes controlados; INFO registra eventos operacionais relevantes; WARN indica degradação ou condição inesperada que não interrompeu a operação; ERROR registra falha de uma ação; FATAL ou equivalente indica incapacidade de continuar. Registrar toda exceção como ERROR cria ruído e destrói o valor do alerta.

precisam evitar dados pessoais, , , segredos, completos e números financeiros desnecessários. Mascaramento posterior não é defesa suficiente, porque o dado já pode ter sido transportado ou persistido. O desenho correto começa na origem, com allowlist de campos, classificação de dados, retenção proporcional e acesso restrito.

Exemplo de evento estruturado e correlacionável

{
  "timestamp": "2026-07-16T11:42:31.052Z",
  "severity": "ERROR",
  "service.name": "pagamentos-api",
  "deployment.environment.name": "producao",
  "http.route": "/pagamentos/{id}/confirmacao",
  "error.type": "BackendTimeout",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "span_id": "00f067aa0ba902b7"
}
Tabela 2 - úteis são desenhados como contrato operacional.
Boa práticaMotivoAntipadrão
Campos estáveisPermitem consultas e alertas reutilizáveis.Mensagens livres com formatos diferentes.
Timestamp confiávelOrdena eventos e facilita correlação.Relógios divergentes sem sincronização.
e IDsConectam o evento ao .ID de correlação criado apenas em um serviço.
Redação na origemEvita exposição de segredos e PII.Remover dados somente no de .

32.4 Métricas, instrumentos, agregações e cardinalidade

Métricas representam observações numéricas agregadas no tempo. Contadores acumulam eventos, como e erros. Histograms distribuem valores, como duração e tamanho de , em faixas ou representações adequadas ao . Gauges registram um valor atual, como conexões abertas ou profundidade de fila. UpDownCounters representam quantidades que aumentam e diminuem.

A escolha do instrumento define como a medição pode ser agregada. Uma duração de não deve ser registrada apenas como média, porque a média esconde caudas. Histograms permitem consultar percentis e distribuição. Ainda assim, percentis agregados de forma incorreta podem produzir conclusões erradas; é necessário compreender o modelo do e a janela temporal.

Cardinalidade é o número de combinações distintas de atributos. Adicionar user_id, order_id, completa ou trace_id como label de métrica cria séries quase ilimitadas, aumenta memória e custo e pode derrubar o . Métricas devem usar dimensões limitadas e estáveis, como rota normalizada, método, status class, região e versão. A evidência individual permanece em ou .

Tabela 3 - O instrumento precisa representar a semântica da medição.
Instrumento / formaUso típicoExemplo em
CounterEventos que só crescem., erros e .
HistogramDistribuição de valores.Duração, tamanho de e fila.
GaugeValor observado no instante.Conexões abertas.
UpDownCounterQuantidade que sobe e desce.Operações em andamento.

Regra de cardinalidade

Atributos de métricas devem responder perguntas agregadas. Identificadores praticamente únicos pertencem a e . Antes de adicionar uma dimensão, estime quantos valores diferentes ela pode assumir por ambiente, serviço e janela de retenção.

32.5 distribuído, e spans

Um representa uma operação distribuída, como uma chamada de que atravessa , serviço, mensageria e banco. Cada etapa é representada por um , com nome, intervalo de tempo, contexto, atributos, eventos, status e relações com outros spans. A estrutura permite observar latência total, caminho crítico e dependências acionadas.

SpanKind descreve o papel do , como SERVER, , PRODUCER, CONSUMER ou INTERNAL. A classificação ajuda a compreender fronteiras e a calcular métricas a partir de . Events registram ocorrências pontuais dentro do , como uma exceção. Links relacionam spans que não possuem uma única hierarquia pai-filho, situação comum em processamento assíncrono e fan-out.

O nome do deve possuir baixa cardinalidade e refletir a operação, não o identificador concreto. Em , uma rota normalizada é preferível à completa. Em mensageria, o nome do destino e a operação ajudam a reconstruir produção e consumo. O não deve ser transformado em armazenamento indiscriminado de ; atributos e eventos obedecem às mesmas regras de privacidade dos .

Trace distribuído decompondo a latência entre gateway, serviço e dependências
Figura 2 - Um mostra a decomposição da latência e o caminho crítico da transação.

32.6 Propagação de contexto, e

Para que spans de processos diferentes pertençam ao mesmo , o contexto precisa atravessar a fronteira de rede. O padroniza os traceparent e tracestate para . traceparent carrega versão, ID, parent ID e . tracestate transporta informações específicas de fornecedores de maneira interoperável. Instrumentações devem extrair o contexto recebido e injetá-lo nas chamadas de saída.

Em , mensageria e protocolos proprietários, o mesmo princípio é aplicado por ou propriedades de mensagem. A propagação deve respeitar fronteiras de confiança: aceitar IDs externos sem validação ou copiar todo para sistemas internos pode introduzir abuso, vazamento e aumento de .

carrega contexto de aplicação em pares chave-valor. Ele não deve transportar segredo, dado pessoal ou informação de alta cardinalidade sem justificativa. Como pode atravessar muitos serviços, um pequeno campo é multiplicado por toda a jornada. também não substitui autorização; a aplicação não deve confiar em uma propagada apenas porque chegou no contexto.

Exemplo conceitual de contexto distribuído

traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
tracestate: vendorname=opaque-value
baggage: tenant.tier=premium,region.origin=br-south

32.7 OpenTelemetry: , e instrumentação

OpenTelemetry separa e . A é usada por bibliotecas e aplicações para criar instrumentos sem depender de uma implementação específica. O implementa sampling, processamento, agregação e exportação. Essa separação permite que uma biblioteca seja instrumentada sem obrigar o consumidor a enviar dados para um fornecedor determinado.

Instrumentação manual é adequada para operações de negócio e trechos que a instrumentação genérica não compreende. Auto-instrumentação utiliza agentes, bytecode, monkey patching, eBPF ou mecanismos equivalentes para capturar e bibliotecas com pouca alteração de código. A combinação costuma ser superior: automática para cobertura de infraestrutura e manual para semântica de negócio.

Instrumentar não significa gerar o máximo de dados possível. Cada , atributo, e série possui custo. A equipe deve definir uma estratégia de telemetria: quais jornadas são críticas, quais atributos são necessários, quais convenções estão estáveis, quais sinais serão derivados e como a instrumentação será testada junto ao código.

Tabela 4 - OpenTelemetry separa contrato de instrumentação e execução do .
ComponenteResponsabilidadeExemplo
Superfície usada pela instrumentação.Tracer, Meter e Logger .
Processa e exporta o sinal.Sampler, SpanProcessor e MetricReader.
Instrumentation LibraryCaptura um ou biblioteca. , JDBC, ou Kafka.
Auto-instrumentationAplica instrumentação sem alteração ampla do código.Agente Java ou mecanismo equivalente.

32.8 e OpenTelemetry Collector

é o protocolo nativo do OpenTelemetry para transportar telemetria. Ele pode operar sobre ou e possui modelos para , métricas e . O protocolo reduz a necessidade de formatos diferentes por fornecedor, mas não elimina decisões de rede, autenticação, compressão, fila, e proteção contra perda.

O OpenTelemetry Collector recebe, processa e exporta telemetria. Receivers aceitam e outros formatos. Processors aplicam batch, filtragem, transformação, enriquecimento, sampling e proteção de memória. Exporters enviam dados a . Extensions fornecem capacidades auxiliares, como e autenticação. As são declaradas por sinal.

O Collector pode ser implantado como agent próximo da aplicação, central por ou região, ou combinação em camadas. O padrão agent reduz saltos e coleta dados locais; o padrão centraliza processamento e credenciais de . O desenho deve considerar disponibilidade, filas persistentes, isolamento por tenant, escalabilidade e risco de tornar o Collector um ponto único de falha.

OpenTelemetry Collector processando sinais entre receivers, processors e exporters
Figura 3 - O Collector desacopla aplicações dos e aplica processamento em .

Exemplo resumido de do Collector

receivers:
  otlp:
    protocols:
      grpc: {}
      http: {}
processors:
  memory_limiter:
    limit_mib: 1024
  batch: {}
exporters:
  otlp/backend:
    endpoint: observabilidade.internal:4317
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp/backend]

32.9 , e governança de atributos

definem nomes, tipos e significados comuns para atributos, names, métricas e unidades. Sem essas convenções, cada equipe poderia registrar método como method, httpMethod ou verb, inviabilizando corporativos. A padronização permite consultar serviços escritos em linguagens diferentes com a mesma lógica.

descreve a entidade que produziu a telemetria. Atributos como service.name, service.version, .environment.name, host, e Kubernetes ajudam a localizar a origem. não deve ser confundido com atributos da operação: service.name descreve o emissor; .route descreve o .

Nem todas as possuem o mesmo nível de estabilidade. A governança deve registrar a versão adotada, acompanhar mudanças experimentais e impedir renomeações silenciosas. OTel Weaver e ferramentas de podem ajudar organizações a validar contratos de telemetria, mas a disciplina começa com um catálogo claro de atributos permitidos.

Tabela 5 - Convenções semânticas tornam a telemetria interoperável.
CategoriaExemplos de atributosCuidado
service.name, service.version, k8s..nameValores estáveis por entidade.
..method, .route, ..statuscodeUsar rota normalizada.
.system, .service, .methodAcompanhar estabilidade da convenção.
Mensageriamessaging.system, destination e operationEvitar IDs únicos como labels.

32.10 Sampling, perda controlada e preservação de úteis

Sampling reduz volume de . decide no início, usando probabilidade, parent context ou regras locais. É barato e rápido, mas não conhece o resultado final. Um erro raro pode ser descartado antes de acontecer. Parent-based sampling ajuda a manter coerência entre spans filhos e a decisão do .

decide após reunir spans suficientes no Collector ou . Ele pode preservar com erro, alta latência ou atributos específicos. Em contrapartida, exige memória, espera, roteamento consistente de spans do mesmo e planejamento de capacidade. Uma implantação distribuída sem afinidade por pode tomar decisões incompletas.

A política deve refletir objetivos: manter 100% de erros, acima do , amostras representativas por rota e pequena porcentagem do tráfego saudável. Sampling não corrige telemetria mal desenhada. Mesmo descartados podem contribuir para métricas derivadas, dependendo do ponto em que a agregação ocorre.

Comparação entre head sampling e tail sampling
Figura 4 - e possuem custos e capacidades de decisão diferentes.

32.11 Exemplars e correlação entre métricas, e

associa uma observação de métrica a um ou contexto representativo. Ao observar um bucket de alta latência, o operador pode abrir um real que contribuiu para aquele valor. Essa navegação reduz o salto entre visão agregada e evidência individual, especialmente em incidentes de cauda de latência.

também podem carregar trace_id e span_id. A correlação ideal permite navegar de um alerta para a série, da série para um , do para o e do para da mesma execução. Essa experiência depende de instrumentação consistente, sincronização de tempo, retenção compatível e integração entre .

A correlação não deve ser usada para copiar todos os dados para todos os sinais. Métricas continuam agregadas; continuam seletivos; continuam eventos. O objetivo é manter chaves de navegação e semântica comum, preservando as vantagens econômicas e operacionais de cada modelo.

32.12 , , orçamento de erro e alertas

é uma medição do comportamento observado, como proporção de válidos concluídos com sucesso abaixo de um limite de latência. define o alvo para uma janela, por exemplo 99,9% em 30 dias. O orçamento de erro representa a quantidade de falhas tolerada antes de ultrapassar o objetivo. Essa abordagem conecta telemetria à expectativa do usuário.

Alertas baseados apenas em infraestrutura produzem muitos falsos positivos e falsos negativos. CPU alta pode ser normal; CPU baixa pode coexistir com indisponibilidade completa por erro de . Alertas de burn rate observam quão rapidamente o orçamento de erro é consumido e podem combinar janelas curta e longa para equilibrar velocidade e estabilidade.

devem seguir perguntas operacionais. Para , as golden signals - latência, tráfego, erros e saturação - são um bom ponto de partida. Contudo, a rota, o consumidor, a região, a versão e o precisam ser dimensões controladas. Painéis sem owner, e ação associada viram decoração.

Telemetria transformada em SLI, SLO e alerta de burn rate
Figura 5 - Telemetria só se transforma em confiabilidade quando alimenta objetivos e decisões.

32.13 Observabilidade em , Kubernetes e mensageria

O deve registrar a visão de borda e a visão de separadamente. Duração total, tempo até o , status produzido pelo , status do , política que falhou, rota, consumidor e são evidências diferentes. Um 502 precisa indicar se houve falha de , connect , , reset ou resposta inválida do .

Em Kubernetes, Resources e atributos de infraestrutura conectam o serviço lógico a , , workload, pod, e nó. O Collector pode enriquecer telemetria com do ambiente. O desenho precisa tolerar pods efêmeros, rollouts e mudanças de sem tratar a instância como identidade permanente.

Em mensageria, causalidade pode não formar uma árvore simples. Produção, armazenamento, consumo, e DLQ ocorrem em tempos diferentes. Links e atributos semânticos ajudam a relacionar mensagens. Métricas de lag, idade da mensagem, taxa de redelivery e profundidade de fila complementam , mas precisam ser interpretadas dentro da semântica do broker.

Tabela 6 - Cada camada possui sinais próprios, mas a jornada precisa permanecer correlacionável.
CamadaMétricas essenciaisEvidência detalhada
, latência, erros, time, failures. por policy e de roteamento.
KubernetesCPU, memória, restarts, , disponibilidade. attributes, eventos e de pod.
MensageriaLag, depth, throughput, age, redelivery.Spans producer/consumer e IDs de mensagem controlados.

32.14 Segurança, privacidade e integridade da telemetria

Telemetria é um ativo sensível. Ela pode revelar topologia interna, nomes de serviços, versões, falhas, identificadores de usuários e decisões de segurança. O deve usar autenticação, criptografia em trânsito, segregação por tenant, controles de acesso, retenção e trilha de administração. Coletores não devem aceitar dados de qualquer origem sem validação.

A propagação de atravessa fronteiras externas e precisa de política. IDs recebidos podem ser aceitos, regenerados ou relacionados por links conforme o risco e a necessidade de correlação. deve ser filtrado. de autenticação precisam evitar e credenciais; atributos de SQL ou não devem registrar valores sensíveis por padrão.

Integridade também importa. Um invasor pode tentar esconder atividade reduzindo telemetria, inundar o ou injetar campos enganosos. Limites, autenticação mútua, validação de , monitoramento do próprio Collector e armazenamento imutável para auditoria reduzem esse risco.

Telemetria não é área livre de LGPD

Dados observacionais continuam sujeitos a finalidade, minimização, retenção, acesso e segurança. Um ID pode não identificar uma pessoa sozinho, mas e frequentemente carregam contexto que torna a correlação possível.

32.15 Custos, retenção, cardinalidade e capacidade do

Observabilidade possui custo de CPU, memória, rede, armazenamento, indexação e consulta. O custo nasce na instrumentação e se multiplica por volume, cardinalidade e retenção. Uma aplicação que adiciona cinco atributos de alta cardinalidade pode aumentar séries e índices muito mais do que o crescimento de tráfego sugere.

A estratégia deve definir tiers de retenção, sampling, compactação, agregação e roteamento por sinal. de debug podem permanecer poucos dias; métricas agregadas podem ter retenção longa; completos podem ser amostrados; auditoria segue política própria. O Collector permite filtrar, transformar e encaminhar dados para destinos diferentes antes de pagar o custo integral no .

O também precisa de . Filas internas, dropped spans, export failures, recusas por memória, tempo de processamento e uso de CPU do Collector devem ser monitorados. Uma plataforma de observabilidade que perde dados silenciosamente pode levar equipes a conclusões incorretas durante incidentes.

32.16 de observabilidade

Quando um está quebrado, verifique primeiro a propagação. O cliente injetou traceparent? O preservou ou recriou o contexto? A biblioteca do serviço extraiu o ? Chamadas assíncronas carregaram o contexto correto? Uma falha em qualquer salto cria separados, mesmo que todos os componentes estejam instrumentados.

Quando métricas desaparecem, investigue o instrumento, views, temporality, export interval, filtros e cardinalidade. Em , verifique parsing, timestamp, multiline, encoding e mapeamento de severity. No Collector, examine health, filas, memory limiter, batch, e erros dos exporters. O próprio precisa emitir telemetria para ser diagnosticado.

Diferenças de horário produzem spans com ordem impossível e fora da janela. Sincronização de relógio é requisito básico. Também é comum que nomes de serviço vazios ou inconsistentes agrupem aplicações diferentes no . Uma checklist de e deve fazer parte do .

Tabela 7 - Diagnóstico começa separando geração, propagação, processamento e armazenamento.
SintomaHipóteseEvidência
divididoContexto não propagado ou formato incompatível./ em cada salto.
Spans ausentesSampling, shutdown sem flush ou exporter falhando. do e métricas do Collector.
Métrica explodeAtributo de alta cardinalidade.Contagem de séries por label.
sem correlaçãotraceid/spanid não injetados.Configuração do appender e contexto ativo.
Collector descarta dadosLimite de memória, fila cheia ou indisponível.Internal telemetry e erros do exporter.

32.17 Estudos de caso e laboratórios

Estudo de caso 1: consumidores recebem intermitentemente 504 em uma bancária. A métrica de latência mostra aumento apenas em uma rota. Um abre um cujo do consome pouco tempo, mas o do permanece próximo ao . Os do mesmo indicam pool de conexões esgotado. A correlação evita alterar policies do sem necessidade.

Estudo de caso 2: após um rollout, o custo de métricas aumenta dez vezes. A investigação mostra que uma nova versão adicionou customer_id como atributo de histogram. A correção remove o identificador da métrica e o preserva apenas em spans amostrados e autorizados. O incidente demonstra por que telemetria precisa de revisão de contrato.

Estudo de caso 3: mensagens Kafka aparecem como separados do original. O produtor criou spans, mas não injetou contexto nos da mensagem. Após corrigir a propagação e usar links no consumidor quando apropriado, a plataforma passa a reconstruir a jornada assíncrona sem forçar uma hierarquia incorreta.

Laboratórios sugeridos

1) Instrumente uma com auto-instrumentação e um manual de negócio. 2) Propague traceparent pelo e confirme a continuidade do . 3) Configure um Collector com receiver , memory_limiter, batch e dois exporters. 4) Crie uma métrica com baixa cardinalidade e associe exemplars. 5) Simule erro, e mensagem assíncrona e compare os três sinais.

Resumo do capítulo

Observabilidade é a capacidade de explicar o comportamento interno de sistemas a partir de sinais externos. , métricas e possuem modelos diferentes e devem ser correlacionados por , contexto distribuído e convenções semânticas. A qualidade da correlação é mais importante que a quantidade de dados.

OpenTelemetry separa , SDKs, instrumentações, protocolo e Collector. Essa arquitetura permite instrumentação agnóstica de fornecedor, processamento centralizado e exportação para múltiplos . O Collector, porém, precisa ser projetado como componente crítico, com capacidade, filas, segurança e telemetria própria.

Sampling, exemplars, e alertas transformam sinais em decisões. Cardinalidade, privacidade e custo precisam ser tratados desde o design. Em , Kubernetes e mensageria, cada camada produz evidências específicas, mas a jornada completa só aparece quando contexto e semântica atravessam todas as fronteiras.

Próximo passo do curso

O próximo capítulo aprofunda Kubernetes para , conectando workloads, Services, Ingress/ , probes, autoscaling, segurança e operação às práticas de observabilidade apresentadas aqui.

Checklist de observabilidade

  • Cada serviço define service.name, versão, ambiente e ownership de forma consistente.
  • são estruturados, correlacionáveis e não contêm segredos ou dados pessoais desnecessários.
  • Métricas usam instrumentos corretos e atributos de baixa cardinalidade.
  • Spans descrevem operações estáveis, dependências, erros e tempo sem copiar completos.
  • é propagado em , e mensageria, respeitando fronteiras de confiança.
  • e sua estabilidade são governadas como contrato.
  • Sampling preserva erros, latência elevada e representatividade do tráfego saudável.
  • Collector possui memory limiter, batch, filas, , e telemetria interna.
  • e alertas estão ligados a SLIs, , owners e ações conhecidas.
  • Custos, retenção, cardinalidade e privacidade são revisados antes da produção.

Exercícios

  • Diferencie telemetria, monitoramento, observabilidade e auditoria.
  • Explique por que trace_id é inadequado como label de métrica.
  • Descreva , , event, link, status e .
  • Explique traceparent e tracestate em uma chamada distribuída.
  • Compare instrumentação manual e auto-instrumentação.
  • Desenhe uma do Collector com receivers, processors e exporters.
  • Compare e .
  • Explique como exemplars conectam métricas e .
  • Proponha um de disponibilidade e outro de latência para uma .
  • Liste controles para impedir exposição de e PII na telemetria.
  • Descreva como diagnosticar um interrompido entre e .
  • Proponha um laboratório para correlacionar , mensagem e processamento assíncrono.

Glossário

Tabela 8 - Vocabulário essencial do capítulo.
TermoDefinição
Par chave-valor associado a , , métrica ou .
Contexto de aplicação propagado entre processos.
Observação de métrica associada a um ou contexto representativo.
Decisão de amostragem tomada no início do .
Modelo de registro de no OpenTelemetry.
Protocolo nativo de transporte do OpenTelemetry.
Entidade que produz a telemetria.
Nomes e significados padronizados para telemetria.
Indicador quantitativo do comportamento observado.
Objetivo definido para um em uma janela.
Unidade de trabalho temporizada dentro de um .
Decisão de amostragem após observar spans do .
Representação causal de uma operação distribuída.
Padrão de propagação de contexto distribuído.
Configuração que altera agregação e atributos de métricas no .

Referências técnicas

  • OpenTelemetry. What is OpenTelemetry? e Observability Primer.
  • OpenTelemetry. Concepts: Signals, , Metrics, , e Context Propagation.
  • OpenTelemetry Specification. Overview, , Metrics e .
  • OpenTelemetry .
  • OpenTelemetry Collector: Architecture, Configuration, Patterns e Scaling.
  • . Level 2.
  • . .
  • Google SRE. Service Level Objectives e Error Budgets.
  • CNCF. OpenTelemetry project documentation.

Nota de atualização

OpenTelemetry evolui sinal por sinal, e podem estar estáveis ou experimentais. Antes de padronizar atributos, exporters ou configuração declarativa, valide o status da versão adotada e teste migrações em ambiente controlado.