SpringCloud——Skywalking+ES实现链路跟踪(Windows版)

SpringCloud——Skywalking+ES实现链路跟踪(Windows版)

一、介绍

SkyWalking 是一个可观察性分析平台和应用程序性能管理系统。
跟踪、指标和记录一体化解决方案。
支持 Java、.Net Core、PHP、NodeJS、Golang、LUA、C++、Python 代理
支持 Istio + Envoy 服务网格

功能涵盖了:

  • 一致的可观察性:追踪、指标、日志记录、浏览监控;
  • 多语言代理:Java、.Net Core、PHP、NodeJS、Golang、LUA、C++、Python;
  • 轻量化:没有大数据栈、采用不同的规模;
  • 模块化:存储可插拔、集群协调器可插拔、支持拉/推传输;
  • 支持报警:告警 HTTP/gRPC 转发、钉钉通知、微信通知、原始指标数据导出等;
  • 花式可视化:可定制仪表盘、拓扑图、跟踪和配置文件浏览、命令行仪表盘、IntelliJ IDE 插件,指标与代码并排;

二、ES 搭建

参考 SpringCloud——ELK搭建(Windows版) 中第二部分。

三、Skywalking搭建

  1. 下载

官网下载地址:https://skywalking.apache.org/downloads/

SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第1张图片

  1. 解压
    SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第2张图片
  2. 配置
    修改 config 目录下的 application.yml 文件
    Skywalking 原本默认使用的数据存储是 h2,这里我们改成使用 elasticsearch
    storage:
      selector: ${SW_STORAGE:elasticsearch7}
      elasticsearch7:
        nameSpace: ${SW_NAMESPACE:"skywalking-es"}
        clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9201}
    
  3. 启动
    双击 bin 目录下的 startup.bat
    也可以分别单独运行 oapService.batwebappService.bat,其实 startup.bat 文件里也是运行了这2个指令, oapService.bat 运行的是 Skywalking 的 OAP, webappService.bat 运行的是 Skywalking 的 UI。
    启动完成后,我们可以访问:http://localhost:8080/
    SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第3张图片
  4. agent 使用
    由于笔主这里已经有了一套云原生项目,基于 Spring Cloud + Spring Cloud Alibaba 进行架构实现的,使用的相关组件基本有:nacosgatewaySpringBoot AdminsentinelXXL-JOBOpenFeign 等,关于这一块,笔主后期在出相关系列博客。
    1. 在 IDEA 中使用
      在 VM options 中加入如下:
      -javaagent:你的Skywalking解压路径\agent\skywalking-agent.jar
      -Dskywalking.agent.service_name=项目名称(spring.application.name)
      -Dskywalking.collector.backend_service=localhost:11800
      
      SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第4张图片
    2. 在命令行中用 java 命令启动
      java -javaagent:项目中skywalking-agent.jar的路径 -Dskywalking.agent.service_name=项目名称(spring.application.name) -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar
      

【注意】

  1. 启动完成后,可能会发现拓扑链路不太正确,如下图:
    SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第5张图片
    我们发现,用户的请求链路直接请求到了各个业务服务上,而不是通过 gateway,在到各个业务服务上。
    这时候我们需要把 agent\optional-plugins 目录下的 apm-spring-cloud-gateway-3.x-plugin-8.7.0.jarapm-spring-webflux-5.x-plugin-8.7.0.jar 复制到 agent\plugins 目录下
    SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第6张图片
    重启 gateway 服务即可
    SpringCloud——Skywalking+ES实现链路跟踪(Windows版)_第7张图片

你可能感兴趣的:(微服务,java及其相关框架,spring,cloud,spring,cloud,alibaba,skywalking,elasticsearch,windows)