Logback 集成 Skywalking Trace ID 并结合skywalking agent源码进行分析

编程入门 行业动态 更新时间:2024-10-11 19:18:56

Logback 集成 Skywalking Trace ID 并结合skywalking agent源码<a href=https://www.elefans.com/category/jswz/34/1710023.html style=进行分析"/>

Logback 集成 Skywalking Trace ID 并结合skywalking agent源码进行分析

Logback集成skwalking的traceId

本文主要讲述在工程的logback文件中集成skywalking的traceId,以便在日志中打印对应的traceId


文章目录

  • Logback集成skwalking的traceId
  • 前言
  • 一、如何集成TraceID
  • 二、使用步骤
    • 1.引入库
    • 2.修改logback文件
    • 3.移动agent插件
    • 4.观察结果
  • 总结


前言

skywalking是一个非常优秀的国产APM系统,主要开发人来自华为吴晟团队,2019年入住Apache,成为顶级项目,支持java、、NodeJS等探针,数据存储支持H2、ElasticSearch,采用字节码增强技术代码无侵入,粒度相对较粗,性能优越,且支持云原生,目前增长势头强劲,社区活跃,无语言障碍。


一、如何集成TraceID

首先在maven引入apm-toolkit-logback-1.x 插件,该插件目前由skywalking提供。之后再logback中添加tid到pattern中。最后将agent插件中路径activations/apm-toolkit-logback-1.x-activation-8.7.0.jar移动到plugins中,然后再次启动

二、使用步骤

1.引入库

由于本人是基于8.7.0进行开发的故版本号选择8.7的版本

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

2.修改logback文件

(示例):

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/apps/logs/app.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>/apps/logs/app-%d{yyyy-MM-dd}-%i.log</fileNamePattern><MaxHistory>10</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>200MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><!-- 日志格式中添加 %tid 即可输出 trace id --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %tid %logger{50} - %msg%n</pattern>
<!--                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %tid %t %logger{50}: %msg%n</pattern>--></layout></encoder></appender>

3.移动agent插件

:将agent路径activations/apm-toolkit-logback-1.x-activation-8.7.0.jar移动到plugins中。

4.观察结果

:结果如下

2022-01-17 13:50:50.250 [http-nio-9013-exec-1] INFO  TID:1baac609bcd549f9bde79acba8c1d34a.33.16423986502360001 o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-01-17 13:50:50.250 [http-nio-9013-exec-1] INFO  TID:1baac609bcd549f9bde79acba8c1d34a.33.16423986502360001 org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
2022-01-17 13:50:50.263 [http-nio-9013-exec-1] INFO  TID:1baac609bcd549f9bde79acba8c1d34a.33.16423986502360001 org.springframework.web.servlet.DispatcherServlet - Complete

可以看出打印日志中包含了TID

总结

通过先引入skywalking的jar包,然后在 Logback 配置文件中的 pattern 中添加 %tid,就可以在日志行中输出调用链ID。
建议:后续可以通过修改logstash 配置解析文件就可以在es中存储包含traceid的日志记录,之后可通过skywalking连接日志存储ES获取数据,可完成对日志进行查询和链路的关联。

Logback 集成 Skywalking Trace ID 并结合skywalking agent源码进行分析(二)

更多推荐

Logback 集成 Skywalking Trace ID 并结合skywalking agent源码进行分析

本文发布于:2024-03-08 13:13:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720976.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进行分析   并结合   源码   Trace   Logback

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!