ITPub博客

首页 > IT职业 > IT生活 > 使用Spring Cloud Sleuth在应用中进行日志跟踪

使用Spring Cloud Sleuth在应用中进行日志跟踪

IT生活 作者:jitaolee 时间:2021-09-09 09:18:44 0 删除 编辑

Spring Cloud Sleuth是一个在应用中实现日志跟踪的强有力的工具。使用Sleuth库可以应用于计划任务 、多线程服务或复杂的Web请求,尤其是在一个由多个服务组成的系统中。当我们在这些应用中来诊断问题时,即使有日志记录也很难判断出一个请求需要将哪些操作关联在一起。

如果想要诊断复杂操作,通常的解决方案是在请求中传递唯一的ID到每个方法来识别日志。而Sleuth可以与日志框架Logback、SLF4J轻松地集成,通过添加独特的标识符来使用日志跟踪和诊断问题。

http://localhost:8080/same-span,查看日志
2018-04-16 16:35:54.151  INFO [Sleuth Tutorial,0afe3e67168fce4f,0afe3e67168fce4f,false] 5968 --- [nio-8080-exec-1] c.p.s.cloud.sleuth.SleuthController      : Same Span2018-04-16 16:35:55.161  INFO [Sleuth Tutorial,0afe3e67168fce4f,0afe3e67168fce4f,false] 5968 --- [nio-8080-exec-1] c.p.spring.cloud.sleuth.SleuthService    : Doing some work

日志的格式为:[application name, traceId, spanId, export]

  • application name — 应用的名称,也就是application.properties中的spring.application.name参数配置的属性。

  • traceId — 为一个请求分配的ID号,用来标识一条请求链路。

  • spanId — 表示一个基本的工作单元,一个请求可以包含多个步骤,每个步骤都拥有自己的spanId。一个请求包含一个TraceId,多个SpanId

  • export — 布尔类型。表示是否要将该信息输出到类似Zipkin这样的聚合器进行收集和展示。

可以看到,TraceId和SpanId在两条日志中是相同的,即使消息来源于两个不同的类。这就可以在不同的日志通过寻找traceid来识别一个请求。

http://localhost:8080/async,查看日志如下:
2018-04-16 16:55:06.859  INFO [Sleuth Tutorial,4bc16602ac8262d5,4bc16602ac8262d5,false] 5968 --- [nio-8080-exec-6] c.p.s.cloud.sleuth.SleuthController      : Before Async Method Call2018-04-16 16:55:06.872  INFO [Sleuth Tutorial,4bc16602ac8262d5,4bc16602ac8262d5,false] 5968 --- [nio-8080-exec-6] c.p.s.cloud.sleuth.SleuthController      : After Async Method Call2018-04-16 16:55:06.905  INFO [Sleuth Tutorial,4bc16602ac8262d5,4d216310c71e9c22,false] 5968 --- [   MyExecutor-1] c.p.spring.cloud.sleuth.SleuthService    : Start Async Method2018-04-16 16:55:07.905  INFO [Sleuth Tutorial,4bc16602ac8262d5,4d216310c71e9c22,false] 5968 --- [   MyExecutor-1] c.p.spring.cloud.sleuth.SleuthService    : End Async Method

通过例子可以看到Sleuth将traceId传入了异步方法并创建了以新的spanId,代表这是同一个请求但进入了另一个处理阶段,由一个异步线程来执行。

原文出处

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3062/viewspace-2809395/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-13

  • 博文量
    70
  • 访问量
    437