• springcloud集成链路追踪组件skywalking


            链路追踪主要是查看微服务各服务的健康状态以及请求响应时间,哪个服务停了,或者响应时间慢了,辅助监控作用。

            目前常见的几款开源链路追踪产品:cat(大众点评),zipkin(Twitter),pingpoint(韩国naver),skywalking(吴晟)。

             cat接入需要添加依赖及改动代码,zipkin需要添加依赖,pingpoint和skywalking使用java agent技术,0侵入。无需改动代码。目前用的比较多的应该是zipkin和skywalking,本文讨论如何接入skywalking,看官网Downloads | Apache SkyWalking

             2022.9.2更新了版本9.2.0说明项目一直在维护的。一开始呢,我使用了9.2.0版本,但是发现启动skywalking之后,web页面一片空白,后面我改成使用他们的v8.8.1版本可以了。

             skywalking系统架构(简单说就是agent负责收集数据给oap,oap存储数据到es,h2等存储系统,另外oap还负责分析数据,提供接口给web系统)

     

    整个架构,分成上、下、左、右四部分:

    上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。

    下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。

    右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。默认采用H2,skywalking自带了H2无需安装,生产大数据量中很多是采用ES,需要另外安装ES。

    左部分 SkyWalking UI :负责提供控台,查看链路等等。

    1.在服务器新建文件夹/usr/local/skywalking

    2.将v8.8.1下载到该文件夹

    wget https://archive.apache.org/dist/skywalking/8.8.1/apache-skywalking-apm-8.8.1.tar.gz

    3.下载后解压 tar -zxf apache-skywalking-apm-8.8.1.tar.gz

    4.下载代理 wget https://archive.apache.org/dist/skywalking/java-agent/8.8.0/apache-skywalking-java-agent-8.8.0.tgz

    5.解压 tar -zxf apache-skywalking-java-agent-8.8.0.tgz

    6.微服务启动脚本修改

    1. #!/bin/bash
    2. # SkyWalking Agent 配置
    3. export SW_AGENT_NAME=MyGateWay # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
    4. export SW_AGENT_COLLECTOR_BACKEND_SERVICES=118.118.183.73:11800 # 配置 Collector 地址。
    5. export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
    6. export JAVA_AGENT=-javaagent:/usr/local/skywalking/skywalking-agent/skywalking-agent.jar # SkyWalking Agent jar 地址。
    7. echo start MyGateWay
    8. MyGateWayJarname='MyGateWay-1.0.0'
    9. pid=`ps aux | grep $MyGateWayJarname | grep -v grep | awk '{print $2}'`
    10. echo $pid
    11. kill -9 $pid
    12. nohup java -jar $JAVA_AGENT -jar $MyGateWayJarname.jar >MyGateWayRun.log &
    13. echo MyGateWay started successfully

    7.修改skywalking web监控页面的默认端口 

    /usr/local/skywalking/apache-skywalking-apm-bin/webapp/webapp.yml

    改成8018

    1. server:
    2. port: 8018
    3. spring:
    4. cloud:
    5. gateway:
    6. routes:
    7. - id: oap-route
    8. uri: lb://oap-service
    9. predicates:
    10. - Path=/graphql/**
    11. discovery:
    12. client:
    13. simple:
    14. instances:
    15. oap-service:
    16. - uri: http://127.0.0.1:12800

    我这里是在网关mygateway启动时加入了agent,其他的微服务,注册中心,配置中心都可以在启动时设skywalking的agent。这样在访问了微服务后就可以追踪了。比如我将skywalking部署在这个ip的这个端口。那么访问地址就是:

    http://118.118.183.73:8018 

    拓扑图里面看各个微服务的健康情况,如果出现红色就是有问题的

     

    追踪里面看微服务调用耗时情况,比如我们的一个积分查询微服务调用链耗时情况

     

     初步搭建,应该很有很多问题,需要继续研究。

    参考:

    https://blog.csdn.net/u012394095/article/details/79700200

    springcloud - 史上最全SpringCloud整合skywalking_个人文章 - SegmentFault 思否

  • 相关阅读:
    Netty入门
    在自定义数据集上实现OpenAI CLIP
    python基础语法(四)
    图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲
    LeetCode中等题之前K个高频单词
    人工智能大会爆火的“数字员工”究竟是什么?
    【机器学习】python机器学习scikit-learn和pandas进行Pipeline处理工作:归一化和标准化及自定义转换器(二)
    伺服丝杠系统常用运算功能块
    react-router-dom 实用技巧及3种传参方式
    安全测试BurpSuite-抓包篡改数据
  • 原文地址:https://blog.csdn.net/figo0423/article/details/127109739