构建sleuth+zipkin全链路监控系统
文章平均质量分 96
构建sleuth+zipkin全链路监控系统
sharedCode
拥有6年开发经验,目前担任某公司的架构师岗位。
展开
-
分布式链路追踪技术对比
精品文章sharding-jdbc源码分析Eureka源码解析rocketMq源码深度解析xxl-job分布式定时任务构建sleuth+zipkin全链路监控系统深入理解dubbo实现原理方案选择本文最终选择了zipkin+sleuth做二次开发,这样做灵活性比较大一点。 有兴趣的可以进我博客看一下,我会将我二次开发过程当中遇到的问题发出来。搭建环境sleu......原创 2018-03-26 16:43:10 · 622389 阅读 · 1 评论 -
sleuth+zipkin+kafka+elasticsearch搭建分布式链路追踪系统(一)
环境准备kafka的安装教程,https://blog.csdn.net/u012394095/article/details/81385414elasticsearch安装 非常简单,从网上下载安装包,在本机上安装就好了。搭建zipkin-serverzipkin-parent的pom文件 <properties> <zip...原创 2018-09-07 11:14:49 · 7100 阅读 · 2 评论 -
sleuth+zipkin ui界面详解(二)
上一篇博文中我们将链路追踪系统的DEMO搭建好了,本文主要是介绍zipkin-ui界面的功能,让大家了解ui界面中一些参数的意义首页首页里面主要承载了trace的查询功能,根据不同的条件,搜索出数据来trace详情span详情这个图中,需要注意的是相对时间和调用行为调用行为分如下四种:cs - Client Send : 客户端已经提出了请求...原创 2018-09-10 10:17:22 · 11805 阅读 · 10 评论 -
zipkin-dependencies全局调用链生成(三)
问题背景上一章我们使用了sleuth+zipkin+kafka+elasticsearch搭建了一个简单的分布式链路追踪系统 ,通过接口调用调试,如果已经自己试过的朋友肯定知道,默认全局的调用链是不会自动生成的 , 通过看官网的文档,我们可以看到,使用elasticsearch作为存储的话,是需要使用一个 “spark job”来生成全局的调用链的。https://github.com/...原创 2018-09-12 10:12:54 · 4345 阅读 · 3 评论 -
zipkin trace数据结构说明(四)
前言使用zipkin做二次开发,第一步是要对zipkin整体有一个了解,能够简单的搭建DEMO跑一跑,前面两篇文章,就是做这个用的,接下来最重要的一点,就是了解他存储在elasticsearch的数据结构。 span结构zipkin存储span的话,存在elasticsearch里面,每一天的数据自动创建一个index, 格式如下zipkin:span-2018-08-06...原创 2018-09-13 08:54:19 · 3093 阅读 · 1 评论 -
sleuth+zipkin日志输出traceId(五)
日志配置在需要追踪的示例应用中,修改日志配置,这里使用springboot构建,logback作为日志输出工具<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] [%thread] %-5level %logger{50...原创 2018-09-14 10:17:09 · 8294 阅读 · 0 评论 -
sleuth+zipkin核心配置源码解析(七)
源码入口直接查看sleuth的starter包,找到spring.factories文件,基于springboot的自动配置机制# Auto Configurationorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.cloud.sleuth.autoconfig....原创 2018-09-17 11:21:54 · 2007 阅读 · 1 评论 -
sleuth+zipkin系列之禁用URI调用链(八)
问题背景在实际生产中,我们有可能会碰到有些接口,有些URI我们不想追踪,不想产生追踪数据,这个时候可以使用sleuth的追踪跳过的机制,默认sleuth已经禁用了如下URI,下面的URI访问系统的时候是不会被追踪的。spring: sleuth: web: skip-pattern: "/api-docs.*|/autoconfig|/configprops|/dump...原创 2018-09-18 10:19:59 · 2147 阅读 · 0 评论 -
sleuth+zipkin自定义采样率(九)
问题背景zipkin原生提供的采样率设置,仅能针对全局进行设置,无法做到精细化设置,比如,有些接口我们觉得比较重要,所以想采样率高一点,有些接口很简单,我们希望不采集或者采集率设置低一点,原生是没办法做到的,需要完成这个功能,需要我们重写他的采样率计算器。配置重写下面的是他原生的配置,由于它是使用了@ConditionalOnMissingBean注解的,也就是容器中不存在这个Bean的时候...原创 2018-09-20 13:55:34 · 3912 阅读 · 3 评论 -
sleuth+zipkin请求URI路径参数问题(十)
问题背景应用系统中controller代码如下@RequestMapping("/test/{id}")public String test(@PathVariable("id")Integer id) throws Exception { return providerClient.provider();}通过@PathVariable注解,在uri中携带参数,这种做法在业界也是...原创 2018-09-21 11:34:32 · 1651 阅读 · 0 评论 -
sleuth+zipkin请求URI路径动态参数-改造方案(十一)
前言上一节我们了解到,如果URI上面有动态参数,那么默认的sleuth拿到的不是真实的接口路径,这会导致后续我们做接口调用链的统计的时候会有问题,本文基于 sleuth1.2.6版本, 低于这个版本,这种方案无效。新建Filter新建traceLocalFilter , 该类继承TraceFilter。 这个类里面的源码从TraceFilter里面拷贝,比较原装的代码还是比较好的,我们...原创 2018-09-25 10:25:15 · 1054 阅读 · 0 评论 -
zipkin+sleuth定时任务生成全局调用链(十二)
问题背景github提供的方式,是一个zipkin-dependencies-xxx.jar ,通过启动这个jar包生成调用链,这个jar包启动后,执行一次线程就会自动结束了,这在生产环境是不可忍受的。准备在github上下载最新的 release源码。https://github.com/openzipkin/zipkin-dependencies/releases/tag/releas...原创 2018-09-26 10:12:56 · 1435 阅读 · 3 评论 -
sleuth+zipkin系列之异常处理(十三)
前言本文的异常处理分为两种,第一种讲的是zipkin原生的异常处理,第二种就是针对实际业务做异常处理的扩展,本文的重点讲的是如何根据自身的实际情况定制异常处理。zipkin通过对span打tag,打上error的tag表示这次调用出错了。zipkin异常处理zipkin的默认会捕获没有被应用程序catch的异常,这是什么意思?这句话的意思就是,加入你程序发生了错误,如果异常被你程序给捕获...原创 2018-09-28 10:01:54 · 1809 阅读 · 3 评论 -
zipkin+sleuth基于apollo配置中心动态刷新采样率(十四)
前言前文我们介绍过,自定义采样率,但是为了满足项目的灵活性,我们最好可以提供在程序运行过程中,可以动态的修改 采样率等信息,如此才能应对项目运行当中碰到的各种问题。项目运行过程中,我们可能会遇到下面这些问题。1.某个接口的采样率现在比较高? 我想调低一点怎么办?2.这个接口太频繁,并且没有追踪的意义,我想禁用掉怎么办?3.全局采样率的动态调整默认zipkin是不支持上面的这些功能的,但...原创 2018-09-29 10:13:23 · 1401 阅读 · 0 评论