Available instrumentations
You are viewing the English version of this page because it has not yet been fully translated. Interested in helping out? See Contributing.
The OpenTelemetry .NET Automatic Instrumentation supports a wide variety of libraries.
Instrumentations
All instrumentations are enabled by default for all signal types (traces, metrics, and logs).
You can disable all instrumentations for a specific signal type by setting the
OTEL_DOTNET_AUTO_{SIGNAL}_INSTRUMENTATION_ENABLED
environment variable to
false
.
For a more granular approach, you can disable specific instrumentations for a
given signal type by setting the
OTEL_DOTNET_AUTO_{SIGNAL}_{0}_INSTRUMENTATION_ENABLED
environment variable to
false
, where {SIGNAL}
is the type of signal, for example TRACES
, and {0}
is the case-sensitive name of the instrumentation.
Environment variable | Description | Default value | Status |
---|---|---|---|
OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED | Enables all instrumentations. | true | Experimental |
OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED | Enables all trace instrumentations. Overrides OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED | Experimental |
OTEL_DOTNET_AUTO_TRACES_{0}_INSTRUMENTATION_ENABLED | Configuration pattern for enabling a specific trace instrumentation, where {0} is the uppercase ID of the instrumentation you want to enable. Overrides OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED | Experimental |
OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED | Disables all metric instrumentations. Overrides OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED | Experimental |
OTEL_DOTNET_AUTO_METRICS_{0}_INSTRUMENTATION_ENABLED | Configuration pattern for enabling a specific metric instrumentation, where {0} is the uppercase ID of the instrumentation you want to enable. Overrides OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED | Experimental |
OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED | Disables all log instrumentations. Overrides OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED | Experimental |
OTEL_DOTNET_AUTO_LOGS_{0}_INSTRUMENTATION_ENABLED | Configuration pattern for enabling a specific log instrumentation, where {0} is the uppercase ID of the instrumentation you want to enable. Overrides OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED . | Inherited from the current value of OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED | Experimental |
Traces instrumentations
Status: Mixed. Traces are stable, but particular instrumentation libraries are in Experimental status due to lack of stable semantic convention.
ID | Instrumented library | Supported versions | Instrumentation type | Status |
---|---|---|---|---|
ASPNET | ASP.NET (.NET Framework) MVC / WebApi [1] Not supported on .NET | * [2] | source & bytecode | Experimental |
ASPNETCORE | ASP.NET Core Not supported on .NET Framework | * | source | Experimental |
AZURE | Azure SDK | [3] | source | Experimental |
ELASTICSEARCH | Elastic.Clients.Elasticsearch | * [4] | source | Experimental |
ELASTICTRANSPORT | Elastic.Transport | ≥0.4.16 | source | Experimental |
ENTITYFRAMEWORKCORE | Microsoft.EntityFrameworkCore Not supported on .NET Framework | ≥6.0.12 | source | Experimental |
GRAPHQL | GraphQL Not supported on .NET Framework | ≥7.5.0 | source | Experimental |
GRPCNETCLIENT | Grpc.Net.Client | ≥2.52.0 & < 3.0.0 | source | Experimental |
HTTPCLIENT | System.Net.Http.HttpClient and System.Net.HttpWebRequest | * | source | Experimental |
KAFKA | Confluent.Kafka | ≥1.4.0 & < 3.0.0 [5] | bytecode | Experimental |
MASSTRANSIT | MassTransit Not supported on .NET Framework | ≥8.0.0 | source | Experimental |
MONGODB | MongoDB.Driver.Core / MongoDB.Driver | ≥2.7.0 < 4.0.0 | bytecode | Experimental |
MYSQLCONNECTOR | MySqlConnector | ≥2.0.0 | source | Experimental |
MYSQLDATA | MySql.Data Not supported on .NET Framework | ≥8.1.0 | source | Experimental |
NPGSQL | Npgsql | ≥6.0.0 | source | Experimental |
NSERVICEBUS | NServiceBus | ≥8.0.0 & < 10.0.0 | source & bytecode | Experimental |
ORACLEMDA | Oracle.ManagedDataAccess.Core and Oracle.ManagedDataAccess Not supported on ARM64 | ≥23.4.0 | source | Experimental |
RABBITMQ | RabbitMQ.Client | ≥6.0.0 | source or bytecode [6] | Experimental |
QUARTZ | Quartz Not supported on .NET Framework 4.7.1 and older | ≥3.4.0 | source | Experimental |
SQLCLIENT | Microsoft.Data.SqlClient, System.Data.SqlClient [7] and System.Data (shipped with .NET Framework) | * [8] | source | Experimental |
STACKEXCHANGEREDIS | StackExchange.Redis Not supported on .NET Framework | ≥2.6.122 & < 3.0.0 | source & bytecode | Experimental |
WCFCLIENT | WCF | * | source & bytecode | Experimental |
WCFSERVICE | WCF Not supported on .NET. | * | source & bytecode | Experimental |
[1]: Only integrated pipeline mode is supported.
[2]: ASP.NET (.NET Framework) MVC / WebApi
is not supported on ARM64.
[3]: Azure.
prefixed packages, released after October 1, 2021.
[4]: Elastic.Clients.Elasticsearch
version ≥8.0.0 and <8.10.0. Version
≥8.10.0 is supported by Elastic.Transport
instrumentation.
[5]: Confluent.Kafka
is supported from version ≥1.8.2 on ARM64.
[6]: RabbitMq.Client
needs bytecode instrumentation only for 6.. versions
7.0.0+ uses only source instrumentation.
[7]: System.Data.SqlClient
is
deprecated.
[8]: Microsoft.Data.SqlClient
v3.* is not supported on .NET Framework, due
to issue.
System.Data.SqlClient
is supported from version 4.8.5.
Metrics instrumentations
Status: Mixed. Metrics are stable, but particular instrumentation are in Experimental status due to lack of stable semantic convention.
ID | Instrumented library | Documentation | Supported versions | Instrumentation type | Status |
---|---|---|---|---|---|
ASPNET | ASP.NET Framework [1] Not supported on .NET | ASP.NET metrics | * | source & bytecode | Experimental |
ASPNETCORE | ASP.NET Core Not supported on .NET Framework | ASP.NET Core metrics | * | source | Experimental |
HTTPCLIENT | System.Net.Http.HttpClient and System.Net.HttpWebRequest | HttpClient metrics | * | source | Experimental |
NETRUNTIME | OpenTelemetry.Instrumentation.Runtime | Runtime metrics | * | source | Experimental |
NSERVICEBUS | NServiceBus | NServiceBus metrics | ≥8.0.0 & < 10.0.0 | source & bytecode | Experimental |
PROCESS | OpenTelemetry.Instrumentation.Process | Process metrics | * | source | Experimental |
SQLCLIENT | Microsoft.Data.SqlClient, System.Data.SqlClient [2] and System.Data (shipped with .NET Framework) | SqlClient metrics | * [3] | source | Experimental |
[1]: The ASP.NET metrics are generated only if the AspNet
trace
instrumentation is also enabled.
[2]: System.Data.SqlClient
is
deprecated.
[3]: Microsoft.Data.SqlClient
v3.* is not supported on .NET Framework, due
to issue.
System.Data.SqlClient
is supported from version 4.8.5.
Logs instrumentations
Status: Experimental.
ID | Instrumented library | Supported versions | Instrumentation type | Status |
---|---|---|---|---|
ILOGGER | Microsoft.Extensions.Logging Not supported on .NET Framework | ≥9.0.0 | bytecode or source [1] | Experimental |
LOG4NET | log4net | ≥2.0.13 && < 4.0.0 | bytecode | Experimental |
[1]: For ASP.NET Core applications, the LoggingBuilder
instrumentation can
be enabled without using the .NET CLR Profiler by setting the
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
environment variable to
OpenTelemetry.AutoInstrumentation.AspNetCoreBootstrapper
.
Instrumentation options
Environment variable | Description | Default value | Status |
---|---|---|---|
OTEL_DOTNET_AUTO_ENTITYFRAMEWORKCORE_SET_DBSTATEMENT_FOR_TEXT | Whether the Entity Framework Core instrumentation can pass SQL statements through the db.statement attribute. Queries might contain sensitive information. If set to false , db.statement is recorded only for executing stored procedures. | false | Experimental |
OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENT | Whether the GraphQL instrumentation can pass raw queries through the graphql.document attribute. Queries might contain sensitive information. | false | Experimental |
OTEL_DOTNET_AUTO_ORACLEMDA_SET_DBSTATEMENT_FOR_TEXT | Whether the Oracle Client instrumentation can pass SQL statements through the db.statement attribute. Queries might contain sensitive information. If set to false , db.statement is recorded only for executing stored procedures. | false | Experimental |
OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXT | Whether the SQL Client instrumentation can pass SQL statements through the db.statement attribute. Queries might contain sensitive information. If set to false , db.statement is recorded only for executing stored procedures. Not supported on .NET Framework for System.Data.SqlClient. | false | Experimental |
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS | A comma-separated list of HTTP header names. ASP.NET instrumentations will capture HTTP request header values for all configured header names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS | A comma-separated list of HTTP header names. ASP.NET instrumentations will capture HTTP response header values for all configured header names. Not supported on IIS Classic mode. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS | A comma-separated list of HTTP header names. ASP.NET Core instrumentations will capture HTTP request header values for all configured header names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS | A comma-separated list of HTTP header names. ASP.NET Core instrumentations will capture HTTP response header values for all configured header names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_REQUEST_METADATA | A comma-separated list of gRPC metadata names. Grpc.Net.Client instrumentations will capture gRPC request metadata values for all configured metadata names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_RESPONSE_METADATA | A comma-separated list of gRPC metadata names. Grpc.Net.Client instrumentations will capture gRPC response metadata values for all configured metadata names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS | A comma-separated list of HTTP header names. HTTP Client instrumentations will capture HTTP request header values for all configured header names. | Experimental | |
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS | A comma-separated list of HTTP header names. HTTP Client instrumentations will capture HTTP response header values for all configured header names. | Experimental | |
OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTION | Whether the ASP.NET Core instrumentation turns off redaction of the url.query attribute value. | false | Experimental |
OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTION | Whether the HTTP client instrumentation turns off redaction of the url.full attribute value. | false | Experimental |
OTEL_DOTNET_EXPERIMENTAL_ASPNET_DISABLE_URL_QUERY_REDACTION | Whether the ASP.NET instrumentation turns off redaction of the url.query attribute value. | false | Experimental |
Comentarios
¿Fue útil esta página?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!