Instrumente seu aplicativo para AWS X-Ray - 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á.

Instrumente seu aplicativo para AWS X-Ray

A instrumentação de uma aplicação requer o envio de dados de rastreamento para solicitações de entrada e saída e outros eventos dentro da aplicação, bem como metadados sobre cada solicitação. Há várias opções de instrumentação diferentes que você pode escolher ou combinar, com base em suas aplicações específicas:

  • Instrumentação automática: instrumente sua aplicação sem alterações no código, normalmente por meio de alterações de configuração, adição de um agente de instrumentação automática ou outros mecanismos.

  • Instrumentação de biblioteca — faça alterações mínimas no código do aplicativo para adicionar instrumentação pré-criada direcionada a bibliotecas ou estruturas específicas, como o AWS SDK, clientes Apache HTTP ou clientes SQL.

  • Instrumentação manual: adicione o código de instrumentação à aplicação em cada local para o qual você deseja enviar informações de rastreamento.

Há vários SDKs, agentes e ferramentas que podem ser usados para instrumentar a aplicação para rastreamento do X-Ray.

Instrumentando seu aplicativo com a AWS Distro para OpenTelemetry

A AWS Distro for OpenTelemetry (ADOT) é uma AWS distribuição baseada no projeto Cloud Native Computing Foundation (CNCF). OpenTelemetry OpenTelemetry fornece um único conjunto de APIs, bibliotecas e agentes de código aberto para coletar rastreamentos e métricas distribuídos. Esse kit de ferramentas é uma distribuição de OpenTelemetry componentes upstream, incluindo SDKs, agentes de instrumentação automática e coletores que são testados, otimizados, protegidos e suportados pela. AWS

Com o ADOT, os engenheiros podem instrumentar seus aplicativos uma vez e enviar métricas e rastreamentos correlacionados para várias soluções de AWS monitoramento CloudWatch AWS X-Ray, incluindo Amazon e Amazon OpenSearch Service.

O uso do X-Ray com o ADOT requer dois componentes: um OpenTelemetry SDK habilitado para uso com o X-Ray e o AWS Distro for OpenTelemetry Collector habilitado para uso com o X-Ray. Para obter mais informações sobre como usar a AWS Distro for OpenTelemetry with AWS X-Ray e other Serviços da AWS, consulte a AWS Distro for OpenTelemetry Documentation.

Para obter mais informações sobre suporte e uso de idiomas, consulte AWS Observabilidade ativada GitHub.

nota

Agora você pode usar o CloudWatch agente para coletar métricas, registros e rastreamentos de instâncias do Amazon EC2 e servidores locais. CloudWatch O agente versão 1.300025.0 e posterior pode coletar traços de nossos SDKs do cliente OpenTelemetryX-Ray e enviá-los para o X-Ray. Usar o CloudWatch agente em vez do AWS Distro for OpenTelemetry (ADOT) Collector ou do daemon X-Ray para coletar traços pode ajudar a reduzir o número de agentes que você gerencia. Consulte o tópico do CloudWatch agente no Guia do CloudWatch usuário para obter mais informações.

A tabela inclui o seguinte:

No momento, o ADOT comporta instrumentação automática para Java e Python. Além disso, o ADOT permite a instrumentação automática das funções do AWS Lambda e suas solicitações downstream usando tempos de execução de Java, Node.js e Python, por meio do ADOT Managed Lambda Layers.

Os SDKs do ADOT para Java e Go comportam regras de amostragem centralizada do X-Ray. Se você precisar de suporte para as regras de amostragem do X-Ray em outros idiomas, considere usar um AWS X-Ray SDK.

nota

Agora você pode enviar IDs de rastreamento do W3C para o X-Ray. Por padrão, os rastreamentos criados com OpenTelemetry têm um formato de ID de rastreamento baseado na especificação do W3C Trace Context. Isso é diferente do formato dos IDs de rastreamento criados usando um X-Ray SDK ou por AWS serviços integrados ao X-Ray. Para garantir que os IDs de rastreamento no formato W3C sejam aceitos pelo X-Ray, você deve usar o AWS X-Ray Exporter versão 0.86.0 ou posterior, que está incluído no ADOT Collector versão 0.34.0 e posterior. As versões anteriores do exportador validam os registros de data e hora do ID de rastreamento, o que pode fazer com que os IDs de rastreamento do W3C sejam rejeitados.

Instrumentar uma aplicação com SDKs da AWS X-Ray

AWS X-Ray inclui um conjunto de SDKs específicos de linguagem para instrumentar seu aplicativo para enviar rastreamentos ao X-Ray. Cada X-Ray SDK fornece o seguinte:

  • Interceptadores a serem adicionados ao código para rastrear solicitações HTTP recebidas

  • Manipuladores de clientes para AWS instrumentar clientes SDK que seu aplicativo usa para chamar outros Serviços da AWS

  • Um cliente HTTP para instrumentar chamadas para outros serviços da web HTTP internos e externos

Os X-Ray SDKs também oferecem suporte a chamadas de instrumentação para bancos de dados SQL, instrumentação automática de clientes AWS SDK e outros recursos. Em vez de enviar dados de rastreamento diretamente ao X-Ray, os SDK enviam documentos de segmentos JSON a um processo do daemon que escuta o tráfego UDP. O daemon do X-Ray armazena os segmentos em buffer em uma fila e os carrega em lote no X-Ray.

Os seguintes SDKs específicos à linguagem são fornecidos:

No momento, o X-Ray comporta instrumentação automática para Java.

Escolhendo entre os AWS SDKs Distro for OpenTelemetry e X-Ray

Os SDKs incluídos com o X-Ray fazem parte de uma solução de instrumentação totalmente integrada que é oferecida pela AWS. O AWS Distro OpenTelemetry for faz parte de uma solução mais ampla do setor, na qual o X-Ray é apenas uma das muitas soluções de rastreamento. Você pode implementar o end-to-end rastreamento no X-Ray usando qualquer uma das abordagens, mas é importante entender as diferenças para determinar a abordagem mais útil para você.

Recomendamos instrumentar seu aplicativo com a AWS Distro OpenTelemetry se você precisar do seguinte:

  • A capacidade de enviar rastreamentos para vários back-ends de rastreamento diferentes sem precisar reinstrumentar seu código

  • Support para um grande número de instrumentações de biblioteca para cada idioma, mantidas pela comunidade OpenTelemetry

  • Camadas do Lambda totalmente gerenciadas que empacotam tudo o que você precisa para coletar dados de telemetria, sem exigir alterações de código ao usar Java, Python ou Node.js.

    nota

    AWS O Distro for OpenTelemetry oferece uma experiência inicial mais simples para instrumentar suas funções do Lambda. No entanto, devido às OpenTelemetry ofertas de flexibilidade, sua função Lambda exigirá memória adicional e as invocações podem sofrer aumentos de latência de inicialização a frio, o que pode levar a cobranças adicionais. Se você está otimizando para baixa latência e não precisa de recursos avançados, como destinos OpenTelemetry de back-end configuráveis dinamicamente, convém usar o AWS X-Ray SDK para instrumentar seu aplicativo.

Recomendamos escolher um X-Ray SDK para instrumentar a aplicação se você precisar do seguinte:

  • Uma solução totalmente integrada de um único fornecedor.

  • Integração com as regras de amostragem centralizada do X-Ray, incluindo a capacidade de configurar regras de amostragem por meio do console do X-Ray e usá-las automaticamente em vários hosts, ao utilizar Node.js, Python, Ruby ou .NET