观测云支持多种方式来接入 OpenTelemetry 上报的数据,比如通过 OpenTelemetry Collector ,也可以直接通过 exporter 方式上报。本次最佳实践主要通过 exporter 方式进行上报,架构如下:
- 安装 DataKit
- DataKit 开启 opentelemetry 采集器
- DataKit 开启 log采集器
- 准备应用,接入 opentelemetry-javaagent,上报至 DataKit 。
DataKit
1、安装 DataKit
参考链接: https://docs.guance.com/datakit/datakit-install/
2、opentelemetry 采集器
进入 DataKit 安装目录下的 conf.d/opentelemetry
目录,复制 opentelemetry.conf.sample
并命名为 opentelemetry.conf
,主要调整以下配置:
从上面配置可以看出,opentelemetry 采集器支持两种协议 :
- GRPC:4317 端口,也可以自行调整。
- HTTP:9529 端口,是 DataKit 的端口,访问地址是
http://localhost:9529/otel/v1/trace
。
3、log 采集器
用于采集应用日志信息,进入 DataKit 安装目录下的 conf.d/log
目录,复制 logging.conf.sample
并命名为 logging.conf
。示例如下:
注意日志路径和文件名,也可以支持通配符的方式。
4、重启 Datakit
应用接入 OpenTelemetry
准备一个应用,这里主要演示 java 环境下接入 OpenTelemetry。
- 下载 opentelemetry-javaagent
建议下载观测云版本的 opentelemetry-javaagent。 https://github.com/GuanceCloud/opentelemetry-java-instrumentation/releases
- 调整日志输出格式
主要是在 logback.xml
上调整 pattern
格式 %X{trace_id} %X{span_id}
,用于日志和链路的关联。
- 启动应用
观测云效果
- 链路列表
可以看到所有链路相关的数据
查看链路详情,可以关联到对应的日志信息
- 日志
- Opentelemetry JVM 视图
Opentelemetry JVM 视图是基于 Opentelemetry 上报的指标信息进行绘制的视图模版,可以选择对应的模版进行 clone。