SuperAPI AI 工具集

observability-edot-dotnet-migrate

部署与运维

查看项目

更新于 10-16 05:07

技能介绍

用途:把 .NET 应用从经典 Elastic APM .NET 代理迁移到 EDOT .NET SDK,适用于从 Elastic.Apm.* 包切换到 OpenTelemetry 方案的场景。

主要能力与要求:

  1. 移除所有经典 APM 引用,包括 Elastic.Apm.* NuGet 包(含 Elastic.Apm.NetCoreAll)、UseAllElasticApm() / AddAllElasticApm() 调用、appsettings.json 中的 ElasticApm 节,以及所有 ELASTIC_APM_* 环境变量。
  2. 添加 NuGet 包:Elastic.OpenTelemetry,ASP.NET Core 应用还需 OpenTelemetry.Instrumentation.AspNetCore。
  3. 在启动时注册 EDOT:在 IHostApplicationBuilder(Program.cs 或等价位置)调用 builder.AddElasticOpenTelemetry()。不调用则不会采集遥测数据。
  4. 设置三个必需环境变量: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。
  5. 不要设置 OTEL_TRACES_EXPORTER、OTEL_METRICS_EXPORTER、OTEL_LOGS_EXPORTER,默认值已正确。

限制:绝不可在同一应用上同时运行经典 Elastic APM 代理与 EDOT。迁移前应先阅读迁移指南,完整示例见 EDOT .NET 迁移指南。具体端点地址、密钥等需按实际环境提供,资料未给出。