用途
observability-edot-java-migrate 是一个面向 Java 应用的迁移技能,用于把可观测性接入方式从经典 Elastic APM Java 代理(elastic-apm-agent.jar)切换为 EDOT Java 代理。当项目需要从 elastic-apm-agent.jar 迁移到 elastic-otel-javaagent.jar 时使用。
主要能力
该技能明确要求在执行变更前先阅读迁移指南,并参考 EDOT Java setup 与 EDOT Java configuration 文档。迁移过程中需要清除所有经典 APM 引用,包括:elastic-apm-agent.jar、elasticapm.properties、所有 ELASTIC_APM_* 环境变量,以及任何 co.elastic.apm 的 Maven/Gradle 依赖。
改用 elastic-otel-javaagent.jar,并说明其应从 Maven Central 下载,而不是作为 Maven/Gradle 的编译依赖。挂载方式为 -javaagent:/path/to/elastic-otel-javaagent.jar 或 JAVA_TOOL_OPTIONS="-javaagent:/path/to/elastic-otel-javaagent.jar";文档指出,若不进行该挂载,代理不会生效。
使用方式
需要设置恰好三个必需的环境变量:OTEL_SERVICE_NAME(替代 ELASTIC_APM_SERVICE_NAME);OTEL_EXPORTER_OTLP_ENDPOINT(必须使用托管 OTLP 端点或 EDOT Collector URL,不得复用旧的 ELASTIC_APM_SERVER_URL 值,也不得使用 APM Server URL,即不能包含 apm-server、:8200 或 /intake/v2/events);OTEL_EXPORTER_OTLP_HEADERS(格式为 "Authorization=ApiKey <key>" 或 "Authorization=Bearer <token>",替代 ELASTIC_APM_SECRET_TOKEN / API_KEY)。
不要设置 OTEL_TRACES_EXPORTER、OTEL_METRICS_EXPORTER 或 OTEL_LOGS_EXPORTER,因为默认值已经正确。同时明确禁止在同一个 JVM 上同时运行经典 Elastic APM 代理和 EDOT 代理。
适用场景
适用于需要将 Java 应用的可观测性采集从 Elastic APM 经典代理迁移到基于 OpenTelemetry 的 EDOT Java 代理的工程场景,包括清理旧依赖、替换代理 jar、调整环境变量与端点配置等。
限制
关于该技能支持的具体 Java 版本、框架覆盖范围、迁移后的功能差异、收费或价格信息,资料中暂未提供。完整示例参见资料中提到的 EDOT Java 迁移指南。