Instrumentando 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á.

Instrumentando 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 clientes ou clientes Apache. AWS SDK HTTP 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.

Existem vários SDKs agentes e ferramentas que podem ser usados para instrumentar seu aplicativo para rastreamento de raios-X.

Instrumentando seu aplicativo com a AWS Distro para OpenTelemetry

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

Com ADOT isso, 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 ADOT requer dois componentes: um OpenTelemetry SDKhabilitado para uso com X-Ray e o AWS Distro for OpenTelemetry Collector habilitado para uso com 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 EC2 instâncias da Amazon e servidores locais. CloudWatch O agente versão 1.300025.0 e posterior pode coletar traços de nosso cliente OpenTelemetryX-Ray e enviá-los para o SDKsX-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.

ADOTinclui o seguinte:

ADOTatualmente inclui suporte à instrumentação automática para Java e Python. Além disso, 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 de camadas gerenciadas do Lambda. ADOT

ADOTSDKspara Java e Go oferecem suporte às 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

Você pode enviar agora o rastreamento W3C para o IDs 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 de rastreamento IDs criado usando um X-Ray SDK ou por AWS serviços integrados ao X-Ray. Para garantir que o rastreamento IDs no formato W3C seja aceito pelo X-Ray, você deve usar a versão 0.86.0 ou posterior do AWS X-Ray Exporter, incluída na versão 0.34.0 e posterior do Collector. ADOT As versões anteriores do exportador validam os timestamps de ID de rastreamento, o que pode fazer com que o rastreamento W3C seja rejeitado. IDs

Instrumentando seu aplicativo com AWS X-Ray SDKs

AWS X-Ray inclui um conjunto de linguagens específicas SDKs para instrumentar seu aplicativo a fim de enviar rastreamentos para o X-Ray. Cada X-Ray SDK fornece o seguinte:

  • Interceptores para adicionar ao seu código para rastrear solicitações recebidas HTTP

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

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

O X-Ray SDKs também suporta chamadas de instrumentação para SQL bancos de dados, instrumentação automática de AWS SDK clientes e outros recursos. Em vez de enviar dados de rastreamento diretamente para o X-Ray, SDK ele envia documentos do JSON segmento para um processo 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.

São fornecidos os seguintes idiomas específicosSDKs:

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

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

Os SDKs incluídos no X-Ray são parte de uma solução de instrumentação altamente integrada 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 SDK X-Ray para instrumentar seu aplicativo.

Recomendamos escolher um X-Ray SDK para instrumentar sua 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 a partir do console X-Ray e usá-las automaticamente em vários hosts, ao usar Node.js, Python, Ruby ou. NET