springcloud--sleuth日志跟踪(十四)

author author     2023-05-07     226

关键词:

参考技术A   Spring Cloud Sleuth[sluːθ]是Spring Cloud提供的分布式系统服务链追踪组件,它大量借用了Google的Dapper,Twitter的Zipkin。
场景:

疑问:

  在微服务中,通常根据业务模块分服务,项目中前端发起一个请求,后端可能跨几个服务调用才能完成这个请求(如下图)。

  如果系统越来越庞大,服务之间的调用与被调用关系就会变得很复杂,假如一个请求中需要跨几个服务调用,其中一个服务由于网络延迟等原因挂掉了,那么这时候我们需要分析具体哪一个服务出问题了就会显得很困难。Spring Cloud Sleuth服务链路跟踪功能,就可以帮助我们快速的发现错误根源以及监控分析每条请求链路上的性能等等。
  Spring Cloud Sleuth是一个在应用中实现日志跟踪的强有力的工具。使用Sleuth库可以应用于计划任务 、多线程服务或复杂的Web请求,尤其是在一个由多个服务组成的系统中。当我们在这些应用中来诊断问题时,即使有日志记录也很难判断出一个请求需要将哪些操作关联在一起。
  如果想要诊断复杂操作,通常的解决方案是在请求中传递唯一的ID到每个方法来识别日志。 而Sleuth可以与日志框架Logback、SLF4J轻松地集成,通过添加独特的标识符来使用日志跟踪和诊断问题。
  微服务跟踪(sleuth)其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
SpringCloudSleuth有4个特点:

配置应用名称,以便日志输出。

说明:
application name — 应用的名称,也就是application.properties中的spring.application.name参数配置的属性。
traceId — 为一个请求分配的ID号,用来标识一条请求链路。
spanId — 表示一个基本的工作单元,一个请求可以包含多个步骤,每个步骤都拥有自己的spanId。一个请求包含一个TraceId,多个SpanId
export — 布尔类型。表示是否要将该信息输出到类似Zipkin这样的聚合器进行收集和展示。

3f575919b0df993a:traceId相同
3f575919b0df993a,05fddf5ed5bbbf59: spanId不同。
Sleuth将traceId传入了异步方法并创建了以新的 spanId ,代表这是同一个请求但进入了另一个处理阶段,由一个异步线程来执行。

可以看到Sleuth为每个任务实例都创建一个新的traceId和spanId。
Spring Cloud Sleuth可以应用在各种各样的单一Web应用中。我们可以使用这项技术轻松地为一个请求采集日志,即使请求跨越多个线程。帮助我们在多线程环境下进行清晰的调试,通过识别traceId和spanId来确定每一个操作和操作中的每一步,这样可以减轻我们做日志分析的复杂性。

注:当文件名为logback-spring.xml时 不需要配置logging.config

sleuth中的一些术语:

第十单元系统日志

第十单元系统日志 每个程序都会产生日志,采集管理日志的服务是rsyslog,采集来的日志会存放在/var/log/下的文件里 一系统日志默认分类 /var/log/messages:系统服务及日志,包括服务的信息,报错等等/var/log/secure:系统... 查看详情

过滤十一点到十二点的程序日志,包括以空行开头的日志

#!/bin/bashfor i in {1..5}do   echo workspace${i} >> /opt/server.log   TAIL=$(grep -n ‘^[11‘ /data/serverlogs/workspac 查看详情

谷歌云跟踪 + Gcloud 登录日志查看器

】谷歌云跟踪+Gcloud登录日志查看器【英文标题】:Googlecloudtrace+Gcloudlogginginlogsviewer【发布时间】:2021-02-1516:36:49【问题描述】:我在使用谷歌云kubernetes时遇到了谷歌云日志记录和谷歌云跟踪的问题我有一个使用gcloudpubsub主题的... 查看详情

日志没有被分离,或者跟踪后日志没有信息。

日志没有被分离,或者跟踪后日志没有信息。解决方法:1.在/etc/rsyslog.conf中:取消注释:#$ModLoadimudp==》$ModLoadimudp#$UDPServerRun514==》$UDPServerRun514重启rsyslog服务servicersyslogrestartlk4;2.核实services文件grep514/etc/services显示:syslog514 查看详情

目标跟踪学习系列十:struck:structuredoutputtrackingwithkernels代码调试

本来想看完代码再具体的写的。可是有人问了就先贴出来吧!代码调试中会遇到的一些的问题。首先,你没有代码的话能够在这里下载:http://download.csdn.net/detail/u012192662/8042147然后须要安装opencv(我想假设你是做这个应该有的)... 查看详情

tailf跟踪日志文件

1.命令功能tailf跟踪日志文件增长,作用跟tail–f相同。tailf将输出文件的最后10行,然后等待文件增长。2.语法格式tailf option file参数说明参数参数说明-n指定显示文件最后的行数(默认显示最后10行)3.使用范例范例1tailf跟踪... 查看详情

entityframework实体框架使用trackerenableddbcontext进行操作日志跟踪

在EF实体框架中进行日志跟踪,一般都是自己写个Log实体类,在数据保存时进行属性原始值验证来进行日志跟踪。当然还可以使用一些第三扩展库例如:entityframeworkextended进行日志记录,本文介绍如何使用TrackerEnabledDbContext进行操... 查看详情

Google StackDriver:如何将其他日志与跟踪日志关联(和嵌套)?

】GoogleStackDriver:如何将其他日志与跟踪日志关联(和嵌套)?【英文标题】:GoogleStackDriver:HowdoIcorrelate(andnest)otherlogswithtracelogs?【发布时间】:2020-02-1311:46:48【问题描述】:请帮忙,我已经3天没有成功了:/我正在向GoogleCloudRun... 查看详情

跟踪日志位置,在哪里查看它们

】跟踪日志位置,在哪里查看它们【英文标题】:Tracelogslocation,wheretoviewthem【发布时间】:2014-10-0619:32:06【问题描述】:在开发MVC或WCF应用程序时,您在哪里看到Trace.Write("");日志?什么是正确的看点?【问题讨论】:【... 查看详情

十syslog日志与loganalyzer日志管理

10.1、rsyslog简介 syslog是一个历史悠久的日志系统。几乎所有的UNIX和Linux操作系统都采用syslog进行系统日志的管理和配置。Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息。syslog可以根据信息的来源... 查看详情

.NET 跟踪日志查看器

】.NET跟踪日志查看器【英文标题】:.NETTracelogviewer【发布时间】:2011-04-0113:40:45【问题描述】:我在.NET中启用了跟踪日志记录来输出来回的网络数据,因此我可以看到发送到Web服务的SOAP请求。这似乎是我无法在其自身和Web服务... 查看详情

springboot日志跟踪

参考技术A随着分布式的发展,开发问题排查过程的日志分析逐渐复杂,现在一般通过ELK系统整合分布式系统的所有日志进行分析,此时需要一个全局的日志id进行链路跟踪。Log4j和Logback提供MDC,可以实现基于ThreadLocal级别的数据... 查看详情

第二十三周微职位elk日志系统

利用ELK+redis搭建一套nginx日志分析平台。logstash,elasticsearch,kibana怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。其次,需要有个队列,redis的list结构正好可以作... 查看详情

springcloud分布式日志链路跟踪

首先要明白一点,为什么要使用链路跟踪?当我们微服务之间调用的时候可能会出错,但是我们不知道是哪个服务的问题,这时候就可以通过日志链路跟踪发现哪个服务出错。它还有一个好处:当我们在企业中,可能每个人都负... 查看详情

四十访问日志不记录静态文件访问日志切割静态元素过期时间

一、访问日志不记录静态文件访问日志:可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题,比如当有攻击时,是可以通过查看日志看到一些规律的。静态元素:一个网站有很多元素,比如图片、js、css等... 查看详情

谷歌分析事件跟踪作为客户端错误日志[关闭]

】谷歌分析事件跟踪作为客户端错误日志[关闭]【英文标题】:GoogleAnalyticsEventTrackingAsClientSideErrorLog[closed]【发布时间】:2010-12-1517:47:10【问题描述】:我目前正在使用GoogleAnalyticsEventTracking来跟踪我的网络应用程序中的用户界面... 查看详情

sqlserver跟踪标志3226

...默认情况下,每个数据库成功备份都会在SQLServer错误日志中记录一条消息。对所有备份类型、所有数据库都会发生这种情况。如果您有大量数据库且频繁执行事务日志备份,这可能是一个问题。这可能会导致您的SQLServer... 查看详情

具有相同跟踪 ID 的 Stackdriver 日志条目未关联

】具有相同跟踪ID的Stackdriver日志条目未关联【英文标题】:StackdriverlogentrieswithsametraceIDnotassociated【发布时间】:2020-04-0913:22:31【问题描述】:我在GKE上托管了一个NodeJS项目,并启用了traceagent和Stackdriver日志记录。该项目正在使... 查看详情