阿里云 EDAS Java服务日志中打印调用链TraceId

最近要搭建阿里云的日志服务SLS,收集服务日志,进行统一的搜索查询。但遇到一个问题如何在日志中打印链路的TraceId,本文章记录一下对EDAS免费的解决方法。

先看一下阿里官方文档 业务日志关联调用链的TraceId信息

从文档上看,想要在日志中打印traceId,必须要
1.先开通【专家版】ARMS
2.接入应用,安装agent
3.打开关联业务日志与TraceId
4.日志的Layout的Pattern属性中添加%X{EagleEye-TraceID}配置
步骤进行配置,缺一不可。 这个问题也提了工单确认过了。

但是开通【专家版】ARMS 是需要收费的,并且收费不便宜。要收费 麻烦了 预算不支持,怎么办? 后来领导的一句话「EDAS 本就集成了很多阿里的服务」给了我灵感 。哈哈 有办法了。

通过shell登录服务器,通过查看运行的进程,看到已经有agent「arms-bootstrap-1.7.0-SNAPSHOT.jar」存在。 那么必要条件第二条已经满足了。
然后看如何实现第三条:打开关联业务日志与TraceId。

  1. 进入EDAS管理平台,应用管理 -> 应用列表 找到对应的服务点进去。
  2. 进入服务后,点击 应用监控 -> 接口调用 点击接口 -> 调用链查询 -> 查看日志
    阿里云 EDAS Java服务日志中打印调用链TraceId_第1张图片

会新打开一个页面,点击 前往绑定。
阿里云 EDAS Java服务日志中打印调用链TraceId_第2张图片

会自动定位到应用日志关联配置的锚点。选择 日志服务 勾选【关联业务日志与TraceId】
阿里云 EDAS Java服务日志中打印调用链TraceId_第3张图片

其他无需修改,滚动到页面的最末端,点击「保存」即可。

OK,这样第二、第三条都满足了,第四条自己在应用的logback.xml日志文件配置就OK了,那就是第四条也能满足了。

然后,重启服务发现traceId已经打印出来了。

总结起来,其实主要的第二和第三条,安装agent 和 开启关联业务日志与TraceId。

你可能感兴趣的:(阿里云)