Configurar regras de amostragem - AWS X-Ray

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar regras de amostragem

Você pode usar o AWS X-Ray console para configurar regras de amostragem para seus serviços. O AWS Distro for OpenTelemetry, X-Ray SDK e Serviços da AWS que oferecem suporte ao rastreamento ativo com configurações de amostragem usam regras de amostragem para determinar quais solicitações devem ser registradas.

Configurar regras de amostragem

Você pode configurar a amostragem para os seguintes casos de uso:

  • Ponto de entrada do API Gateway: o API Gateway é compatível com amostragem e rastreamento ativo. Para habilitar o rastreamento ativo em um estágio de API, consulte Compatibilidade com o rastreamento ativo do Amazon API Gateway para o AWS X-Ray.

  • AWS AppSync— AWS AppSync suporta amostragem e rastreamento ativo. Para ativar o rastreamento ativo nas AWS AppSync solicitações, consulte Rastreamento com X-Ray AWS.

  • AWS Step Functions— AWS Step Functions suporta amostragem e rastreamento ativo. Para ativar o rastreamento ativo em máquinas de AWS Step Functions estado, consulte Rastreamento de X-Ray em Step Functions.

  • Instrument AWS Distro para OpenTelemetry plataformas computacionais — Ao usar plataformas computacionais como Amazon, EC2 Amazon ECS ou AWS Elastic Beanstalk, a amostragem é suportada quando o aplicativo foi instrumentado com o mais recente AWS Distro for ou X-Ray SDK. OpenTelemetry

Personalizar regras de amostragem

Ao personalizar regras de amostragem, você pode controlar a quantidade de dados registrados. Você também pode modificar o comportamento da amostragem sem modificar ou reimplantar seu código. As regras de amostragem informam ao AWS Distro for OpenTelemetry (ADOT) ou ao X-Ray SDK quantas solicitações devem ser registradas de acordo com um conjunto de critérios. Por padrão, o SDK registra a primeira solicitação a cada segundo e cinco por cento de todas as solicitações adicionais. Uma solicitação por segundo é o reservatório. Isso garante que pelo menos um rastreamento seja registrado a cada segundo à medida que o serviço atende às solicitações. Cinco por cento é a taxa segundo a qual as solicitações adicionais, além do tamanho de reservatório, são amostradas.

Você pode configurar o X-Ray SDK para ler as regras de amostragem de um documento JSON incluído com seu código. No entanto, ao executar várias instâncias do seu serviço, cada instância realiza a amostragem de forma independente. Isso faz com que a porcentagem total de solicitações amostradas aumente, pois os reservatórios de todas as instâncias são efetivamente somados. Além disso, para atualizar as regras de amostragem locais, você deve reimplantar seu código.

Ao definir regras de amostragem no console do X-Ray e configurar o SDK para ler as regras do serviço do X-Ray, você pode evitar esses problemas. O serviço gerencia o reservatório para cada regra e atribui cotas para cada instância de seu serviço a fim de distribuir o reservatório uniformemente com base no número de instâncias que estão em execução. O limite do reservatório é calculado de acordo com as regras definidas. Como as regras são configuradas no serviço, você pode gerenciá-las sem fazer implantações adicionais.

nota

Ao configurar as regras de amostragem, é fundamental entender que a amostragem por X-Ray é “baseada nos pais”. Isso significa que a decisão de amostragem é tomada apenas uma vez, normalmente pelo primeiro X-Ray-enabled serviço que processa a solicitação (o serviço “Root”).

Se um serviço downstream receber uma solicitação que já tenha uma decisão de amostragem de um pai upstream, ele honrará essa decisão independentemente de qualquer uma de suas próprias regras de amostragem correspondentes.

  • Quando as regras se aplicam: Suas regras de amostragem personalizadas só entram em vigor em serviços em que a decisão de amostragem ainda não foi tomada. Isso geralmente se aplica a:

    • O ponto de entrada do seu aplicativo (por exemplo, um API Gateway, um Load Balancer ou o primeiro microsserviço instrumentado).

    • Processos ou trabalhadores assíncronos que iniciam um novo rastreamento.

  • Armadilha comum: se você criar uma regra de amostragem estrita para o “Serviço B”, mas o “Serviço B” sempre for chamado pelo “Serviço A”, sua regra para o Serviço B provavelmente nunca será aplicada porque está simplesmente seguindo a decisão passada pelo Serviço A. Para alterar a amostragem de traços desse fluxo de trabalho, você deve configurar a regra de amostragem para o serviço raiz (Serviço A).

nota

Como o X-Ray usa a abordagem de melhor esforço na aplicação de regras de amostragem, em alguns casos a taxa de amostragem efetiva pode não corresponder exatamente às regras de amostragem configuradas. No entanto, com o tempo, o número de solicitações amostradas deve estar próximo à porcentagem configurada.

Agora você pode configurar as regras de amostragem do X-Ray no CloudWatch console da Amazon.

Para configurar as regras de amostragem no console CloudWatch
  1. Faça login no Console de gerenciamento da AWS e abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/.

  2. Escolha Configurações no painel de navegação esquerdo, abaixo de Configuração.

  3. Escolha Ver configurações em Regras de amostragem na seção Rastreamento do X-Ray.

  4. Para criar uma regra, escolha Criar regra de amostragem.

    Para editar uma regra, escolha uma regra e selecione Editar para editá-la.

    Para excluir uma regra, escolha uma regra e selecione Excluir, para excluí-la.

Opções de regras de amostragem

As opções a seguir estão disponíveis para cada regra. Valores de string podem usar curingas para corresponder a um caractere único (?) ou zero ou mais caracteres (*).

Opções de regras de amostragem
  • Nome da regra (string): um nome exclusivo para a regra.

  • Prioridade (inteiro entre 1 e 9.999): a prioridade da regra de amostragem. Os serviços avaliam as regras em ordem decrescente de prioridade e tomam uma decisão de amostragem com a primeira regra correspondente.

  • Reservatório (inteiro não negativo): um número fixo de solicitações correspondentes para instrumentar por segundo, antes de aplicar a taxa fixa. O reservatório não é usado diretamente pelos serviços, mas se aplica a todos os serviços usando a regra coletivamente.

  • Taxa (número inteiro entre 0 e 100): a porcentagem de solicitações correspondentes para instrumentar, depois que o reservatório está esgotado. Ao configurar uma regra de amostragem no console, escolha uma porcentagem entre 0 e 100. Ao configurar uma regra de amostragem em um SDK de cliente usando um documento JSON, forneça um valor percentual entre 0 e 1.

  • Nome do serviço (string): o nome do serviço instrumentado, como ele aparece no mapa de rastreamento.

    • X-Ray SDK: o nome do serviço que você configura no gravador.

    • Amazon API Gateway: api-name/stage.

  • Tipo do serviço (string): o tipo de serviço, como ele aparece no mapa de rastreamento. Para o X-Ray SDK, defina o tipo de serviço aplicando o plug-in apropriado:

    • AWS::ElasticBeanstalk::Environment— Um AWS Elastic Beanstalk ambiente (plugin).

    • AWS::EC2::Instance— Uma EC2 instância da Amazon (plugin).

    • AWS::ECS::Container: um contêiner do Amazon ECS (plug-in).

    • AWS::EKS::Container— Um contêiner Amazon EKS (plugin).

    • AWS::APIGateway::Stage: um estágio do Amazon API Gateway.

    • AWS::AppSync::GraphQLAPI — Uma solicitação de AWS AppSync API.

    • AWS::StepFunctions::StateMachine— Uma máquina AWS Step Functions estatal.

  • Host (string): o nome de host do cabeçalho de host HTTP.

  • Método HTTP (string): o método da solicitação HTTP.

  • Caminho do URL (string): o caminho URL da solicitação.

    • X-Ray SDK: a porção do caminho URL da solicitação HTTP.

  • ARN do recurso (string) — O ARN do AWS recurso que está executando o serviço.

    • X-Ray SDK: sem suporte. O SDK só pode usar regras com o Resource ARN (ARN do recurso) definido como *.

    • Amazon API Gateway: o ARN do estágio.

  • (Opcional) Atributos (chave e valor): atributos de segmento que são conhecidos quando a decisão de amostragem é feita.

    • X-Ray SDK: sem suporte. O SDK ignora as regras que especificam atributos.

    • Amazon API Gateway: cabeçalhos da solicitação HTTP original.

  • (Opcional) SamplingRateBoost(objeto) — Controla o comportamento de aumento de amostragem baseado em anomalias.

    • MaxRate (número inteiro entre 0 e 100) — Taxa máxima de amostragem (0,0—1,0) O raio-X pode aumentar para durante anomalias

    • CooldownWindowMinutes (número inteiro maior que 0) — Janela de tempo (minutos) na qual somente um impulso pode ser acionado, evitando aumentos contínuos

Exemplos de regras de amostragem

exemplo Exemplo: regra padrão sem reservatório e com taxa baixa

Você pode modificar o reservatório e a taxa da regra padrão. A regra padrão se aplica às solicitações que não correspondem a nenhuma outra regra.

  • Reservatório: 0

  • Taxa: 5 (0.05 se configurada usando um documento JSON)

exemplo Exemplo: regra de depuração para rastrear todas as solicitações para uma rota problemática

Uma regra de alta prioridade aplicada temporariamente para depuração.

  • Nome da regra: DEBUG – history updates

  • Prioridade: 1

  • Reservatório: 1

  • Taxa: 100 (1 se configurada usando um documento JSON)

  • Nome de serviço: Scorekeep

  • Tipo de serviço: *

  • Host: *

  • Método HTTP: PUT

  • Caminho URL: /history/*

  • ARN do recurso: *

exemplo — Taxa mínima mais alta para POSTs
  • Nome da regra: POST minimum

  • Prioridade: 100

  • Reservatório: 10

  • Taxa: 10 (.1 se configurada usando um documento JSON)

  • Nome de serviço: *

  • Tipo de serviço: *

  • Host: *

  • Método HTTP: POST

  • Caminho URL: *

  • ARN do recurso: *

exemplo Ativar o aumento impulsionado por anomalias

Configure uma regra que acione um aumento de amostragem para até 50% durante anomalias, com um tempo de desaquecimento de 10 minutos.

  • Nome da regra: MyAdaptiveRule

  • Prioridade: 100

  • Reservatório: 1

  • FixedRate: 0.0510

  • Nome de serviço: *

  • Tipo de serviço: *

  • Host: *

  • Método HTTP: POST

  • Caminho URL: *

  • maxRate: 0.5

  • cooldownWindowMinutes: 10

Configurar o serviço para usar regras de amostragem

O AWS Distro for OpenTelemetry (ADOT) e o X-Ray SDK exigem configuração adicional para usar as regras de amostragem que você configura no console. Consulte o tópico de configuração referente à sua linguagem para obter detalhes sobre como configurar uma estratégia de amostragem:

Para API Gateway, consulte Compatibilidade com o rastreamento ativo do Amazon API Gateway para o AWS X-Ray.

Visualização dos resultados de amostragem

A página Amostragem do console do X-Ray mostra informações detalhadas sobre como seus serviços usam cada regra de amostragem.

A coluna Trend (Tendência) mostra como a regra foi usada nos últimos minutos. Cada coluna mostra estatísticas para uma janela de 10 segundos.

Estatísticas da amostragem
  • Total de regras correspondidas: o número de solicitações que correspondem a essa regra. Esse número não inclui solicitações que poderiam ter correspondido essa regra, mas que primeiro encontraram uma regra correspondente de prioridade mais alta.

  • Total de amostra o número de solicitações registradas.

  • Amostradas com taxa fixa: o número de solicitações amostradas aplicando a taxa fixa da regra.

  • Amostra com reservatório limite: o número de solicitações amostradas usando uma cota atribuída pelo X-Ray.

  • Emprestado do reservatório: o número de solicitações amostradas por empréstimo do reservatório. Na primeira vez em que um serviço corresponde a uma solicitação de uma regra, ele não recebe uma cota do X-Ray. No entanto, se o reservatório for pelo menos 1, o serviço tomará emprestado um rastreamento por segundo até que o X-Ray atribua uma cota.

Para obter mais informações sobre as estatísticas de amostragem e como usar os serviços de regras de amostragem, consulte Usar regras de amostragem com a API do X-Ray.

Próximas etapas

Você pode usar a API do X-Ray para gerenciar as regras de amostragem. Com a API, você pode criar e atualizar regras de forma programática, em uma programação ou em resposta a alarmes ou notificações. Consulte Definir configurações de amostragem, grupos e criptografia com a API do AWS X-Ray para obter instruções e ver mais exemplos de regras.

O AWS Distro for OpenTelemetry, o X-Ray SDK Serviços da AWS também usa a API X-Ray para ler regras de amostragem, relatar resultados de amostragem e obter alvos de amostragem. Os serviços devem controlar a frequência com que eles aplicam cada regra, avaliam as regras com base na prioridade e tomam emprestado do reservatório quando uma solicitação corresponde a uma regra para a qual o X-Ray ainda não tiver atribuído uma cota de serviço. Para obter mais detalhes sobre como um serviço usa a API de amostragem, consulte Usar regras de amostragem com a API do X-Ray.

Quando o AWS Distro for OpenTelemetry ou o X-Ray SDK chamam a amostragem APIs, eles usam o CloudWatch agente como proxy. Se você já usa a porta TCP 2000, pode configurar o agente para executar o proxy em uma porta diferente. Consulte o guia de instalação do CloudWatch agente para obter detalhes.