Saltar para o conteúdo principal
Sistemas digitais15 min de leitura

Amostragem de traces: poupar volume sem apagar os erros raros

Uma taxa uniforme reduz custo e também visibilidade. O desenho útil preserva contexto ponta a ponta, erros, caudas de latência e serviços críticos enquanto mede o que perde.

Atualizado
Natureza
Guia de rollout para OpenTelemetry Collector
Quem deve ler
SRE, plataforma, observabilidade, arquitetura e donos de serviço
Publicado e verificado
5 de agosto de 2026
Limite
Taxas e limiares são decisões locais; os exemplos oficiais não constituem baseline universal
Modelo físico de serviços filtra muitos percursos e preserva em persimão os raros para inspeção
Amostragem responsável reduz volume conhecido sem eliminar precisamente os traces que explicam falhas raras.Imagem gerada por IA sob direção editorial da Velqory.

Em resumo

Head sampling decide no início e é simples de distribuir, mas ainda não conhece o resultado. Tail sampling espera por spans suficientes para decidir com base em erro, latência, atributos ou criticidade, ao custo de estado, memória e atraso no Collector. O W3C Trace Context torna a decisão propagável; decisões inconsistentes fragmentam traces. A OpenTelemetry oferece exemplos de políticas por criticidade e trabalho em amostragem probabilística consistente, cuja página normativa está marcada Development. A proposta Velqory começa por uma baseline mensurável, protege eventos raros, testa pressão e exportação e só então reduz volume.

  • Head sampling é barato e precoce; tail sampling vê o resultado, mas precisa de capacidade e espera.
  • Preserve sempre erros relevantes, caudas de latência e serviços críticos antes de aplicar taxas ao tráfego saudável.
  • A fila cheia ou o fim da janela de retry pode provocar perda; WAL melhora resiliência, mas não garante perda zero.
  • Configurações de demonstração e especificações em Development não são políticas universais: calibre e teste no seu sistema.

A escolha é sobre o momento da decisão e a informação disponível

No head sampling, a biblioteca decide quando o trace começa. A decisão pode usar serviço, operação, parent e probabilidade, mas ainda não sabe se haverá erro ou latência extrema. No tail sampling, o Collector reúne spans e decide mais tarde; consegue preservar o raro, mas precisa de dimensionamento e de uma janela que aceite spans tardios.

Propague traceparent e tracestate corretamente entre serviços. Se componentes ignorarem a decisão do parent ou alterarem contexto, o trace fica parcial e a política deixa de ser reproduzível.

Rollout que mede antes de cortar

  1. 1 · MAPA
    Classificar serviços e sinais

    Criticidade, volume, erros, caudas, atributos, dados sensíveis e donos.

  2. 2 · CONTEXTO
    Provar propagação ponta a ponta

    Trace ID, parent, flags e atributos estáveis através de todas as fronteiras.

  3. 3 · BASELINE
    Medir ingestão e perda

    Volume, custo, spans tardios, filas, retries, drops e tempo de consulta.

  4. 4 · POLÍTICA
    Proteger o raro primeiro

    Erros, latência, criticidade e investigação; depois amostrar tráfego saudável.

  5. 5 · FALHA
    Testar pressão e recuperação

    Backend lento, fila cheia, restart, WAL, duplicação e perda observada.

  6. 6 · REVISÃO
    Comparar utilidade e custo

    Incidentes explicados, cobertura, enviesamento, custo e capacidade do Collector.

A matriz protege primeiro o valor diagnóstico e só depois aplica probabilidade

Defina precedência explícita: uma regra de erro ou criticidade não pode ser anulada por uma taxa posterior. Registe também a razão da amostragem para conseguir auditar se o conjunto guardado representa a política pretendida.

Classe de trace e decisão

ClasseDecisão inicialDecisão finalAceitação
Erro relevanteManter contextoPreservarCadeia completa e causa investigável
Cauda de latênciaManter contextoPreservar acima do limiar localDistribuição extrema continua visível
Serviço críticoTaxa conservadoraPreservar sinais definidosCobertura acordada pelo dono
Tráfego saudávelProbabilidade consistenteReduzir conforme orçamentoEstimativas e comparação continuam válidas
Background ruidosoTaxa baixa ou exclusão fundamentadaPreservar exceçõesSem ocultar dependência crítica
Pressão no CollectorFila e retryDegradar de forma observávelDrops, motivo e alarme são medidos

Uma política de amostragem só é segura quando a perda é visível

O Collector usa sending queues e retry para absorver indisponibilidade temporária; quando a fila enche ou o tempo de retry termina, dados podem ser descartados. Um write-ahead log pode tornar a fila persistente para caminhos críticos, mas não elimina todas as formas de perda. Alarme sobre queue capacity, falhas de exportação, drops e spans demasiado tardios.

A página de consistent probability sampling está identificada como Development. Use-a para compreender o mecanismo e testar interoperabilidade, não para afirmar uma garantia final. Compare regularmente traces guardados com métricas e logs; divergência pode revelar enviesamento ou falha de instrumentação.

  • Versionar políticas e guardar a razão de retenção.
  • Dimensionar memória pela janela, taxa e tamanho dos traces.
  • Separar redução voluntária de perda por pressão.
  • Rever após mudança de topologia, tráfego ou backend.

Consultadas na data de atualização indicada.

  1. 01OpenTelemetry Collector resiliencyOpenTelemetry · SYS-OTEL
  2. 02W3C Trace Context RecommendationW3C · SYS-W3C
  3. 03Tail sampling by service criticalityOpenTelemetry · SYS-OTEL
  4. 04OpenTelemetry consistent probability samplingOpenTelemetry · SYS-OTEL
  5. 05OpenTelemetry Go sampling guidanceOpenTelemetry · SYS-OTEL
  6. 06Practical Alerting from Time-Series DataGoogle SRE · SYS-GOOGLESRE