可用的自动配置

OpenTelemetry .NET 自动配置支持的库。

OpenTelemetry .NET 自动配置支持各种库。

自动配置

所有自动配置在默认情况下对所有信号类型(跟踪、指标和日志)都已启用。

您可以通过将 OTEL_DOTNET_AUTO_{SIGNAL}_INSTRUMENTATION_ENABLED 环境变量设置为 false 来为特定信号类型禁用所有自动配置。

对于更细粒度的方法,您可以通过将 OTEL_DOTNET_AUTO_{SIGNAL}_{0}_INSTRUMENTATION_ENABLED 环境变量设置为 false 来为给定信号类型禁用特定自动配置,其中 {SIGNAL} 是信号类型,例如 TRACES,而 {0} 是自动配置的区分大小写的名称。

环境变量描述默认值状态
OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED启用所有自动配置。true实验性
OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED启用所有跟踪自动配置。覆盖 OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED 的当前值继承实验性
OTEL_DOTNET_AUTO_TRACES_{0}_INSTRUMENTATION_ENABLED用于启用特定跟踪自动配置的配置模式,其中 {0} 是您要启用的自动配置的大写 ID。覆盖 OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED 的当前值继承实验性
OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED禁用所有指标自动配置。覆盖 OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED 的当前值继承实验性
OTEL_DOTNET_AUTO_METRICS_{0}_INSTRUMENTATION_ENABLED用于启用特定指标自动配置的配置模式,其中 {0} 是您要启用的自动配置的大写 ID。覆盖 OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED 的当前值继承实验性
OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED禁用所有日志自动配置。覆盖 OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED 的当前值继承实验性
OTEL_DOTNET_AUTO_LOGS_{0}_INSTRUMENTATION_ENABLED用于启用特定日志自动配置的配置模式,其中 {0} 是您要启用的自动配置的大写 ID。覆盖 OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLEDOTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED 的当前值继承实验性

跟踪自动配置

状态混合。跟踪是稳定的,但由于缺乏稳定的语义约定,特定的自动配置库处于实验性状态。

ID已自动配置的库支持的版本自动配置类型状态
ASPNETASP.NET (.NET Framework) MVC / WebApi [1] .NET 不支持* [2]源代码与字节码实验性
ASPNETCOREASP.NET Core .NET Framework 不支持*源代码实验性
AZUREAzure SDK[3]源代码实验性
ELASTICSEARCHElastic.Clients.Elasticsearch* [4]源代码实验性
ELASTICTRANSPORTElastic.Transport≥0.4.16源代码实验性
ENTITYFRAMEWORKCOREMicrosoft.EntityFrameworkCore .NET Framework 不支持≥6.0.12源代码实验性
GRAPHQLGraphQL .NET Framework 不支持≥7.5.0源代码实验性
GRPCNETCLIENTGrpc.Net.Client≥2.52.0 & < 3.0.0源代码实验性
HTTPCLIENTSystem.Net.Http.HttpClientSystem.Net.HttpWebRequest*源代码实验性
KAFKAConfluent.Kafka≥1.4.0 & < 3.0.0 [5]字节码实验性
MASSTRANSITMassTransit .NET Framework 不支持≥8.0.0源代码实验性
MONGODBMongoDB.Driver.Core / MongoDB.Driver≥2.7.0 < 3.5.0字节码实验性
MYSQLCONNECTORMySqlConnector≥2.0.0源代码实验性
MYSQLDATAMySql.Data .NET Framework 不支持≥8.1.0源代码实验性
NPGSQLNpgsql≥6.0.0源代码实验性
NSERVICEBUSNServiceBus≥8.0.0 & < 10.0.0源代码与字节码实验性
ORACLEMDAOracle.ManagedDataAccess.CoreOracle.ManagedDataAccess ARM64 不支持≥23.4.0源代码实验性
RABBITMQRabbitMQ.Client≥5.0.0源代码或字节码 [6]实验性
QUARTZQuartz .NET Framework 4.7.1 及更早版本不支持≥3.4.0源代码实验性
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [7] 和 System.Data (随 .NET Framework 提供)* [8]源代码实验性
STACKEXCHANGEREDISStackExchange.Redis .NET Framework 不支持≥2.6.122 & < 3.0.0源代码与字节码实验性
WCFCLIENTWCF*源代码与字节码实验性
WCFSERVICEWCF .NET 不支持*源代码与字节码实验性

[1]: 只支持集成管道模式。

[2]: ASP.NET (.NET Framework) MVC / WebApi 不支持 ARM64。

[3]: Azure. 前缀的包,发布于 2021 年 10 月 1 日之后。

[4]: Elastic.Clients.Elasticsearch 版本 ≥8.0.0 且 <8.10.0。版本 ≥8.10.0 由 Elastic.Transport 自动配置支持。

[5]: Confluent.Kafka 从版本 ≥1.8.2 开始支持 ARM64。

[6]: RabbitMq.Client 仅对 5.*6.* 版本需要字节码自动配置,7.0.0+ 版本仅使用源代码自动配置。

[7]: System.Data.SqlClient 已弃用

[8]: Microsoft.Data.SqlClient v3.* 由于 问题,在 .NET Framework 上不受支持。System.Data.SqlClient 支持版本 4.8.5 及以上。

指标自动配置

状态混合。指标是稳定的,但由于缺乏稳定的语义约定,特定的自动配置处于实验性状态。

ID已自动配置的库文档支持的版本自动配置类型状态
ASPNETASP.NET Framework [1] .NET 不支持ASP.NET 指标*源代码与字节码实验性
ASPNETCOREASP.NET Core .NET Framework 不支持ASP.NET Core 指标*源代码实验性
HTTPCLIENTSystem.Net.Http.HttpClientSystem.Net.HttpWebRequestHttpClient 指标*源代码实验性
NETRUNTIMEOpenTelemetry.Instrumentation.Runtime运行时指标*源代码实验性
NPGSQLNpgsql .NET Framework 不支持Npgsql 指标≥6.0.0源代码实验性
NSERVICEBUSNServiceBusNServiceBus 指标≥8.0.0 & < 10.0.0源代码与字节码实验性
PROCESSOpenTelemetry.Instrumentation.Process进程指标*源代码实验性
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [2] 和 System.Data (随 .NET Framework 提供)SqlClient 指标* [3]源代码实验性

[1]: 仅当 AspNet 跟踪自动配置也已启用时,才会生成 ASP.NET 指标。

[2]: System.Data.SqlClient 已弃用

[3]: Microsoft.Data.SqlClient v3.* 由于 问题,在 .NET Framework 上不受支持。System.Data.SqlClient 支持版本 4.8.5 及以上。

日志自动配置

状态实验性

ID已自动配置的库支持的版本自动配置类型状态
ILOGGERMicrosoft.Extensions.Logging .NET Framework 不支持≥8.0.0字节码或源代码 [1]实验性
LOG4NETlog4net≥2.0.13 && < 4.0.0字节码实验性

[1]: 对于 ASP.NET Core 应用程序,可以通过设置 ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 环境变量为 OpenTelemetry.AutoInstrumentation.AspNetCoreBootstrapper 来启用 LoggingBuilder 自动配置,而无需使用 .NET CLR Profiler。

自动配置选项

环境变量描述默认值状态
OTEL_DOTNET_AUTO_ENTITYFRAMEWORKCORE_SET_DBSTATEMENT_FOR_TEXTEntity Framework Core 自动配置是否可以通过 db.statement 属性传递 SQL 语句。查询可能包含敏感信息。如果设置为 false,则仅为执行存储过程记录 db.statementfalse实验性
OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENTGraphQL 自动配置是否可以通过 graphql.document 属性传递原始查询。查询可能包含敏感信息。false实验性
OTEL_DOTNET_AUTO_ORACLEMDA_SET_DBSTATEMENT_FOR_TEXTOracle 客户端自动配置是否可以通过 db.statement 属性传递 SQL 语句。查询可能包含敏感信息。如果设置为 false,则仅为执行存储过程记录 db.statementfalse实验性
OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXTSQL 客户端自动配置是否可以通过 db.statement 属性传递 SQL 语句。查询可能包含敏感信息。如果设置为 false,则仅为执行存储过程记录 db.statement在 .NET Framework 上对 System.Data.SqlClient 不支持。false实验性
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS逗号分隔的 HTTP 标头名称列表。ASP.NET 自动配置将捕获所有配置的标头名称的 HTTP 请求标头值。实验性
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS逗号分隔的 HTTP 标头名称列表。ASP.NET 自动配置将捕获所有配置的标头名称的 HTTP 响应标头值。IIS Classic 模式下不支持。实验性
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS逗号分隔的 HTTP 标头名称列表。ASP.NET Core 自动配置将捕获所有配置的标头名称的 HTTP 请求标头值。实验性
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS逗号分隔的 HTTP 标头名称列表。ASP.NET Core 自动配置将捕获所有配置的标头名称的 HTTP 响应标头值。实验性
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_REQUEST_METADATA逗号分隔的 gRPC 元数据名称列表。Grpc.Net.Client 自动配置将捕获所有配置的元数据名称的 gRPC 请求元数据值。实验性
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_RESPONSE_METADATA逗号分隔的 gRPC 元数据名称列表。Grpc.Net.Client 自动配置将捕获所有配置的元数据名称的 gRPC 响应元数据值。实验性
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS逗号分隔的 HTTP 标头名称列表。HTTP 客户端自动配置将捕获所有配置的标头名称的 HTTP 请求标头值。实验性
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS逗号分隔的 HTTP 标头名称列表。HTTP 客户端自动配置将捕获所有配置的标头名称的 HTTP 响应标头值。实验性
OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTIONASP.NET Core 自动配置是否关闭对 url.query 属性值的 redaction。false实验性
OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTIONHTTP 客户端自动配置是否关闭对 url.full 属性值的 redaction。false实验性
OTEL_DOTNET_EXPERIMENTAL_ASPNET_DISABLE_URL_QUERY_REDACTIONASP.NET 自动配置是否关闭对 url.query 属性值的 redaction。false实验性