自APO开源以来,社区成员询问APO是否支持Skywalking Agent,以避免已使用Skywalking的应用在测试发版过程中需要重新部署探针。APO利用OpenTelemetry生态,通过skywalkingreceiver实现Skywalking Trace到OTEL Trace的转换,为已经使用Skywalking的用户提供无缝体验。
Skywalking与ClickHouse的结合
有公司通过将Skywalking转换为OpenTelemetry+ClickHouse,成功降低了资源开销三分之一。APO如何实现这一功能?
使用ClickHouse存储Trace
APO迁移了Jaeger-remotestorage至Jaeger 1.58,使用Jaeger-clickhouse项目表结构存储Trace,并集成JaegerUI展示Trace。APO在设计上简化了Trace的细节,使得在Jaeger 2.0改版以更好支持Clickhouse时,APO的集成也变得简单。
OneAgentBuilder:构建适用已有环境的OneAgent
为了快速接入APO,特别是对于已经使用Skywalking和OpenTelemetry的用户,APO提供了OneAgentBuilder。
使用方法
- 下载OneAgentBuilder
- 将模板中的skywalking Agent探针或OpenTelemetry探针替换为已使用的版本
- 使用docker builder生成APO-OneAgent镜像,该镜像称之为定制化OneAgent镜像
- 按照安装文档安装APO-OneAgent,安装过程中替换OneAgent官方镜像为定制化的OneAgent
定制化OneAgent镜像使用
生成APO-OneAgent镜像后,您可以:
- 将镜像导入至目标机器
- 或者导入到Harbor中
然后,根据APO官方文档安装OneAgent,注意替换OneAgent官方镜像为您定制化OneAagent。
结构示例
以下是OneAgentBuilder中模板的结构示例:
preload-builder
├── opentelemetry-java
│ ├── Dockerfile
│ ├── libapoinstrument.conf
│ └── opentelemetry
│ └── opentelemetry-javaagent.jar
└── skywalking-java
├── Dockerfile
├── libapoinstrument.conf
└── skywalking-agent
├── activations
├── bootstrap-plugins
├── config
├── expired-plugins
├── LICENSE
├── licenses
├── logs
├── NOTICE
├── optional-plugins
├── optional-reporter-plugins
├── plugins
└── skywalking-agent.jar
APO v0.2.0 更新记录:
新增功能
-
APO 支持接入 SkyWalking Agent
-
支持在安装 OneAgent 时替换默认的 Opentelemetry v2.5.0Agent,例如其他版本或SkyWalking 等
-
新增查看服务的“更多下游依赖”拓扑,加快定位故障原因
-
新增配置页面,支持修改数据保留周期
-
eBPF 探针适配更多内核版本,支持自动适配内核版本
功能优化
-
优化安装体验,支持独立部署 APO 服务端,支持监控 Kubernetes 环境以及传统服务器中的应用
-
优化告警规则页面展示效果
-
优化 APO 接口查询效率,提高页面响应速度
-
优化 Java 网关类型服务的监控数据准确度
缺陷修复
-
修复部分场景下 ebpf-agent
-
修复部分服务端点无法查询出实例信息的问
-
修复日志/链路列表中不同实例包含了相同列表的问题
-
修复日志/链路检索页选择器的问题
其他
-
APO页面汉化