在分布式链路跟踪中,通过为应用进行日志关联设置,您可以在单链路显示时查看某一个链路环节所对应的日志信息。
日志关联原理
对应用日志输出的配置进行修改,更改日志输出 Pattern,在应用日志中,输出 TraceId 及 SpanId。
在云端应用中,设置需要采应用日志的应用名称,并配置日志名,及日志路径,进行日志采集。
在链路上点击应用节点,应用将会从日志中根据应用名、TraceId 以及 SpanId 查找并显示对应的日志。
操作步骤
配置本地应用日志打印
要实现链路与应用日志关联,本地应用日志打印时必须正确输出 TraceId 及 SpanId。分布式链路跟踪的 Tracer 集成了 SLF4J MDC 功能,所以您只需简单修改日志配置文件中的日志输出 Pattern,即可实现日志输出 Tracer 上下文 TraceId 以及 SpanId。
确保 SOFABoot 应用引入了 Tracer 依赖。
<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>tracer-enterprise-sofa-boot-starter</artifactId> </dependency>
在 PatternLayout 中增加
%X{SOFA-TraceId}
和%X{SOFA-SpanId}
配置。<PatternLayout> <pattern>%d %-5p %-32t [%X{SOFA-TraceId},%X{SOFA-SpanId}] - %m%n</pattern> </PatternLayout>
完成以上配置后,实际输出的应用日志如下示例:
2019-12-1023:59:50.214,[0a19018e157599359021261502137,0.1.1], spring mvc is invoked.
云端添加应用日志
进入分布式链路跟踪控制台页面,在左侧导航栏选择 设置。
如您是第一次使用日志关联功能,您需要前往 RAM 控制台,创建并获取具有 AliyunLogFullAccess 权限策略的 AccessKey 及 AccessKeySecret。详细操作步骤,可参见 创建 AccessKey。
获取 AK、SK 后,即可返回 分布式链路跟踪 > 设置,输入相应的 Access Key 与 Access Secret。
在 日志配置 页,单击 添加应用,在弹出的窗口中填入正确的应用名称后单击 确定。
说明应用名必须与系统打印日志中的
appName
一致,否则无法获取应用数据。应用添加成功后,单击 添加日志。
在弹出的 添加日志 窗口,设置日志名称、全路径等信息,并单击 确定。
查看应用关联日志
您可以前往链路搜索页面,找到该应用的相关链路,查看链路详情。在链路详情页,单击应用名右侧的日志图标,即可查看该应用的相关日志,如下图所示。