springcloudAlibaba 链路追踪SkyWalking

2023-11-14

一、链路追踪SkyWalking简介

        在大型系统的微服务化构建中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往要涉及到多个服务。
互联网应用构建在不同的软件模块集上,这些软件模块,有可能是有不同的团队开发,可能使用不同的编程语言来实现,有可能不在几千台服务器,横跨多个不同的数据中心,也就意味着
这架构形式胡存在如下一些问题

        Skywalking是一个可观测性分析平台和应用性能管理系统,它也是基于OpenTracing规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA, c++代理。支持Istio +特使服务网格

  • 如何快速发现问题?
  • 如何判断故障影响范围?
  • 如何树立服务依赖以及依赖的合理性?
  • 符合拆分链路性能问题以及实时容量规划?

二、链路追踪介绍

        分布式链路追踪(Distributed Tracing)就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节点上的耗时、请求具体到达哪台机器上、
每个服务街店的请求状态等等

          Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。

         Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

三、功能和技术方案对比

        Zipkin是Twitter开源的调用链路分析工具,目前基于Spingcloud sleuth得到了广泛的应用,特点是轻量,部署简单。

        Pinpoint一个韩国团队开源的产品,运用了字节码增强技术,只需要在启动时添加启动参数即可,对代码无侵入,目前支持Java和PHP语言,底层采用HBase来存储数据,探针收集的数据粒度非常细,但性能损耗大,因其出现的时间较长,完成度也很高,应用的公司较多

        Skywalking是本土开源的基于字节码注入的调用链路分析以及应用监控分析工具,特点是支持多种插件,UI功能较强,接入端无代码侵入。

        CAT是由国内美团点评开源的,基于Java语言开发,目前提供Java、C/C++、Node.js、Python、Go等语言的客户端,监控数据会全量统计,国内很多公司在用,例如美团点评、携程、拼多多等,CAT跟下边要介绍的Zipkin都需要在应用程序中埋点,对代码侵入性强。

四、Skywalking架构 

Skywalking agent和业务端绑定在一起,负责收集各种监控数据

Skywalking oapservice是负责处理监控数据,接受agent的数据并存储在数据库中,接受来自UI的请求,查询监控数据。

Skywalking UI提供给用户,展现各种监控数据和告警。

五、Skywalking的使用

  Skywaking的启动

Skywalking核心功能

SkyWalking 核心功能:

  • 服务、服务实例、端点指标分析。
  • 服务拓扑图分析
  • 服务、服务实例和端点(Endpoint)SLA 分析
  • 慢查询检测
  • 告警

SkyWalking 特点:

多语言自动探针,支持 Java、.NET Code 等多种语言。
为多种开源项目提供了插件,为 Tomcat、 HttpClient、Spring、RabbitMQ、MySQL 等常见基础设施和组件提供了自动探针。
微内核 + 插件的架构,存储、集群管理、使用插件集合都可以进行自由选择。
支持告警。
优秀的可视化效果

 

 

  • agent目录将来要拷贝到各服务所在机器上用作探针
  • bin目录是服务启动脚本
  • config目录是配置文件
  • oap-libs目录是oap服务运行所需的jar包
  • webapp目录是web服务运行所需的jar包

接下来,要选择存储了,支持的存储有:

  • H2
  • ElasticSearch 6, 7
  • MySQL
  • TiDB
  • InfluxDB

作为监控系统,这里使用mysql为例,在设置对应路径中添加swtest数据库,启动服务后即可添加对应表

 

 

之后将mysql驱动jar包添加到下面这个目录中

 

 在对应的启动类环境中添加jvm参数

 启动后在官方提供的链路追踪中即可访问到

 

SkyWalking 分为三个核心部分:

Agent(探针):Agent 运行在各个服务实例中,负责采集服务实例的 Trace 、Metrics 等数据,然后通过 gRPC 方式上报给 SkyWalking 后端。

OAP:SkyWalking 的后端服务,其主要责任有两个。

一个是负责接收 Agent 上报上来的 Trace、Metrics 等数据,交给 Analysis Core (涉及 SkyWalking OAP 中的多个模块)进行流式分析,最终将分析得到的结果写入持久化存储中。SkyWalking 可以使用 ElasticSearch、H2、MySQL 等作为其持久化存储,一般线上使用 ElasticSearch 集群作为其后端存储。
另一个是负责响应 SkyWalking UI 界面发送来的查询请求,将前面持久化的数据查询出来,组成正确的响应结果返回给 UI 界面进行展示。
UI 界面:SkyWalking 前后端进行分离,该 UI 界面负责将用户的查询操作封装为 GraphQL 请求提交给 OAP 后端触发后续的查询操作,待拿到查询结果之后会在前端负责展示。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springcloudAlibaba 链路追踪SkyWalking 的相关文章

随机推荐

  • Erlang in Mac OSX

    download the source package from the erlang website http www erlang org download html and unzip it tar zxvf otp src R14B
  • 第十届蓝桥杯省赛C++B组 迷宫

    试题 E 迷宫 本题总分 15 分 问题描述 下图给出了一个迷宫的平面图 其中标记为 1 的为障碍 标记为 0 的为可 以通行的地方 010000 000100 001001 110000 迷宫的入口为左上角 出口为右下角 在迷宫中 只能从
  • 攻防世界weak_auth知识详解

    1 进入环境 当我们点进去的时候 出来一个网页 让我们输入username和password 先随便输入一下 然后弹出是说让我们用admin作为username登入 那我们就按照它的要求吧 进行修改 这次它只是提醒了密码错误 我们的重心开始
  • Es_算分函数使用详情

    算分函数查询 相关性计算 当我们利用match查询时 文档结果会根据与搜索词条的关联度打分 score 返回结果时按照分值降序排列 例如 我们搜索 虹桥如家 结果如下 score 17 850193 source name 虹桥如家酒店真不
  • 递归遍历树节点

    考虑这样一种场景 从一个object找到id对应的对象 obj如下结构 调用 fn obj 121 返回 对应object id 121 child const obj id 0 child id 1 child id 12 child i
  • Failed to read the 'localStorage' property from 'Window' 的解决办法

    参考链接 https stackoverflow com questions 30481516 iframe in chrome error failted to read localstorage from window access d
  • 【PHP小皮】使用教程

    博主介绍 主攻JAVA 因不可逆的原因 被迫学PHP 刚人门多多关照 文章目录 前言 一 官网下载小皮 二 使用步骤 1 打开小皮页面 2 使用步骤如下 总结 前言 随着快爱情的发展 php也不是那么的繁琐 下载集成工具小皮就可以省去很多时
  • 史上最全的maven的pom.xml文件详解

    本文转自 https www cnblogs com hafiz p 5360195 html 原作者 阿豪聊干货
  • Flask后端笔记(二)request、bort、响应、session、钩子

    Flask后端笔记 获取请求参数 上传文件 with的使用 bort函数与自定义异常处理 abort函数 自定义异常处理 返回的响应数据 元组 make response json模块的使用 使用jsonify返回json数据 重定向 设置
  • 最新的单机Lustre文件系统的安装

    1 单机Lustre的搭建 主机名 IP地址 内存 添加的共享磁盘大小 Centos7 9 test机 192 168 10 30 24 1G 20G 1 安装E2fsprogs包 下载OSS服务器所需要的包 E2fsprogs包只是在Ex
  • 该linux文件目录的owner权限

    sudo chown R admusr 要改的用户名 admusr path
  • “过早优化是万恶之源”这句话的源头

    来自于一篇大神的论文 而且原意没有一句话那么简单 Premature optimization is the root of all evil Programmers waste enormous amounts of time think
  • python 下载安装

    在下载Python之前我们要明确我们的开发环境的操作系统 这里我们选择Windows Python下载步骤 Python安装步骤 测试安装是否成功 注意 如果输入python后 没有出现如图效果 而是显示 python 不是内部或外部命令
  • .NET Core 获取自定义配置文件信息(多种方式)

    引用 Microsoft AspNetCore App 元包或将包引用添加到 Microsoft Extensions Options ConfigurationExtensions 包 简而言之 直接可以用 Appsetting json
  • ES分布式搜索引擎

    初始化RestClient 引入依赖 因为SpringBoot默认的ES版本是7 6 2 所以我们需要覆盖默认的ES版本
  • Linux用nohup后台运行python程序及停止

    在Ubuntu上用python flask写了一个后端代码 每次运行要CMD先远程连上服务器 然后python xxx py启动 这样操作会让cmd窗口被占用 没办法进行其他操作 ls cd这种 如果把窗口关了 程序就停止了 看了网上的例子
  • CTFSHOW【萌新计划】Writeup

    CTFSHOW 萌新计划 web1 萌新计划 web2 萌新计划 web3 萌新计划 web4 萌新计划 web5 萌新计划 web6 萌新计划 web7 萌新计划 web8 萌新计划 web9 萌新计划 web10 萌新计划 web11
  • 《我的眼睛--图灵识别》第五章:基础:形状识别

    我的眼睛 图灵识别 第五章 基础 形状识别 1 图形认识 三角形 三角形是由同一平面内不在同一直线上的三条线段 首尾 顺次连接所组成的封闭图形 三角形按边分有不等边三角形 等腰三角和等边三角形 按角分有直角三角形 锐角三角形 钝角三角形等
  • antd的Form表单控制实例的使用

    Form表单的控制实例 一 业务常景 二 使用Form表单的实例来解决 一 业务常景 遇到一种业务场景 即一个简单的Modal框 Form的一个组合 仔细思考了一下 和我们平时直接使用Form表单还是有一定的区别 我们通常是通过给Form表
  • springcloudAlibaba 链路追踪SkyWalking

    一 链路追踪SkyWalking简介 在大型系统的微服务化构建中 一个系统被拆分成了许多模块 这些模块负责不同的功能 组合成系统 最终可以提供丰富的功能 在这种架构中 一次请求往往要涉及到多个服务 互联网应用构建在不同的软件模块集上 这些软