AWS X-Ray SDK para.NET - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS X-Ray SDK para.NET

El X-Ray SDK para .NET es una biblioteca para instrumentar aplicaciones web de C# .NET, aplicaciones web .NET Core y funciones de .NET Core. AWS Lambda Proporciona clases y métodos para generar y enviar datos de rastreo al daemon de X-Ray. Incluye información sobre las solicitudes entrantes atendidas por la aplicación y las llamadas que la aplicación realiza a bases de datos SQL Servicios de AWS, API web HTTP y aplicaciones descendentes.

Para las aplicaciones web, comience por añadir un controlador de mensajes a su configuración web para realizar el seguimiento de las solicitudes entrantes. El controlador de mensajes crea un segmento para cada solicitud rastreada y lo completa cuando se envía la respuesta. Mientras el segmento está abierto, puede utilizar los métodos del cliente del SDK para añadir información al segmento y crear subsegmentos para rastrear llamadas posteriores. El SDK también registra automáticamente las excepciones que produce su aplicación mientras el segmento está abierto.

En el caso de las funciones de Lambda llamadas por una aplicación o un servicio instrumentados, Lambda lee el encabezado de rastreo y rastrea automáticamente las solicitudes muestreadas. Para otras funciones, puede configurar Lambda con el fin de muestrear y rastrear las solicitudes entrantes. En cualquier caso, Lambda crea el segmento y se lo proporciona al SDK de X-Ray.

nota

En Lambda, el SDK de X-Ray es opcional. Si no lo usa en su función, el mapa de servicio seguirá incluyendo un nodo para el servicio de Lambda y uno para cada función de Lambda. Al añadir el SDK, puede instrumentar el código de función para añadir subsegmentos al segmento de función registrado por Lambda. Para obtener más información, consulte AWS Lambda y AWS X-Ray.

A continuación, use el SDK de X-Ray para .NET con el fin de instrumentar a sus clientes del AWS SDK for .NET. Cada vez que realizas una llamada a un canal intermedio Servicio de AWS o a un recurso con un cliente instrumentado, el SDK registra la información sobre la llamada en un subsegmento. AWS los servicios y los recursos a los que accedes dentro de los servicios aparecen como nodos descendentes en el mapa de rastreo para ayudarte a identificar los errores y los problemas de limitación en las conexiones individuales.

El SDK de X-Ray para .NET también permite la instrumentación de llamadas posteriores a API web HTTP y bases de datos SQL. El método de extensión GetResponseTraced para System.Net.HttpWebRequest rastrea llamadas HTTP salientes. Puede utilizar la versión de SqlCommand del SDK de X-Ray para .NET para instrumentar consultas SQL.

En cuanto empiece a utilizar el SDK, personalice su comportamiento configurando la grabadora y el controlador de mensajes. Puede añadir complementos para registrar los datos sobre los recursos informáticos que ejecutan su aplicación, personalizar el comportamiento de muestreo mediante la definición de reglas de muestreo y definir el nivel de log para ver más o menos información del SDK en los logs de las aplicaciones.

Registre información adicional acerca de las solicitudes y el trabajo que la aplicación realiza en anotaciones y metadatos. Las anotaciones son pares sencillos de clave-valor que se indexan para su uso con expresiones de filtro para poder buscar rastros que contengan datos específicos. Las entradas de metadatos son menos restrictivas y pueden registrar objetos y matrices completos, es decir, todo lo que se pueda serializar en JSON.

Anotaciones y metadatos

Las anotaciones y los metadatos son texto arbitrario que se agrega a los segmentos con el SDK de X-Ray. Las anotaciones se indexan para su uso con expresiones de filtro. Los metadatos no se indexan pero se pueden ver en el segmento sin procesar con la consola o la API de X-Ray. Cualquier persona a la que conceda acceso de lectura a X-Ray puede ver estos datos.

Cuando tenga muchos clientes instrumentados en su código, un único segmento de solicitud puede contener un gran número de subsegmentos, uno para cada llamada realizada con un cliente instrumentado. Puede organizar y agrupar los subsegmentos incluyendo las llamadas del cliente en subsegmentos personalizados. Puede crear un subsegmento personalizado para una función completa o para cualquier sección de código, y registrar los metadatos y las anotaciones en el subsegmento en lugar de escribirlo todo en el segmento principal.

Para acceder a documentos de referencia sobre las clases y los métodos de SDK, consulte lo siguiente:

El mismo paquete admite tanto .NET como .NET Core, pero las clases que se utilizan varían. Los ejemplos de este capítulo contienen un enlace a la referencia del API de .NET, a menos que la clase sea específica de .NET Core.

Requisitos

El X-Ray SDK para .NET requiere la versión 4.5 o posterior de.NET Framework y AWS SDK for .NET.

Para las aplicaciones y funciones de .NET Core, el SDK requiere .NET Core 2.0 o posterior.

Integración del SDK de X-Ray para .NET en su aplicación

NuGet Utilícelo para añadir el X-Ray SDK para .NET a su aplicación.

Para instalar el SDK de X-Ray para .NET con el administrador de NuGet paquetes de Visual Studio
  1. Elija Tools, NuGet Package Manager y Manage NuGet Packages for Solution.

  2. Busque la opción AWSXRayRecorder.

  3. Elija el paquete y, a continuación, haga clic en Install (Instalar).

Administración de dependencias

El SDK de X-Ray para .NET está disponible en Nuget. Instale el SDK con el administrador de paquetes.

Install-Package AWSXRayRecorder -Version 2.10.1

El paquete NuGet AWSXRayRecorder v2.10.1 tiene las siguientes dependencias:

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 obtener más información sobre la administración de dependencias, consulte la documentación de Microsoft sobre la dependencia de NuGet y la resolución de dependencias de paquetes NuGet.