SkyWalking结合Logback获取全局唯一标识 trace-id 记录到日志中

导读:本篇文章讲解 SkyWalking结合Logback获取全局唯一标识 trace-id 记录到日志中,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

为什么要获取trace-id

  通过上文Docker-Compose搭建单体SkyWalking我们搭建了SkyWalking服务,我们需要在日志中记录下来每次请求的唯一标识(trace-id),这样就可以在SkyWalking定位到有问题的trace-id,然后通过这个trace-id我们就可以通过日志系统去定位到相关的日志,从而发现并解决问题。

  最开始和我说想法的老哥,想自己实现一套trace-id,以便满足于如果想替换追踪工具,不用改太多代码。想法是很好的,但是经过查询SkyWalking的GIT issue ,发现SW并没有提供这种自定义trace-id的功能,

决定获取SW生成的全局trace-id,这里主要是记录下实现方式,这里使用了开源组件完成的效果。

配置过程

  在pom中添加依赖

<dependency>
      <groupId>org.apache.skywalking</groupId>
      <artifactId>apm-toolkit-logback-1.x</artifactId>
      <version>6.2.0</version>
</dependency>

  这是一个skywalking的工具,通过这个工具可以得到trace-id

  修改logback.xml中的Appender的Pattern

<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
             <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n</pattern>
        </layout>
</encoder>

这里需要注意的是

  • Logback中的encoder本身是包含一个layout的,在有此Appender中是可以直接用encoder中的layout部分的,鉴于本人使用的是Kafka-appender这个插件,尽量通用就写成这样了。
  • encoder的class是LayoutWrappingEncoder,不是PatternLayoutEncoder!
  • 使用%tid 来占trace-id的位置,默认TID:N/A,当有请求调用时,会显示trace-id
  • 这种方式支持探针与注解

测试

  使用探针参数添加到LogDemo中测试,Demo地址: https://github.com/hellxz/LogDemo/tree/get-skywalking-trace-id ,注意分支

  Java只需要在VM options中追加格式为

-javaagent:/path/to/path/skywalking-agent.jar 
-Dskywalking.agent.service_name=YOUR_APP_NAME 
-Dskywalking.collector.backend_service=OAP_SEVER_HOST:gRPC_PORT
举例如下:
-javaagent:D:/skywalking-agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=logDemo 
-Dskywalking.collector.backend_service=10.2.7.70:11800

  启动项目,如果没有kafka输出,可以注释掉,只留下console输出

  我们可以看到默认的启动打出的日志是这样的

SkyWalking结合Logback获取全局唯一标识 trace-id 记录到日志中

  访问测试接口http://localhost:8000/test/aaa,查看日志

SkyWalking结合Logback获取全局唯一标识 trace-id 记录到日志中

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/70278.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!