AWS X-Ray SDK para Node.js - 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á.

AWS X-Ray SDK para Node.js

O X-Ray SDK for Node.js é uma biblioteca para aplicativos Web Express e funções Lambda do Node.js que fornece classes e métodos para gerar e enviar dados de rastreamento para o daemon X-Ray. Os dados de rastreamento incluem informações sobre HTTP solicitações recebidas pelo aplicativo e chamadas que o aplicativo faz para serviços downstream usando os clientes AWS SDK ouHTTP.

nota

O X-Ray SDK for Node.js é um projeto de código aberto compatível com as versões 14.x e superiores do Node.js. Você pode acompanhar o projeto e enviar problemas e pull requests em GitHub: github.com/aws/ aws-xray-sdk-node

Se você usa o Express, comece adicionando o middleware SDK as em seu servidor de aplicativos para rastrear as solicitações recebidas. O middleware cria um segmento para cada solicitação rastreada e conclui o segmento quando a resposta é enviada. Enquanto o segmento está aberto, você pode usar os métodos do SDK cliente para adicionar informações ao segmento e criar subsegmentos para rastrear chamadas posteriores. Ele SDK também registra automaticamente as exceções que seu aplicativo gera enquanto o segmento está aberto.

Para funções do Lambda chamadas por uma aplicação ou um serviço instrumentado, o Lambda lê o cabeçalho de rastreamento e rastreia automaticamente as solicitações amostradas. Para outras funções, você pode configurar o Lambda para amostrar e rastrear solicitações recebidas. Em ambos os casos, o Lambda cria o segmento e o fornece ao X-Ray. SDK

nota

No Lambda, o X-Ray SDK é opcional. Se você não o usar em sua função, mesmo assim o mapa de serviço incluirá um nó para o serviço Lambda e um para cada função do Lambda. Ao adicionar oSDK, você pode instrumentar seu código de função para adicionar subsegmentos ao segmento de função registrado pelo Lambda. Consulte AWS Lambda e AWS X-Ray Para mais informações.

Em seguida, use o X-Ray SDK for Node.js para instrumentar seu AWS SDK JavaScript formulário em clientes Node.js. Sempre que você faz uma chamada para um downstream AWS service (Serviço da AWS) ou recurso com um cliente instrumentado, ele SDK registra as informações sobre a chamada em um subsegmento. Serviços da AWS e os recursos que você acessa nos serviços aparecem como nós downstream no mapa de rastreamento para ajudá-lo a identificar erros e problemas de limitação em conexões individuais.

O X-Ray SDK for Node.js também fornece instrumentação para chamadas downstream para a HTTP web APIs e consultas. SQL Inclua seu HTTP cliente no método SDK de captura para registrar informações sobre HTTP chamadas de saída. Para SQL clientes, use o método de captura para seu tipo de banco de dados.

O middleware aplica regras de amostragem a solicitações recebidas para determinar quais solicitações devem ser rastreadas. Você pode configurar o X-Ray SDK for Node.js para ajustar o comportamento de amostragem ou registrar informações sobre os recursos AWS computacionais nos quais seu aplicativo é executado.

Registre informações adicionais sobre as solicitações e o trabalho que o a aplicação faz em anotações e metadados. Anotações são simples pares de chave-valor que são indexados para serem usados com expressões de filtro para que você possa pesquisar rastreamentos que contêm dados específicos. As entradas de metadados são menos restritivas e podem registrar objetos e matrizes inteiros — qualquer coisa que possa ser serializada. JSON

Anotações e metadados

Anotações e metadados são textos arbitrários que você adiciona aos segmentos com o X-Ray. SDK As anotações são indexadas para serem usadas com expressões de filtro. Os metadados não são indexados, mas podem ser visualizados no segmento bruto com o console X-Ray ou. API Qualquer pessoa à qual você conceder acesso de leitura ao X-Ray poderá visualizar esses dados.

Quando há uma grande quantidade de clientes instrumentados no código, um único segmento de solicitação pode conter um grande número de subsegmentos, um para cada chamada feita com um cliente instrumentado. Você pode organizar e agrupar subsegmentos integrando chamadas de clientes em subsegmentos personalizados. Você pode criar um subsegmento personalizado para uma função inteira ou qualquer seção de código e registrar metadados e anotações no subsegmento em vez de gravar tudo no segmento principal.

Para obter a documentação SDK de referência sobre as classes e os métodos do, consulte AWS X-Ray SDKa API Referência do Node.js.

Requisitos

O X-Ray SDK for Node.js requer Node.js e as seguintes bibliotecas:

  • atomic-batcher: 1.0.2

  • cls-hooked: 4.2.2

  • pkginfo: 0.4.0

  • semver: 5.3.0

Ele SDK extrai essas bibliotecas quando você as instala comNPM.

Para rastrear AWS SDK clientes, o X-Ray SDK for Node.js requer uma versão mínima do AWS SDK for JavaScript em Node.js.

  • aws-sdk: 2.7.15

Gerenciar dependências

O X-Ray SDK for Node.js está disponível emNPM.

Para desenvolvimento local, instale o SDK no diretório do seu projeto com o npm.

~/nodejs-xray$ npm install aws-xray-sdk aws-xray-sdk@3.3.3 ├─┬ aws-xray-sdk-core@3.3.3 │ ├── @aws-sdk/service-error-classification@3.15.0 │ ├── @aws-sdk/types@3.15.0 │ ├─┬ @types/cls-hooked@4.3.3 │ │ └── @types/node@15.3.0 │ ├── atomic-batcher@1.0.2 │ ├─┬ cls-hooked@4.2.2 │ │ ├─┬ async-hook-jl@1.7.6 │ │ │ └── stack-chain@1.3.7 │ │ └─┬ emitter-listener@1.1.2 │ │ └── shimmer@1.2.1 │ └── semver@5.7.1 ├── aws-xray-sdk-express@3.3.3 ├── aws-xray-sdk-mysql@3.3.3 └── aws-xray-sdk-postgres@3.3.3

Use a --save opção de salvar o SDK como uma dependência no aplicativo. package.json

~/nodejs-xray$ npm install aws-xray-sdk --save aws-xray-sdk@3.3.3

Se seu aplicativo tiver alguma dependência cujas versões entrem em conflito com as dependências SDK do X-Ray, ambas as versões serão instaladas para garantir a compatibilidade. Para obter mais detalhes, consulte a NPMdocumentação oficial para resolução de dependências.

Amostras de Node.js

Trabalhe com o AWS X-Ray SDK for Node.js para ter uma end-to-end visão das solicitações à medida que elas percorrem seus aplicativos Node.js.