Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Select a trace sampling mode for the ARMS agent V3.2.8 and later

Última atualização: Jun 27, 2026

Rastros distribuídos geram grandes volumes de dados de span. Sem amostragem, os custos de armazenamento e computação aumentam conforme o tráfego, embora a maioria dos rastros represente requisições normais e saudáveis. O Application Real-Time Monitoring Service (ARMS) oferece cinco políticas de amostragem que permitem manter apenas os rastros relevantes — como erros, requisições lentas e interfaces de baixo tráfego — e descartar o rest. Essa abordagem reduz custos e preserva a cobertura de observabilidade necessária para solução de problemas e análise de desempenho.

Todas as alterações na configuração de amostragem entram em vigor imediatamente. Não é necessário reiniciar a aplicação.

Termos

Termo

Definição

Span

Uma única operação dentro de uma requisição, como uma chamada RPC ou uma invocação de método interno.

Root span

O primeiro span de um rastro. Um root span não possui pai.

Local root span

O primeiro span de um rastro dentro de um único serviço. Cada serviço em um rastro distribuído tem seu próprio local root span.

Span context

Metadados associados a um span, propagados entre limites de processos.

Head-based sampling

Decisão de amostragem tomada no root span antes que o rastro comece a se propagar. O head-based sampling garante rastros completos: todos os spans são amostrados ou nenhum é.

Non-head based sampling

Amostragem que entra em vigor quando o head-based sampling não é acionado. O non-head based sampling pode ser ativado em qualquer local root span; portanto, a integridade do rastro não é garantida.

Escolha uma política de amostragem

O ARMS fornece duas políticas baseadas em head-based sampling e três baseadas em non-head based sampling. As políticas head-based decidem no root span e garantem rastros completos de ponta a ponta. Já as políticas non-head based decidem em serviços individuais e capturam rastros que o head-based sampling poderia ignorar.

Objetivo

Política recomendada

Categoria

Amostrar uma porcentagem fixa de todos os rastros

Amostragem de taxa fixa

Head-based

Equilibrar a cobertura entre todas as interfaces, independentemente do volume de tráfego

Amostragem adaptativa

Head-based

Garantir pelo menos um rastro por interface por minuto

Amostragem mínima para todas as interfaces

Non-head based

Capturar automaticamente rastros de erros e requisições lentas

Amostragem para requisições com falha ou lentas

Non-head based

Sempre amostrar interfaces específicas por nome

Amostragem personalizada

Non-head based

Várias políticas podem estar ativas simultaneamente. O ARMS as avalia em uma ordem definida. Consulte Fluxograma de decisão de amostragem.

Políticas de head-based sampling

O head-based sampling toma uma única decisão no root span de um rastro. Se o rastro for amostrado, todos os spans downstream herdam essa decisão por meio do span context. Isso garante rastros completos de ponta a ponta.

Amostragem de taxa fixa

A amostragem de taxa fixa seleciona rastros com base em uma porcentagem configurada no serviço de entrada. Por exemplo, uma taxa de amostragem de 10% significa que aproximadamente 1 em cada 10 rastros será amostrado.

Os spans amostrados carregam o atributo sample.reason: s4.

Fixed-rate sampling diagram

Configure a amostragem de taxa fixa

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Selecione uma região na barra de navegação superior e clique em na aplicação.

    Nota

    Os ícones na coluna

    Language

    indicam a linguagem de programação: -

    Java

    : Java -

    Go

    : Go -

    Python

    : Python -

    -

    (Hífen): uma aplicação monitorada no Managed Service for OpenTelemetry

  3. Na barra de navegação superior, escolha Configuration > Custom Configurations.

  4. Na seção Sampling Settings, defina Sampling strategy como Fixed sampling rate. No campo Sample Rate Percentage, insira um valor. Por exemplo, insira 10 para uma taxa de amostragem de 10%.

    Nota

    O valor padrão é 10. Uma taxa de amostragem mais alta consome mais recursos do sistema. Mantenha o padrão, a menos que sua carga de trabalho exija uma cobertura de rastros mais ampla.

  5. Clique em Save.

Amostragem adaptativa

Interfaces de alto tráfego frequentemente dominam os resultados da amostragem de taxa fixa, enquanto interfaces críticas, mas com pouco tráfego, ficam sub-representadas. A amostragem adaptativa resolve esse problema ao alocar um número fixo de rastros por interface, independentemente do volume de requisições.

Como funciona: O ARMS identifica as 1.000 interfaces com maior volume de requisições e amostra 10 rastros por interface por minuto usando um algoritmo LFU (Least Frequently Used). Todas as interfaces restantes compartilham um orçamento combinado de 10 rastros por minuto.

Exemplo: Suponha que seu serviço tenha uma interface /api/orders/list processando 50.000 requisições por minuto e outra interface /api/orders/refund processando apenas 100 requisições por minuto. Com a amostragem adaptativa, ambas obtêm 10 rastros amostrados por minuto. Você mantém a visibilidade do fluxo de reembolso de baixo tráfego sem ser sobrecarregado pelo fluxo de listagem de alto tráfego.

Os spans amostrados carregam o atributo sample.reason: s6.

Adaptive sampling diagram

Configure a amostragem adaptativa

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Selecione uma região na barra de navegação superior e clique em na aplicação.

    Nota

    Os ícones na coluna

    Language

    indicam a linguagem de programação: -

    Java

    : Java -

    Go

    : Go -

    Python

    : Python -

    -

    (Hífen): uma aplicação monitorada no Managed Service for OpenTelemetry

  3. Na barra de navegação superior, escolha Configuration > Custom Configurations.

  4. Na seção Sampling Settings, defina Sampling strategy como Adaptive Sampling.

  5. Clique em Save.

Políticas de non-head based sampling

O non-head based sampling é acionado independentemente em cada serviço quando o head-based sampling ainda não selecionou o rastro. Como a decisão ocorre no meio do rastro e não na raiz, rastros completos de ponta a ponta não são garantidos. No entanto, essas políticas capturam rastros que o head-based sampling poderia perder, como erros, requisições lentas e interfaces raramente invocadas.

Amostragem mínima para todas as interfaces

O ARMS amostra automaticamente pelo menos um rastro por interface por minuto. Isso garante visibilidade básica em todas as interfaces, incluindo aquelas com tráfego muito baixo que a amostragem de taxa fixa ou adaptativa poderia ignorar completamente.

Os spans amostrados carregam o atributo sample.reason: s2.

Minimum sampling for all interfaces diagram

Amostragem para requisições com falha ou lentas

Esta política captura automaticamente rastros de requisições com falha ou lentas, garantindo que você sempre tenha dados de rastro para as chamadas que precisam de investigação.

Importante

Antes de usar esta política, verifique se a chave Call chain compression está ativada. Acesse a página de detalhes da aplicação, escolha Configuration > Custom Configurations na barra de navegação superior e verifique a seção Advanced Settings. A chave vem ativada por padrão.

Um rastro é amostrado quando qualquer uma das seguintes condições é atendida:

  • Requisição com falha: Uma interface HTTP retorna um código de status diferente de 200 ou uma interface não HTTP lança uma exceção a partir do método instrumentado.

  • Exceção interna não capturada: Ocorre uma exceção durante a execução interna, mas ela não é propagada para o serviço de entrada do framework.

  • Requisição lenta: A duração da chamada excede o limiar de chamada lenta configurado na página Custom Configurations.

Nota

Se os quantis estiverem habilitados, chamadas com duração acima do percentil 99 daquela interface também correspondem à regra de amostragem de chamada lenta.

O valor do atributo sample.reason depende da condição de acionamento:

Condição

**Valor de sample.reason**

Requisição com falha

s9

Chamada anormal (exceção não capturada)

s11

Requisição lenta

s10

Sampling for failed or slow requests diagram

Amostragem personalizada

A amostragem personalizada permite especificar interfaces por nome exato, prefixo ou sufixo e amostrar todos os seus rastros. Utilize este recurso para interfaces que exigem cobertura completa de rastros — por exemplo, interfaces de processamento de pagamentos ou serviços recém-implantados.

Os spans amostrados carregam o atributo sample.reason: s3.

Custom sampling diagram

Configure a amostragem personalizada

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Selecione uma região na barra de navegação superior e clique em na aplicação.

    Nota

    Os ícones na coluna

    Language

    indicam a linguagem de programação: -

    Java

    : Java -

    Go

    : Go -

    Python

    : Python -

    -

    (Hífen): uma aplicação monitorada no Managed Service for OpenTelemetry

  3. Na barra de navegação superior, escolha Configuration > Custom Configurations.

  4. Na seção Sampling Settings, especifique os nomes, prefixos ou sufixos das interfaces.

  5. Clique em Save.

Marcas de amostragem

Quando os contextos de rastro passam entre serviços usando o protocolo EagleEye, o ARMS usa marcas de amostragem para comunicar a decisão de amostragem. O cabeçalho de requisição EagleEye-Sampled carrega um destes dois valores:

Valor

Significado

s0

Não amostrado

s1

Amostrado

O ARMS também registra o motivo pelo qual um rastro foi amostrado no atributo de span sample.reason. Use esse atributo para filtrar e analisar rastros no Trace Explorer. Por exemplo, filtre por s10 para encontrar todos os rastros amostrados devido a requisições lentas.

**Valor de sample.reason**

Política de amostragem

s2

Amostragem mínima para todas as interfaces

s3

Amostragem personalizada

s4

Amostragem de taxa fixa

s5

Reservado

s6

Amostragem adaptativa

s7

Reservado

s8

Amostragem da Basic Edition

s9

Amostragem de requisição com falha

s10

Amostragem de requisição lenta

s11

Amostragem de chamada anormal

Fluxograma de decisão de amostragem

O diagrama a seguir ilustra como o ARMS avalia as políticas de amostragem para um rastro que abrange os serviços A, B e C.

Sampling decision flowchart

O fluxograma utiliza três caminhos codificados por cores:

  • Roxo (head-based sampling): Avaliado apenas no root span do rastro. Uma única decisão de amostragem é tomada no serviço A e propagada para todos os serviços downstream.

  • Azul (amostragem personalizada e amostragem mínima): Avaliado em cada serviço se o head-based sampling não tiver sido acionado. Quando o serviço B amostra um rastro por meio de amostragem personalizada ou mínima, os atributos de amostragem são passados para o serviço C. Cada serviço (A, B, C) toma sua própria decisão.

  • Verde (amostragem de requisição com falha ou lenta): Avaliado em cada serviço se nenhuma das políticas anteriores tiver acionado a amostragem. Quando o serviço B amostra um rastro devido a uma falha ou resposta lenta, os atributos de amostragem não são passados para o serviço C. Cada serviço toma uma decisão independente.

Veja também