zoukankan      html  css  js  c++  java
  • spring cloud链路追踪组件sleuth和zipkin

    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/

              

         

  • 相关阅读:
    末学者笔记--KVM虚拟化存储管理(3)
    离线安装docker-ce
    OpenStack各组件的常用命令
    docker容器的基本命令
    nfs samba文件共享服务
    kvm虚拟机管理(创建、连接)
    虚拟化kvm的搭建
    python(pymysql操作数据库)
    三大特征 封装 继承 多态
    面向对象
  • 原文地址:https://www.cnblogs.com/programer-xinmu78/p/10562157.html
Copyright © 2011-2022 走看看