用途:把 .NET 应用从经典 Elastic APM .NET 代理迁移到 EDOT .NET SDK,适用于需要从 Elastic.Apm.* 包切换到 Elastic.OpenTelemetry 的情况。
迁移前应先阅读迁移指南,并参考 EDOT .NET setup 与 EDOT .NET configuration 文档。
主要操作步骤:
- 移除所有经典 APM 引用:Elastic.Apm.* NuGet 包(含 Elastic.Apm.NetCoreAll)、UseAllElasticApm() / AddAllElasticApm() 调用、appsettings.json 中的 ElasticApm 节,以及所有 ELASTIC_APM_* 环境变量。
- 添加 NuGet 包:Elastic.OpenTelemetry,以及 ASP.NET Core 应用所需的 OpenTelemetry.Instrumentation.AspNetCore。
- 在启动时注册 EDOT:在 IHostApplicationBuilder 上调用 builder.AddElasticOpenTelemetry()(位于 Program.cs 或等效文件)。不做这一步将不会采集遥测数据。
- 设置恰好三个必需环境变量:OTEL_SERVICE_NAME(替代 ELASTIC_APM_SERVICE_NAME / ElasticApm:ServiceName);OTEL_EXPORTER_OTLP_ENDPOINT,必须是托管 OTLP 端点或 EDOT Collector URL,不要复用旧的 ELASTIC_APM_SERVER_URLS 值,绝不使用 APM Server URL(不能有 apm-server、:8200、/intake/v2/events);OTEL_EXPORTER_OTLP_HEADERS,格式为 "Authorization=ApiKey <key>" 或 "Authorization=Bearer <token>"(替代 ELASTIC_APM_SECRET_TOKEN)。
- 不要设置 OTEL_TRACES_EXPORTER、OTEL_METRICS_EXPORTER 或 OTEL_LOGS_EXPORTER,默认值已正确。
限制:绝不可在同一应用上同时运行经典 Elastic APM 代理(Elastic.Apm.*)与 EDOT。完整示例参见 EDOT .NET 迁移指南。此资料未提供相关的价格、平台支持范围或具体效果数据。