El rastreador Datadog. NET es compatible con todos los lenguajes basados en .NET (por ejemplo, C#, F#, Visual Basic). Tiene compatibilidad en fase beta para aplicaciones recortadas.

El rastreador .NET es de código abierto. Para más información, consulta el repositorio del rastreador .NET.

Tiempos de ejecución de .NET y .NET Core compatibles

El rastreador .NET es compatible con la instrumentación automática en las siguientes versiones de .NET y .NET Core. También es compatible con .NET Framework.

Versión .NETFin del soporte de MicrosoftNivel de compatibilidadVersión del paquete
.NET 8Disponible para el público en generalMás reciente (>= 2.42.0)
.NET 705/14/2024Disponible para el público en generalMás reciente (>= 2.20.0)
.NET 6Disponible para el público en generalMás reciente (>= 2.0.0)
.NET 505/10/2022Disponible para el público en generalMás reciente (>= 2.0.0)
.NET Core 3.112/13/2022Disponible para el público en generalÚltima versión
.NET Core 2.108/21/2021Disponible para el público en generalÚltima versión
.NET Core 3.003/03/2020Fin del soporte (EOL)No recomendado
.NET Core 2.212/23/2019Fin del soporte (EOL)No recomendado
.NET Core 2.010/01/2018Fin del soporte (EOL)No recomendado

Puedes encontrar información adicional en la política de ciclo de vida de .NET y .NET Core de Microsoft, versiones de tiempo de ejecución del fin de soporte de .NET y política de compatibilidad del tiempo de ejecución de .NET.

Arquitecturas de procesador compatibles

El rastreador de .NET es compatible con la instrumentación automática en las siguientes arquitecturas:

Arquitecturas de procesadoresNivel de compatibilidadVersión del paquete
Windows x86 (win-x86)Disponible para el público en generalÚltima versión
Windows x64 (win-x64)Disponible para el público en generalÚltima versión
Linux x64 (linux-x64)Disponible para el público en generalÚltima versión
Alpine Linux x64 (linux-musl-x64)Disponible para el público en generalÚltima versión
Linux ARM64 (linux-arm64)Disponible para el público en general.NET 5+ solamente, añadido en la versión 1.27.0

Integraciones

La última versión del rastreador .NET puede instrumentar automáticamente las siguientes bibliotecas:

Marco o bibliotecaPaquete NuGetNombre de la integración
ADO.NETTodas las integraciones de AdoNetAdoNet
AerospikeAerospike.Client 4.0.0+Aerospike
ASP.NET CoreMicrosoft.AspNetCore
Microsoft.AspNetCore.App
2.0+ y 3.0+
AspNetCore
Funciones de AzureMicrosoft.Azure.Webjobs 3.0+AzureFunctions
Amazon DynamoDBAWSSDK.DynamoDBv2 3.0+AwsDynamoDb
Amazon KinesisAWSSDK.Kinesis 3.0+AwsKinesis
Amazon SNSAWSSDK.SNS 3.0+AwsSns
Amazon SQSAWSSDK.SQS 3.0+AwsSqs
CosmosDbMicrosoft.Azure.Cosmos 3.6.0+CosmosDb
CouchbaseCouchbaseNetClient 2.2.8+Couchbase
ElasticsearchElasticsearch.Net 5.3.0+ElasticsearchNet
GraphQL .NETGraphQL 2.3.0+GraphQL
gRPCGrpc.Net.Client2.30.0+ (solo .NET Core 3.0+)
Grpc.Core 2.30.0+
Grpc.AspNetCore 2.30.0+
Grpc
HotChocolateHotChocolate 11.0.0+HotChocolate
HttpClient/HttpMessageHandlerSystem.Net.Http 4.0+HttpMessageHandler
KafkaConfluent.Kafka 1.4+Kafka
IBM MQamqmdnetstd 9.0.0+IbmMq
MongoDBMongoDB.Driver.Core 2.1.0+MongoDb
MySqlMySql.Data 6.7.0+
MySqlConnector 0.61.0+
MySql
OracleOracle.ManagedDataAccess 4.122.0+Oracle
PostgreSQLNpgsql 4.0+Npgsql
Process"System.Diagnostics.Process" 4.0+Process
RabbitMQRabbitMQ.Client 3.6.9+ .RabbitMQ
Redis (cliente de ServiceStack)ServiceStack.Redis 4.0.48+ServiceStackRedis
Redis (cliente de StackExchange)StackExchange.Redis 1.0.187+StackExchangeRedis
Service Fabric RemotingMicrosoft.ServiceFabric.Services.Remoting 4.0.470+ServiceRemoting
SQLiteSystem.Data.Sqlite 2.0.0+
Microsoft.Data.Sqlite 1.0.0+
Sqlite
SQL ServerSystem.Data 4.0.0+
System.Data.SqlClient 4.0.0+
Microsoft.Data.SqlClient 1.0.0+
SqlClient
WebClient/WebRequestSystem.Net.Requests 4.0+WebRequest

¿No ves la biblioteca que buscas? En primer lugar, comprueba si la biblioteca produce datos de observabilidad compatibles con OpenTelemetry (por ejemplo, rastreo basado en actividad). Si no es así, Datadog añade continuamente compatibilidad adicional. Consulta al equipo de Datadog para obtener ayuda.

Integraciones basadas en OpenTelemetry

Algunas bibliotecas proporcionan Rastreo basado en actividad. Este es el mismo mecanismo en el que se basa el proyecto de OpenTelemetry. Al establecer DD_TRACE_OTEL_ENABLED en true, el rastreador .NET resurgirá automáticamente trazas proporcionadas por las mismas bibliotecas. Esto es posible desde la versión 2.21.0. Aquí encontrarás una lista de bibliotecas que se prueban con esta configuración (más bibliotecas proporcionan este tipo de rastreo, aunque todavía no se han probado explícitamente).

Marco o bibliotecaPaquete NuGetNombre de la integraciónInstrucciones específicas
Azure Service BusAzure.Messaging.ServiceBus 7.14.0+AzureServiceBusConsulta la sección Azure SDK

SDK de Azure

El SDK de Azure proporciona soporte integrado para OpenTelemetry. Actívalo al establecer la variable de entorno AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE en true o al establecer el conmutador de contexto Azure.Experimental.EnableActivitySource en true en el código de tu aplicación. Consulta la documentación del SDK de Azure para obtener más detalles.

Fin de soporte de las versiones de ejecución de .NET

El rastreador .NET funciona en .NET Core 2.0, 2.1, 2.2, 3.0 y 3.1, y en .NET 5 y 7, pero estas versiones llegaron al final de soporte y ya no son compatibles con Microsoft. Para más información, consulta la política de compatibilidad de Microsoft. Datadog recomienda utilizar la última versión de parches de .NET 6 o .NET 8. Las versiones más antiguas de .NET y .NET Core pueden encontrarse con los siguientes problemas de tiempo de ejecución al activar la instrumentación automática:

ProblemaVersiones .NET afectadasSoluciónMás información
Error del compilador JIT en Linux/x642.0.x,
2.1.0-2.1.11,
2.2.0-2.2.5
Actualiza .NET Core a la última versión del parche, o sigue los pasos indicados en el tema enlazadoDataDog/dd-trace-dotnet/issues/302
Error en la búsqueda de recursos con una configuración regional distinta de en-US2.0.0Actualiza .NET Core a 2.0.3 o posteriordotnet/runtime/issues/23938
Error en el compilador JIT que provoca un bloqueo al apagarse2.0.0-2.2.xActualiza .NET Core a 3.1.0 o posteriordotnet/runtime/pull/11885
Error en el compilador JIT2.x, 3.x, 5.x, 6.x, 7.x, 8.0.0-8.0.5Actualiza .NET a 8.0.6 o posteriordotnet/runtime/pull/73760
Error en el compilador JITTodas las versiones de .NETNo hay solucióndotnet/runtime/issues/85777
Error de tiempo de ejecución de .NET que causa bloqueos cuando se utiliza con métricas de tiempo de ejecución6.0.0-6.0.10Actualiza a .NET 6.0.11 o posterior, o desactiva las métricas de tiempo de ejecucióndotnet/runtime/pull/76431

Versiones compatibles del Datadog Agent

Versión del Datadog AgentVersión del paquete
7.xÚltima versión
6.xÚltima versión
5.xÚltima versión

Política de compatibilidad del tiempo de ejecución de .NET

El rastreador .NET depende del sistema operativo del host, del tiempo de ejecución de .NET, de determinadas bibliotecas de .NET, y del Datadog Agent/API. Estos sistemas de software de terceros son compatibles con versiones específicas de .NET y .NET Core. Cuando el software externo deja de ser compatible con una versión de .NET, el rastreador .NET también limita su compatibilidad con esa versión.

Niveles de compatibilidad

NivelCompatibilidad dada
No compatible</tramo (span)>Sin implementación. Para solicitudes especiales, contacta con el servicio de atención al cliente.
Fase betaImplementación inicial. Puede que aún no contenga todas las funciones. La compatibilidad de nuevas funciones y correcciones de errores y de seguridad se proporciona en la medida de lo posible.
Disponible para el público en general (GA)Implementación completa de todas las funciones. Compatibilidad completa para nuevas funciones, correcciones de errores y seguridad.
MantenimientoImplementación completa de las funciones existentes. No recibe nuevas funciones. Compatible solo con las correcciones de errores y seguridad.
Fin del soporte (EOL)Sin compatibilidad.

Versionado del paquete

El rastreador .NET practica el versionado semántico. Las actualizaciones de versión implican los siguientes cambios en la compatibilidad del tiempo de ejecución:

  • Las actualizaciones de versiones principales (por ejemplo, de 1.0.0 a 2.0.0) pueden cambiar la compatibilidad para cualquier tiempo de ejecución de Fase beta/Disponible para el público en general a Mantenimiento/Fin del soporte.
  • Las actualizaciones de versiones secundarias (por ejemplo, de 1.0.0 a 1.1.0) no reducirán el nivel de compatibilidad con un tiempo de ejecución, pero pueden añadir compatibilidad con otros.
  • Las actualizaciones de la versión del parche (por ejemplo, de 1.0.0 a 1.0.1) no modificarán la compatibilidad con ningún tiempo de ejecución.

Leer más