Java 应用中追踪的非侵入式集成
INFO
自动注入的 OpenTelemetry Java Agent 支持 Java 8+ 版本。
功能概述
追踪是分布式系统可观测性的核心能力,能够完整记录系统内请求的调用路径和性能数据。本文介绍如何通过自动注入 OpenTelemetry Java Agent,实现 Java 应用的非侵入式追踪集成。
使用场景
Java 应用可集成于以下场景:
- 快速为 Java 应用添加追踪能力
- 避免修改应用源代码
- 使用 Kubernetes 部署服务
- 可视化服务间调用关系,分析性能瓶颈
前置条件
使用该功能前,请确保:
- 目标服务已部署在 Alauda Container Platform 上
- 服务使用的 JDK 版本为 Java 8 或更高
- 具备目标命名空间中 Deployment 的编辑权限
- 平台已完成追踪部署
操作步骤
对于需要集成到 Alauda Container Platform 追踪的 Java 应用,需进行如下适配:
- 配置 Java Deployment 的自动注入注解
- 设置
SERVICE_NAME环境变量 - 设置
SERVICE_NAMESPACE环境变量
Deployment 适配示例:
- 选择
cpaas-system/acp-common-javaInstrumentation 作为注入 Java Agent 的配置。 - 配置
SERVICE_NAME环境变量,可通过标签关联或固定值设置。 - 配置
SERVICE_NAMESPACE环境变量,值为metadata.namespace。
操作结果
Java 应用适配完成后:
- 新启动的 Java 应用 Pod 中若包含
opentelemetry-auto-instrumentation-javainit 容器,表示注入成功。 - 向 Java 应用发送测试请求。
- 在 Container Platform 视图中,选择 Java 应用所在的 项目、集群 和 命名空间。
- 进入 Observability -> Tracing 页面,查看 Java 应用的追踪数据和时间线瀑布图。