用途:为 Java 应用接入 Maple 的 OpenTelemetry 可观测性数据,给出零代码 agent 与手动 SDK 两种落地路径。
零代码方式最快捷:使用 OpenTelemetry Java agent 自动插桩 JVM,无需改代码。下载命令为 curl -sLO https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar,然后以内联 -D 系统属性指定端点与 ingest key,例如 -Dotel.exporter.otlp.endpoint=https://ingest.maple.dev 与 -Dotel.exporter.otlp.headers="authorization=Bearer MAPLE_TEST"。agent 会在基础端点后拼接 /v1/traces、/v1/logs、/v1/metrics,并自动插桩 Spring(Boot、MVC、WebFlux)、Servlet 容器、HttpClient、OkHttp、JDBC、R2DBC、Hibernate、Kafka、gRPC、AWS SDK 等。
手动 SDK 适用于 agent 无法运行的场景(GraalVM native image、嵌入式 JVM、模块路径封闭)。需在 dependencyManagement 中引入 io.opentelemetry:opentelemetry-bom 与 io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha,再添加 api、sdk、exporter-otlp 等依赖,构建 Resource 与 OTLP HTTP exporter。
日志方面通过 OTLP 桥接现有 Logback / SLF4J / Log4j2,不替换原有方案。使用 agent 时 Logback 与 Log4j2 自动桥接;手动 SDK 需添加对应 appender 并调用 OpenTelemetryAppender.install(sdk)。业务埋点可在类作用域获取 Tracer,用 spanBuilder 创建 span 并记录异常。
限制:需替换 MAPLE_TEST 为真实 ingest key;EU 组织使用 https://ingest.eu.maple.dev;agent 不读取 Spring 的 application.yml;与 Datadog、New Relic、Honeycomb 等 agent 共存时需预先测试,未经用户要求不要移除已有 agent。