AWS X-Ray SDK para .NET - 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 .NET

O X-Ray SDK for .NET é uma biblioteca para instrumentar aplicativos web C# .NET, aplicativos web.NET Core e funções do.NET Core em. AWS Lambda Ele fornece classes e métodos para gerar e enviar dados de rastreamento para o daemon do X-Ray. Isso inclui informações sobre solicitações recebidas pelo aplicativo e chamadas que o aplicativo faz para downstream Serviços da AWS, APIs HTTP web e bancos de dados SQL.

nota

O X-Ray SDK para .NET é um projeto de código aberto. Você pode acompanhar o projeto e enviar problemas e pull requests em GitHub: github.com/aws/ aws-xray-sdk-dotnet

Para aplicativos web, comece adicionando um manipulador de mensagens à sua configuração da web para rastrear solicitações de entrada. O manipulador de mensagens cria um segmento para cada solicitação rastreada e conclui o segmento quando a resposta é enviada. Embora o segmento esteja aberto, você pode usar os métodos do cliente do SDK para adicionar informações ao segmento e criar subsegmentos para rastrear as chamadas subsequentes. O SDK também registra automaticamente exceções que seu aplicativo lança 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 o SDK, você pode instrumentar o código da função para adicionar subsegmentos ao segmento de função registrado pelo Lambda. Consulte AWS Lambda e AWS X-Ray para obter mais informações.

Depois, use o X-Ray SDK para .NET para instrumentar clientes do AWS SDK for .NET. Sempre que você faz uma chamada para um downstream AWS service (Serviço da AWS) ou recurso com um cliente instrumentado, o SDK registra as informações sobre a chamada em um subsegmento. AWS os serviços 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 para .NET também fornece instrumentação para chamadas subsequentes para APIs HTTP da web e bancos de dados SQL. O método de extensão GetResponseTraced para System.Net.HttpWebRequest rastreia chamadas HTTP de saída. Você pode usar a versão SqlCommand do X-Ray SDK para .NET para instrumentar consultas SQL.

Depois que você começar a usar o SDK, personalize seu comportamento configurando o gravador e o manipulador de mensagens. Você pode adicionar plug-ins para registrar dados sobre os recursos de computação que executam sua aplicação, personalizar o comportamento de amostragem, estipulando regras de amostragem, e definir o nível de log para ver mais ou menos informações do SDK nos logs da aplicação.

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 matrizes e objetos inteiros: tudo o que pode ser serializado em 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 ou a API do X-Ray. Qualquer pessoa à qual você conceder acesso de leitura ao X-Ray poderá visualizar esses dados.

Quando você tem uma grande quantidade de clientes instrumentados no seu 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 documentação de referência sobre as classes e métodos do SDK, consulte o seguinte:

O mesmo pacote oferece suporte a .NET e .NET Core, mas as classes usadas variam. Os exemplos neste capítulo estão vinculados à referência da API do .NET, a menos que a classe seja específica para o .NET Core.

Requisitos

O X-Ray SDK para .NET requer o.NET Framework 4.5 ou posterior e. AWS SDK for .NET

Para aplicativos e funções do .NET Core, o SDK requer o .NET Core 2.0 ou uma versão posterior.

Adicionar o X-Ray SDK para .NET à aplicação

Use NuGet para adicionar o X-Ray SDK para.NET ao seu aplicativo.

Para instalar o X-Ray SDK para.NET NuGet com o gerenciador de pacotes no Visual Studio
  1. Escolha Tools, NuGet Package Manager, Manage NuGet Packages for Solution.

  2. Pesquise por AWSXRayRecorder.

  3. Escolha o pacote e, em seguida, escolha Install.

Gerenciar dependências

O X-Ray SDK para .NET está disponível no NuGet. Instale o SDK usando o gerenciador de pacotes:

Install-Package AWSXRayRecorder -Version 2.10.1

O pacote AWSXRayRecorder v2.10.1 do NuGet tem as seguintes dependências:

NET Framework 4.5

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|      
|-- AWSXRayRecorder.Handlers.AspNet (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- EntityFramework (>= 6.2.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)      
      

NET Framework 2.0

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|   |-- Microsoft.AspNetCore.Http (>= 2.0.0)
|   |-- Microsoft.Extensions.Configuration (>= 2.0.0)
|   |-- System.Net.Http (>= 4.3.4)
|      
|-- AWSXRayRecorder.Handlers.AspNetCore (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.AspNetCore.Http.Extensions (>= 2.0.0)
|   |-- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.0.0)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.EntityFrameworkCore.Relational (>= 3.1.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- System.Data.SqlClient (>= 4.4.0)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)
      

Para obter mais detalhes sobre o gerenciamento de dependências, consulte a documentação da Microsoft sobre a dependência do NuGet e a resolução de dependências do NuGet.