Instrumentación disponible

Librerías compatibles con la instrumentación automática de OpenTelemetry .NET.

La instrumentación automática de OpenTelemetry .NET es compatible con una amplia variedad de librerías.

Instrumentación

Todas las instrumentaciones están habilitadas de forma predeterminada para todos los tipos de señales (trazas, métricas y logs).

Para desactivar todas las instrumentaciones para un tipo de señal específico estableciendo la variable de entorno OTEL_DOTNET_AUTO_{SIGNAL}_INSTRUMENTATION_ENABLED en false.

Para un enfoque más detallado, puedes desactivar instrumentaciones específicas para un tipo de señal determinado estableciendo la variable de entorno OTEL_DOTNET_AUTO_{SIGNAL}_{0}_INSTRUMENTATION_ENABLED en false, donde {SIGNAL} es el tipo de señal, por ejemplo, TRACES, y {0} es el nombre de la instrumentación, que distingue entre mayúsculas y minúsculas.

Variable de entornoDescripciónValor predeterminadoEstado
OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDHabilita todas las instrumentaciones.trueExperimental
OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLEDHabilita todas las instrumentaciones de trazas. Sobrescribe OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Heredado del valor actual de OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDExperimental
OTEL_DOTNET_AUTO_TRACES_{0}_INSTRUMENTATION_ENABLEDPatrón de configuración para habilitar una instrumentación de traza específica, donde {0} es el ID en mayúsculas de la instrumentación que desea habilitar. Sobrescribe OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED.Heredado del valor actual de OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLEDExperimental
OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLEDDesactiva todas las instrumentaciones de métricas. Sobrescribe OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Heredado del valor actual de OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDExperimental
OTEL_DOTNET_AUTO_METRICS_{0}_INSTRUMENTATION_ENABLEDPatrón de configuración para habilitar una instrumentación métrica específica, donde {0} es el ID en mayúsculas de la instrumentación que desea habilitar. Sobrescribe OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED.Heredado del valor actual de OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED.Experimental
OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLEDDesactiva todas las instrumentaciones de logs. Sobrescribe OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Heredado del valor actual de OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDExperimental
OTEL_DOTNET_AUTO_LOGS_{0}_INSTRUMENTATION_ENABLEDPatrón de configuración para habilitar una instrumentación de logs específica, donde {0} es el ID en mayúsculas de la instrumentación que desea habilitar. Sobrescribe OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED.Inherited from the current value of OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLEDExperimental

Instrumentación de Trazas

Estado: Mixto. Las trazas son estables, pero algunas librerías de instrumentación están en estado Experimental debido a la falta de una convención semántica estable.

IDLibrería instrumentadaVersiones compatiblesTipo de instrumentaciónEstado
ASPNETASP.NET (.NET Framework) MVC / WebApi [1] No compatible con .NET* [2]código fuente y bytecodeExperimental
ASPNETCOREASP.NET Core No compatible con .NET Framework*código fuenteExperimental
AZUREAzure SDK[3]código fuenteExperimental
ELASTICSEARCHElastic.Clients.Elasticsearch* [4]código fuenteExperimental
ELASTICTRANSPORTElastic.Transport≥0.4.16código fuenteExperimental
ENTITYFRAMEWORKCOREMicrosoft.EntityFrameworkCore No compatible con .NET Framework≥6.0.12código fuenteExperimental
GRAPHQLGraphQL No compatible con .NET Framework≥7.5.0código fuenteExperimental
GRPCNETCLIENTGrpc.Net.Client≥2.52.0 & < 3.0.0código fuenteExperimental
HTTPCLIENTSystem.Net.Http.HttpClient y System.Net.HttpWebRequest*código fuenteExperimental
KAFKAConfluent.Kafka≥1.4.0 & < 3.0.0 [5]bytecodeExperimental
MASSTRANSITMassTransit No compatible con .NET Framework≥8.0.0código fuenteExperimental
MONGODBMongoDB.Driver.Core / MongoDB.Driver≥2.7.0 < 4.0.0bytecodeExperimental
MYSQLCONNECTORMySqlConnector≥2.0.0código fuenteExperimental
MYSQLDATAMySql.Data No compatible con .NET Framework≥8.1.0código fuenteExperimental
NPGSQLNpgsql≥6.0.0código fuenteExperimental
NSERVICEBUSNServiceBus≥8.0.0 & < 10.0.0código fuente y bytecodeExperimental
ORACLEMDAOracle.ManagedDataAccess.Core y Oracle.ManagedDataAccess No compatible con ARM64≥23.4.0código fuenteExperimental
RABBITMQRabbitMQ.Client≥6.0.0código fuente o bytecode [6]Experimental
QUARTZQuartz No compatible con .NET Framework 4.7.1 y versiones anteriores≥3.4.0código fuenteExperimental
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [7] y System.Data (incluido en .NET Framework)* [8]código fuenteExperimental
STACKEXCHANGEREDISStackExchange.Redis No compatible con .NET Framework≥2.6.122 & < 3.0.0código fuente y bytecodeExperimental
WCFCLIENTWCF*código fuente y bytecodeExperimental
WCFSERVICEWCF No compatible con .NET.*código fuente y bytecodeExperimental

[1]: Solo está soportado el modo de canalización integrada.

[2]: ASP.NET (.NET Framework) MVC / WebApi no es compatible con ARM64.

[3]: Paquetes con prefijo Azure publicados después del 1 de octubre de 2021.

[4]: Elastic.Clients.Elasticsearch versión ≥8.0.0 y <8.10.0. La versión ≥8.10.0 es compatible con la instrumentación de Elastic.Transport.

[5]: Confluent.Kafka es compatible con la versión ≥1.8.2 en ARM64.

[6]: RabbitMq.Client necesita instrumentación de bytecode solo para versiones 6.. Las versiones 7.0.0+ utilizan únicamente instrumentación de código fuente.

[7]: System.Data.SqlClient está en desuso.

[8]: Microsoft.Data.SqlClient v3.* no es compatible con .NET Framework, debido al error. System.Data.SqlClient es compatible desde la versión 4.8.5.

Instrumentación de métricas

Estado: Mixto. Las métricas son estables, pero algunas instrumentaciones están en estado Experimental debido a la falta de una convención semántica estable.

IDLibrería instrumentadaDocumentaciónVersiones compatiblesTipo de instrumentaciónEstado
ASPNETASP.NET Framework [1] No compatible con .NETMétricas de ASP.NET*código fuente y bytecodeExperimental
ASPNETCOREASP.NET Core No compatible con .NET FrameworkMétricas de ASP.NET Core*código fuenteExperimental
HTTPCLIENTSystem.Net.Http.HttpClient y System.Net.HttpWebRequestMétricas de HttpClient*código fuenteExperimental
NETRUNTIMEOpenTelemetry.Instrumentation.RuntimeMétricas de Runtime*código fuenteExperimental
NPGSQLNpgsql No compatible con .NET FrameworkMétricas de Npgsql≥6.0.0código fuenteExperimental
NSERVICEBUSNServiceBusMétricas de NServiceBus≥8.0.0 & < 10.0.0código fuente y bytecodeExperimental
PROCESSOpenTelemetry.Instrumentation.ProcessMétricas de Process*código fuenteExperimental
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [2] y System.Data (incluido en .NET Framework)Métricas de SqlClient* [3]código fuenteExperimental

[1]: Las métricas de ASP.NET se generan solo si la instrumentación de trazas AspNet también está habilitada.

[2]: System.Data.SqlClient está en desuso.

[3]: Microsoft.Data.SqlClient v3.* no es compatible con .NET Framework, debido al error. System.Data.SqlClient es compatible desde la versión 4.8.5.

Instrumentación de logs

Estado: Experimental.

IDLibrería instrumentadaVersiones compatiblesTipo de instrumentaciónEstado
ILOGGERMicrosoft.Extensions.Logging No compatible con .NET Framework≥9.0.0bytecode or código fuente [1]Experimental
LOG4NETlog4net≥2.0.13 && < 4.0.0bytecodeExperimental

[1]: Para aplicaciones ASP.NET Core, la instrumentación LoggingBuilder puede habilitarse sin usar el Profiler CLR de .NET mediante la configuración de la variable de entorno ASPNETCORE_HOSTINGSTARTUPASSEMBLIES como OpenTelemetry.AutoInstrumentation.AspNetCoreBootstrapper.

Opciones de instrumentación

Variable de entornoDescripciónValor predeterminadoEstado
OTEL_DOTNET_AUTO_ENTITYFRAMEWORKCORE_SET_DBSTATEMENT_FOR_TEXTDefine si la instrumentación de Entity Framework Core puede transmitir sentencias SQL a través del atributo db.statement. Las consultas pueden contener información sensible. Si se establece en false, db.statement solo se registra para la ejecución de procedimientos almacenados.falseExperimental
OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENTDefine si la instrumentación de GraphQL puede transmitir consultas sin procesar a través del atributo graphql.document. Las consultas pueden contener información sensible.falseExperimental
OTEL_DOTNET_AUTO_ORACLEMDA_SET_DBSTATEMENT_FOR_TEXTDefine si la instrumentación del Cliente Oracle puede transmitir sentencias SQL a través del atributo db.statement. Las consultas pueden contener información sensible. Si se establece en false, db.statement solo se registra para la ejecución de procedimientos almacenados.falseExperimental
OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXTDefine si la instrumentación de SQL Client puede transmitir sentencias SQL a través del atributo db.statement. Las consultas pueden contener información sensible. Si se establece en false, db.statement solo se registra para la ejecución de procedimientos almacenados. No compatible con System.Data.SqlClient en .NET Framework.falseExperimental
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de ASP.NET capturarán los valores de las cabeceras HTTP de las solicitudes para todos los nombres de cabeceras configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de ASP.NET capturarán los valores de las cabeceras HTTP de las respuestas para todos los nombres de cabeceras configurados. No compatible con el modo clásico de IISExperimental
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de ASP.NET Core capturarán los valores de las cabeceras HTTP de las respuestas para todos los nombres de cabeceras configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de ASP.NET Core capturarán los valores de las cabeceras HTTP de las respuestas para todos los nombres de cabeceras configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_REQUEST_METADATAUna lista de nombres de metadatos gRPC separados por comas. Las instrumentaciones de Grpc.Net.Client capturarán los valores de los metadatos de solicitud gRPC para todos los nombres de metadatos configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_RESPONSE_METADATAUna lista de nombres de metadatos gRPC separados por comas. Las instrumentaciones de Grpc.Net.Client capturarán los valores de los metadatos de respuesta gRPC para todos los nombres de metadatos configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de Cliente HTTP capturarán los valores de las cabeceras HTTP de las solicitudes para todos los nombres de cabeceras configurados.Experimental
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSUna lista de nombres de cabeceras HTTP separados por comas. Las instrumentaciones de Cliente HTTP capturarán los valores de las cabeceras HTTP de las respuestas para todos los nombres de cabeceras configurados.Experimental
OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTIONDefine si la instrumentación de ASP.NET Core desactiva la redacción del valor del atributo url.query.falseExperimental
OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTIONDefine si la instrumentación del Cliente HTTP desactiva la redacción del valor del atributo url.full.falseExperimental
OTEL_DOTNET_EXPERIMENTAL_ASPNET_DISABLE_URL_QUERY_REDACTIONDefine si la instrumentación de ASP.NET desactiva la redacción del valor del atributo url.query.falseExperimental