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