.NET 配置说明
配置方法
你可以通过以下方式应用或编辑配置设置,其中环境变量的优先级高于 App.config
或 Web.config
文件:
-
环境变量
环境变量是配置设置的主要方式。
-
App.config
或Web.config
文件对于运行在 .NET Framework 上的应用程序,你可以使用 web 配置文件(
web.config
)或应用程序配置文件(app.config
)来配置OTEL_*
设置。⚠️ 只有以
OTEL_
开头的设置可以使用App.config
或Web.config
进行配置。但是,以下设置不支持:OTEL_DOTNET_AUTO_HOME
OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES
OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED
OTEL_DOTNET_AUTO_[TRACES|METRICS|LOGS]_INSTRUMENTATIONS_ENABLED
OTEL_DOTNET_AUTO_[TRACES|METRICS|LOGS]_{INSTRUMENTATION_ID}_INSTRUMENTATION_ENABLED
OTEL_DOTNET_AUTO_LOG_DIRECTORY
OTEL_LOG_LEVEL
OTEL_DOTNET_AUTO_NETFX_REDIRECT_ENABLED
使用
OTEL_SERVICE_NAME
设置的示例:<configuration>
<appSettings>
<add key="OTEL_SERVICE_NAME" value="my-service-name" />
</appSettings>
</configuration> -
服务名称自动检测
如果没有显式配置服务名称,系统将为你生成一个。这在某些情况下很有帮助。
- 如果应用程序在 .NET Framework 的 IIS 上托管,将使用
SiteName\VirtualPath
格式,例如:MySite\MyApp
- 如果不是这种情况,将使用应用程序入口程序集的名称。
- 如果应用程序在 .NET Framework 的 IIS 上托管,将使用
默认情况下,我们建议使用环境变量进行配置。但是,如果给定的设置支持,那么:
- 使用
Web.config
配置 ASP.NET 应用程序(.NET Framework) - 使用
App.config
配置 Windows 服务(.NET Framework)
全局设置
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_DOTNET_AUTO_HOME | 安装位置。 | Experimental | |
OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES | 分析器不能检测的可执行文件名称。支持多个逗号分隔的值,例如:ReservedProcess.exe,powershell.exe 。如果未设置,分析器默认附加到所有进程。 | Experimental | |
OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED | 启用当自动检测无法执行时使进程失败的可能性。它是为调试目的而设计的。不应在生产环境中使用。[1] | false | Experimental |
OTEL_DOTNET_AUTO_LOGGER | 自动检测诊断日志接收器。(支持的值: none ,file ,console ) | file | Experimental |
OTEL_LOG_LEVEL | SDK 日志级别。(支持的值: none ,error ,warn ,info ,debug ) | info | Stable |
[1] 如果 OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED
设置为 true
,则被 OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES
排除检测的进程将失败,而不是静默继续。
[2] 注意通过 dotnet MyApp.dll
启动的应用程序的进程名为 dotnet
或 dotnet.exe
。
资源
资源是生成遥测数据的实体的不可变表示。
资源属性
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_RESOURCE_ATTRIBUTES | 用作资源属性的键值对。 | Stable | |
OTEL_SERVICE_NAME | 设置service.name 资源属性的值。如果在 OTEL_RESOURCE_ATTRIBUTES 中提供了 service.name ,则 OTEL_SERVICE_NAME 的值优先。 | 请参见配置方法部分下的服务名称自动检测。 | Stable |
资源检测器
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED | 启用所有资源检测器。 | true | Experimental |
OTEL_DOTNET_AUTO_{0}_RESOURCE_DETECTOR_ENABLED | 启用特定资源检测器的配置模式,其中 {0} 是你想要启用的资源检测器的大写 ID。覆盖 OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED 的设置。 | true | Experimental |
以下资源检测器默认包含并启用:
ID | 描述 | 文档 | 状态 |
---|---|---|---|
AZUREAPPSERVICE | Azure App Service 检测器 | Azure 资源检测器文档 | Experimental |
CONTAINER | 容器检测器 | 容器资源检测器文档 不支持 .NET Framework | Experimental |
HOST | 主机检测器 | 主机资源检测器文档 | Experimental |
OPERATINGSYSTEM | 操作系统检测器 | 操作系统资源检测器文档 | Experimental |
PROCESS | 进程检测器 | 进程资源检测器文档 | Experimental |
PROCESSRUNTIME | 进程运行时检测器 | 进程运行时资源检测器文档 | Experimental |
Propagators
Propagators 允许应用程序共享上下文。
环境变量 | 描述 | 默认值 |
---|---|---|
OTEL_PROPAGATORS | 以逗号分隔的 propagator 列表。支持的选项: tracecontext , baggage , b3multi , b3 。更多详细信息请参见 OpenTelemetry 规范。 | tracecontext,baggage |
采样器
采样器 让你可以通过选择要收集和导出的追踪来控制 OpenTelemetry 检测引入的潜在噪声和开销。更多详细信息请参见 OpenTelemetry 规范。
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_TRACES_SAMPLER | 用于追踪的采样器 [1] | parentbased_always_on | Stable |
OTEL_TRACES_SAMPLER_ARG | 用作采样器参数的字符串值 [2] | Stable |
[1]: 支持的值包括:
always_on
,always_off
,traceidratio
,parentbased_always_on
,parentbased_always_off
,parentbased_traceidratio
。
[2]: 对于 traceidratio
和 parentbased_traceidratio
采样器:采样概率是一个 [0..1] 范围内的数字,例如 "0.25"。默认值为 1.0。
Exporters
Exporters 用于输出遥测数据。
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_TRACES_EXPORTER | 以逗号分隔的导出器列表。支持的选项: otlp , zipkin , console , none 。 | otlp | Stable |
OTEL_METRICS_EXPORTER | 以逗号分隔的导出器列表。支持的选项: otlp , prometheus , console , none 。 | otlp | Stable |
OTEL_LOGS_EXPORTER | 以逗号分隔的导出器列表。 支持的选项: otlp , console , none 。 | otlp | Stable |
追踪导出器
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_BSP_SCHEDULE_DELAY | 两次连续导出之间的延迟间隔(毫秒)。 | 5000 | Stable |
OTEL_BSP_EXPORT_TIMEOUT | 导出数据的最大允许时间(毫秒)。 | 30000 | Stable |
OTEL_BSP_MAX_QUEUE_SIZE | 最大队列大小。 | 2048 | Stable |
OTEL_BSP_MAX_EXPORT_BATCH_SIZE | 最大批量大小。必须小于或等于 OTEL_BSP_MAX_QUEUE_SIZE 。 | 512 | Stable |
指标导出器
环境变量 | 描述 | 默认值 | 状态 |
---|---|---|---|
OTEL_METRIC_EXPORT_INTERVAL | 两次导出尝试开始之间的时间间隔(毫秒)。 | OTLP 导出器为60000 ,console 导出器为10000 | Stable |
OTEL_METRIC_EXPORT_TIMEOUT | 导出数据的最大允许时间(毫秒)。 | OTLP 导出器为30000 ,console 导出器无默认值 | Stable |