通过 Skywalking 采集链路追踪数据
简介
接收符合 Skywalking 协议格式的链路数据,并把数据经过统一转换成 DataFlux 的链路数据后上报到 DataFlux 中。
前置条件
已安装 DataKit(DataKit 安装文档)
下载 Skywalking,并设置对应语言的 Agent,并配置数据上报地址为 DataKit 提供的地址
配置
使用 Skywalking 的数据发送到 DataKit一共需要两步:
第一步:在 DataKit 中开启链路数据接收服务
第二步:按项目需求对进行埋点,并配置数据上报地址为 DataKit 的链路数据接收地址
开启链路数据接收服务
打开 DataKit 采集源配置文件夹(默认路径为 DataKit 安装目录的 conf.d
文件夹),找到 conf.d/traceSkywalking
文件夹,复制 traceSkywalking.conf.sample
文件并重命名为traceSkywalking.conf
。DataKit目前支持skywalking V2与V3版本链路追踪数据,去掉 [inputs.traceSkywalking.V2]
或[inputs.traceSkywalking.V3]
前面的注释,并设置 Skywalking 接收trace数据的gRPC端口,即可开启相应版本链路数据接收服务,另外如果需要对链路数据添加其他自定义的标签,可以去掉 [inputs.traceSkywalking.V2.tags]
或[inputs.traceSkywalking.V3.tags]
的注释,并添加自定义标签。
设置:
[inputs.traceSkywalking.V2] # skywalking V2版本配置,即skywalking 6.x或skywalking 7.x
grpcPort = 11800 # skywalking gRPC端口, 默认为11800
[inputs.traceSkywalking.V2.tags] # 自定义标签组
tag1 = "tag1" # 自定义标签1
tag2 = "tag2" # 自定义标签2
tag3 = "tag3" # 自定义标签3
[inputs.traceSkywalking.V3] # skywalking V3版本配置,即skywalking 8.x
grpcPort = 13800 # skywalking gRPC端口, 默认为13800
[inputs.traceSkywalking.V3.tags] # 自定义标签组
tag1 = "tag1" # 自定义标签1
tag2 = "tag2" # 自定义标签2
tag3 = "tag3" # 自定义标签3
埋点配置
通过 Skywalking 采集数据需要根据当前项目的开发语言引入对应的 Agent,然后按照 Agent 的文档项目进行埋点,对于 DataFlux 的链路数据采集来说,只需要将 Skywalking 中的数据上报地址配置为上一步中获取到的链路数据接收地址即可(相当于将 Datakit 当做 Skywalking Server)。
这里以 Skywalking 的 java-agent
客户端运行 JAR file 作为示范
第一步,下载
第二步,设置上报地址
设置 collector.backend_service
, 将其上报地址设置成 Datakit 接收trace数据的监听地址和端口。
通过改配置
通过命令行参数方式
参数为
-Dskywalking.collector.backend_service
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=[your service name] -Dskywalking.collector.backend_service=[your url]:11800 -jar yourApp.jar # V2 java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=[your service name] -Dskywalking.collector.backend_service=[your url]:13800 -jar yourApp.jar # V3
第三步,执行 Jar 文件
其他语言,依次类推,配置成功后约 1-2 分钟即可在 DataFlux Studio 的 「链路追踪」中查看相关的链路数据。
采集数据
具体请参考 链路数据采集文档中的字段说明
事件
该数据源无关键事件数据
日志
该数据源无日志
FAQ
配置好后为什么在 DataFlux Studio 中看不到数据?
请按照下面的项依次进行检查:
- 确认更改了 DataKit 的相关配置文件后是否重启 DataKit
- 请确认在 DataKit 中配置的上报地址是否正确,不要忘记配置 source 和 version 参数
- 请确认采集链路数据的网络环境是否能访问 DataKit 的链路数据接收地址
- 开启 DataKit Debug 模式(在 datakit.conf 中将
log_level
设置为debug
,重启),查看日志datakit.log
,如果有链路数据,又产生如下的 debug 日志。