文档章节

spring cloud链路追踪组件sleuth和zipkin

o
 osc_n6euf5h6
发布于 2019/03/19 23:08
字数 799
阅读 46
收藏 0

精选30+云产品,助力企业轻松上云!>>>

spring cloud链路追踪组件sleuth

   

主要作用就是日志埋点

操作方法

1、增加依赖

            <dependency>

     <groupId>org.springframework.cloud</groupId>

     <artifactId>spring-cloud-starter-sleuth</artifactId>

         </dependency>

              

2、访问http://192.168.136.128:8651/api/v1/orderfeignhystrix/save?userId=2&productId=2 可以看到日志

   

2019-03-19 20:48:09.496 INFO [orderfeignhystrix-service,e1a008f418104d9f,38cbc892167e3427,false] 4084 --- [ODUCT-SERVICE-1] c.n.u.concurrent.ShutdownEnabledTimer : Shutdown hook installed for: NFLoadBalancer-PingTimer-PRODUCT-SERVICE

[orderfeignhystrix-service,e1a008f418104d9f,38cbc892167e3427,false]

日志内容为

            1)、第一个值,spring.application.name的值

            2)、第二个值,96f95a0dd81fe3ab ,sleuth生成的一个ID,叫Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID        

            3)、第三个值,852ef4cfcdecabf3、spanid 基本的工作单元,获取元数据,如发送一个http

            4)、第四个值:false,是否要将该信息输出到zipkin服务中来收集和展示。

3、增加logger打点

    在商品和订单实现中均增加

    ProductServiceImpl和ProductOrderFeignHystrixServiceImpl实现类

    logger定义,引入org.slf4j.Logger;

    定义

     private final Logger logger = LoggerFactory.getLogger(getClass());

        并分别在订单和商品中增加埋点:

logger.info("save");

logger.info("findById");

    OpenTracing 已进入 CNCF,正在为全球的分布式追踪,提供统一的概念和数据标准。

        通过提供平台无关、厂商无关的 API,使得开发人员能够方便的添加(或更换)追踪系统的实现。

    商品埋点日志

    2019-03-19 21:08:26.581 INFO [product-service,23fccb4a5f0b31ff,b829bfe52814d0b3,false] 4880 --- [nio-8765-exec-6] l.x.p.service.impl.ProductServiceImpl : findById

    订单埋点日志:

    2019-03-19 21:08:26.587 INFO [orderfeignhystrix-service,23fccb4a5f0b31ff,e4d3e5c6103cc13e,false] 2472 --- [rixController-2] .s.i.ProductOrderFeignHystrixServiceImpl : save

    同一个调用(trace_id)23fccb4a5f0b31ff使用了两个不同的服务b829bfe52814d0b3(商品服务)和e4d3e5c6103cc13e(订单服务)

每次重新调用的trace id和span Id都会不一样。

   

4、Zipkin可视化链路追踪系统部署

    1)、zipkin.io为官网,由collector 日志搜集器/Storage 存储/Restful API API接口/Web UI web页面

    2)、介绍:大规模分布式系统的APM工具(Application Performance Management),基于Google Dapper的基础实现,和sleuth结合可以提供可视化web界面分析调用链路耗时情况            

    3)、启动zipkin

        a、docker启动:docker run -d -p 9411:9411 openzipkin/zipkin

        b、访问zipkin :http://192.168.136.129:9411/ 可以打开一个zipkin界面

          

5、知识拓展 openTracing

    OpenTracing 已进入 CNCF,正在为全球的分布式追踪,提供统一的概念和数据标准。

        通过提供平台无关、厂商无关的 API,使得开发人员能够方便的添加(或更换)追踪系统的实现。

            推荐阅读:

            http://blog.daocloud.io/cncf-3/

            https://www.zhihu.com/question/27994350

            https://yq.aliyun.com/articles/514488?utm_content=m_43347

6、sleuth收集跟踪信息通过http请求发送给zipkin server,zipkinserver进行跟踪信息的存储以及提供Rest API即可,Zipkin UI调用其API接口进行数据展示

        默认存储是内存,可也用mysql、或者elasticsearch等存储

7、加入依赖(product 和order中)

        <dependency>

         <groupId>org.springframework.cloud</groupId>

         <artifactId>spring-cloud-starter-zipkin</artifactId>

        </dependency>

   

        里面包含 spring-cloud-starter-sleuth、spring-cloud-sleuth-zipkin

8、配置yml中增加zipkin服务器配置(每个服务中增加的配置,包括zuul服务)

zipkin:

base-url: http://192.168.136.129:9411

    配置sleuth采样百分比

     sleuth:

        sampler:

         probability: 1

9.重启docker

        docker ps

        docker stop 70b31fb1e3f2

        docker start 70b31fb1e3f2

10、重启多次后正常 ,直至sleuth输出日志中第四个字段为true,即可展示

        http://192.168.136.129:9411/zipkin/

          

     

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
SpringCloud(七)之SpringCloud的链路追踪组件Sleuth实战,以及 zipkin 的部署和使用

一、前言 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案 ,并且兼容了zipkin,提供了REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序 。 Sleuth 是个组件...

osc_ypm51igr
2019/02/21
16
0
Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】

随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时...

吴伟祥
2019/03/21
161
0
spring boot 2.0.3+spring cloud (Finchley)7、服务链路追踪Spring Cloud Sleuth

参考:Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】 Spring Cloud Sleuth 是Spring Cloud的一个组件,主要功能是在分布式系统中提供服务链路追踪的解决方案。 微服...

osc_rkq70frl
2018/07/02
4
0
Spring Cloud Sleuth进阶实战

为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难...

门非流
2018/05/24
0
0
Spring Cloud Sleuth进阶实战

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 https://blog.csdn.net/forezp/article/details/76795269 转载请标明出处...

方志朋
2017/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

紫外线消毒灯EPA注册有请小蔡

臭氧消毒器EPA注册,紫外线消毒灯EPA注册,UV水质过滤器EPA注册,UV空气过滤器EPA注册,UV灭蚊灯EPA注册,超声驱虫设备EPA注册,UV消毒器EPA注册,高频驱鸟器EPA注册,电子驱鼠器EPA注册 二、...

IECEE证书注册
28分钟前
11
0
带有PHP的jQuery Ajax POST示例 - jQuery Ajax POST example with PHP

问题: I am trying to send data from a form to a database. 我正在尝试将数据从表单发送到数据库。 Here is the form I am using: 这是我使用的表格: <form name="foo" action="form.ph......

法国红酒甜
29分钟前
16
0
小程序上传帖子(含有文字图片的微信验证)

public.js var graceJS = require('../../utils/grace.js');import { config } from '../../config.js'Page({ /** * 页面的初始数据 */ data: { imglist: [], title:'......

子枫Eric
52分钟前
28
0
如今大火的算法框架TensorFlow,都有哪些值得一看的好书呢?

TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。 Te...

程序员知识码头
53分钟前
15
0
聊聊rocketmq-client-go的pushConsumer

序 本文主要研究一下rocketmq-client-go的pushConsumer pushConsumer rocketmq-client-go-v2.0.0/consumer/push_consumer.go type pushConsumer struct {*defaultConsumerqueueFlowCont......

go4it
53分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部