Skip to content

Latest commit

 

History

History
136 lines (110 loc) · 27 KB

instrumentations.md

File metadata and controls

136 lines (110 loc) · 27 KB
title linkTitle description weight cSpell:ignore
Available instrumentations
Instrumentations
OpenTelemetry .NET Automatic Instrumentation supported libraries.
10
ASPNET ASPNETCORE Bootstrapper DBSTATEMENT ELASTICTRANSPORT ENTITYFRAMEWORKCORE GRCPNETCLIENT GRPCNETCLIENT HOSTINGSTARTUPASSEMBLIES HTTPCLIENT ILOGGER MASSTRANSIT MYSQLCONNECTOR MYSQLDATA NETRUNTIME NPGSQL Npgsql NSERVICEBUS ORACLEMDA SQLCLIENT STACKEXCHANGEREDIS WCFCLIENT WCFSERVICE

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 ≥2.13.3 & < 3.0.0 source & 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
QUARTZ Quartz Not supported on .NET Framework 4.7.1 and older ≥3.4.0 source Experimental
SQLCLIENT Microsoft.Data.SqlClient, System.Data.SqlClient and System.Data (shipped with .NET Framework) * [6] source Experimental
STACKEXCHANGEREDIS StackExchange.Redis Not supported on .NET Framework ≥2.0.405 & < 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]: 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 [2] 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
PROCESS OpenTelemetry.Instrumentation.Process Process metrics * source Experimental
NSERVICEBUS NServiceBus NServiceBus metrics ≥8.0.0 & < 10.0.0 source & bytecode Experimental

[1]: The ASP.NET metrics are generated only if the AspNet trace instrumentation is also enabled.

[2]: This instrumentation automatically enables the Microsoft.AspNetCore.Hosting.HttpRequestIn spans.

Logs instrumentations

Status: Experimental.

ID Instrumented library Supported versions Instrumentation type Status
ILOGGER Microsoft.Extensions.Logging Not supported on .NET Framework ≥8.0.0 bytecode or source Experimental

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