分布式链路追踪Skywalking

skywalking服务安装与启动 SkyWalking 是一款 开源的分布式系统监控与链路追踪(APM, Application Performance Management)工具,由 Apache 基金会孵化并毕业为顶级项目。它主要用于 微服务、云原生和容器化架构 下的性能监控、故障排查和依赖分析。 阅读详情

1、简介

Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持,H2、Mysql、Elasticsearch、TiDB等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
官网地址:https://skywalking.apache.org/

2、同款产品对比

图片.png

3、架构介绍

图片.png

  • Skywalking agent和业务端绑定在一起,负责收集各种监控数据
  • Skywalking oapservice是负责处理监控数据,接受agent的数据并存储在数据库中,接受来自UI的请求,查询监控数据。
  • Skywalking UI提供给用户,展现各种监控数据和告警。

默认配置:
图片.png

4、环境搭建

4.1 资源下载

图片.png老版本中 amp和agent是在一个包下,新版本中需要分别下载。

4.2 apm结构

图片.png4.3 agent结构

图片.png

5、修改配置,启动skywalking

5.1 修改配置

图片.png
编辑application.yml

在这里插入图片描述

5.2 启动

图片.png
注意:由于使用mysql存储,所以需要引入mysql驱动到libs中。
图片.png
启动结果查看:
图片.png
UI服务启动:图片.png5.3 自动创建数据库

在这里插入图片描述

总共创建476张表。

5.4 UI访问

图片.png

6、接入业务代码

6.1 启动参数配置
-javaagent:D:\JAVA_SPACE\JAVA_TOOL\apache-skywalking-apm-bin\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=simonking-server
-Dskywalking.collector.backend_service=127.0.0.1:11800

-javaagent: 指定探针(代理)的绝对路径
-Dskywalking.agent.service_name:覆盖agent.config中的配置文件,指定服务(应用)的名称
-Dskywalking.collector.backend_service :覆盖agent.config中的配置文件,指定收集信息的地址

6.2 官方文档说明

图片.png参数也可以在配置文件中配置,但是配置文件是硬编码,建议配置在启动参数中:
图片.png
图片.png
覆盖原有配置的说明文档:

图片.png7、业务访问

7.1 服务的注册

图片.png启动三个服务:euraka,skywalking-service、skywalking-admin

7.2 请求访问

链接:http://127.0.0.1/foo/15/getUser
拓扑图:
图片.png
追踪:
图片.png
监控信息:
图片.png

8、其他

Skywalking还可以提供报警、日志的统一链路等,需要引入对应的依赖并开发。

9、统计

统计应用/服务调用的具体信息,需要了解关键的库表。

service_traffic:服务流量(服务的记录去重)
endpoint_trafficendpoint_traffic: 端点流量(请求的记录去重)
endpoint_traffic

segment:分段表(记录每一次请求的信息)
segment

endpoint_sidecar_internal_req_latency_nanos:端点分段统计请求,分别根据分钟和小时统计请求量,其中entity_id就是endpoint_traffic.id
endpoint_sidecar_internal_req_latency_nanos
统计的sql样例:

SELECT
  e.`name` '请求路径/方法名',
	c.`name` '应用/服务',
  s.latency '耗时ms',
  s.time_bucket '请求时间'
FROM segment s
INNER JOIN endpoint_traffic e ON s.endpoint_id = e.id
INNER JOIN service_traffic c ON c.service_id = s.service_id
WHERE e.`name` = 'GET:/auctionCenter/citys';

返回结果:
图片.png

SpringBoot集成Skywalking分布式服务调用链路追踪 阅读详情

相关推荐

Skywalking源码分析~启动流程

skywalking源码分析

TCLAY 1177

SkyWalking使用

这是《Spring Cloud 进阶》第十篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得了? 阿里面试这样问:Nacos、Apollo、Config配置中心如何选型?这10个维度告诉你! 阿里面试败北:5种微服务注册中心如何选型?这几个维度告诉你! 阿里限流神器Sentinel夺命连环 17 问? 对比7种分布式事务方案,还是偏爱阿里开源的Seata,真香!(原理+实战)

u014513171的博客 2946

分布式链路追踪-SkyWalking

SkyWalking是开源的可观测平台,主要用于收集,分析,聚合和可 视化服务和云原生基础设施的数据。Skywalking提供了一种简单得 方式来维护分布式系统得视图关系。在开发过程中,开发人员经常会使用IDEA的Debug功能(包含本地 和远程)调试应用,在JVM进程期间获取应用运行的JVM信息,变量 信息等。这些个技术通过Java Agent来实现的,那么Java Agent到 底是啥,为啥这么吊?idea得Debug功能热部署 JRebel各种线上诊断工具代码覆盖率工具性能分析。

qq_55577704的博客 1892

第09讲:SkyWalking Agent 启动流程剖析,领略微内核架构之美

初始化配置信息。该步骤中会加载 agent.config 配置文件,其中会检测 Java Agent 参数以及环境变量是否覆盖了相应配置项。查找并解析 skywalking-plugin.def 插件文件。AgentClassLoader 加载插件。PluginFinder 对插件进行分类管理。使用 Byte Buddy 库创建 AgentBuilder。这里会根据已加载的插件动态增强目标类,插入埋点逻辑。使用 JDK SPI 加载并启动 BootService 服务。

Marion的博客 2150

分布式链路追踪之SkyWalking

在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。衡量一个接口的性能好坏,一般我们至少会关注以下三个指标。

swimming_in_IT_的博客 3969

# 分布式链路追踪_skywalking_学习(1)

分布式链路追踪_skywalking_学习(1) 一、APM 系统概述 1、什么是 APM 系统? 2、分布式链路追踪 二、Skywalking 介绍 三、环境搭建-ElasticSearch 环境搭建 四、环境搭建-skywalking 环境搭建 五、 agent 的使用-简介 六、agent 的使用-linux下 tomcat7 和 8 中使用 七、agent 的使用-Spring Boot 八、RocketBot 的使用

段子手168的博客 1616

拥有故障诊断能力的分布式链路追踪系统:Skywalking

Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版本更新较快。数据存储支持:Elasticsearch、MySQL、H2、TiDB。默认是H2,而且是存到内存。实际我们一般将其存到ES。在默认情况下Skywalking是没有记录我们的业务方法的,如果需要添加业务方法的链路监控我们就需要添加如下的依赖</</</</

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 4万+

skyWalking分布式链路追踪部署

使用环境 centos7.3 JKD1.8 elasticsearch5.6.8 skyWalking3.2.6 笔者把所有的环境都打包在这百度网盘里面 链接:https://pan.baidu.com/s/1HqQoUZlPxFFyGYwBXKYEAQ 密码:uuhj 下载完之后笔者是把文件放在下面这个目录 mv sky/ /usr/local 1....

cks的博客 1万+

分布式链路追踪 Skywalking

1. Skywalking 概述 1.1 什么是APM系统 APM (Application Performance Management)即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案,应用性能管理,主要针对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低 IT 总拥有成本 APM 系统是可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题 1.2 分布式链路追踪 随着分布式系统和微

Jarvis's Blog 1522

分布式链路追踪原理详解及SkyWalking、Zipkin介绍

背景:追踪调用链路,监控链路性能,排查链路故障 随着微服务架构的流行,一次请求往往需要涉及到多个服务,需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。 单体架构中可以使用 AOP 在调用具体的业务逻辑前后分别打印一下时间即可计算出整体的调用时间,使用 AOP 来 catch 住异常也可知道是哪里的调用导致的异常。 基本实现原理 一个完整请求链路的追踪ID(traceid)用于查出本次请求调用的所有服务,每一次服务调用的跨度ID(spanid.

Hello World 1万+

分布式链路追踪 SkyWalking 源码分析 —— Agent 收集 Trace 数据

点击上方“芋道源码”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析...

芋道源码 3118

我用SkyWalking解决分布式链路追踪,这也太香了

大家好,我是不才陈某~ 本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下: 什么是Skywalking? 上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin,这种方案目前也是有很多企业在用,但是作为程序员要的追逐一些新奇的技术,Skywalking作为后起之秀也是值得大家去学习的。 skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。短短两年就被Apache

wdjnb的博客 1311

分布式全链路追踪 SkyWalking基本原理(一)

分布式链路追踪 SkyWalking基本原理一、APM简介二、分布式链路追踪二、Apache Skywalking(Incubator)简介1. Apache SkyWalking:2. Skywalking已经支持从6个可视化维度剖析分布式系统的运行情况。三、什么是 SkyWalking四、SkyWalking 原理架构图如下:五、SkyWalking 核心模块介绍:六、各模块组件视图简介1. ...

AMimiDou_212 1万+

分布式链路追踪专栏——分布式链路追踪:Skywalking 探针模型设计

2021年我和博文视点合作了一本技术类型的书籍“Spring Cloud Alibaba微服务架构实战派上下册”,它是我涉足知识输出领域以来的第一本书,同时它也是我自己积累的技术池中部分技术的产出。 为了写好那本书,我几乎花费了所有的休息时间,并主动的承担了书的售后技术辅导和咨询的职责(几乎是有问必答,坚持了整整两年)。 所谓有付出总会有回报,Alibaba这本书的销量还不错,我也因此获得了博文视点颁发的2021年度优秀作者。 我很清楚,这个是博文视点为了鼓励我继续去用心写书,因此我又花了接近1年半的

huxian1234的专栏 1700

微服务系列:分布式链路追踪之 SkyWalking

一、基本介绍 什么是链路追踪 随着微服务分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如分布式服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络。在服务能力提升的同时,复杂的网络结构也使问题定位更加困难。在一个请求在经过诸多服务过程中,出现了某一个调用失败的情况,查询具体的异常由哪一个服务引起的就变得十分抓狂,问题定位和处理效率是也会非常低。 分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到...

a1472750149的博客 1348

Win10如何使用BC3.1精简版

Win10如何使用BC3.1精简版 使用Borland C++3.1 学习μC/OS—Ⅱ几乎是现在的普遍做法,但是由于Win10系统不能直接使用BC3.1,所以需要用到DOSBox。 1、解压bc3.1精简版压缩包,本文将BC3.1文件夹复制在D盘下,DOSBOX按照默认路径安装。下图为两者安装目录图示: 2、修改DOSBOX的配置文件,找到DOSBox文件安装路径,记事本方式打开DOSBox 0.74-3 Options.bat文件,在此文件末尾添加: MOUNT C D:\BC//意为把D:\BC目录

qq_45547236的博客 2376

分布式链路追踪之SkyWalking详解

Apache SkyWalking是一款专为微服务、云原生设计的分布式APM工具,提供分布式追踪、服务拓扑分析和性能监控一体化方案。其核心优势包括无侵入式探针采集、多语言支持和低资源消耗。最新v10.2.0版本采用原生数据库BanyanDB,显著提升性能,并优化了Java虚拟线程支持。架构包含Agent、OAP Server、存储和UI四大模块,支持灵活扩展。相比Zipkin、Jaeger等工具,SkyWalking在代码侵入性、数据可视化和微服务支持方面更具优势。通过Docker快速部署即可实现全链路监控

qq_844085127的博客 1683

QuestaSim使用Xilinx库的设置

安装QuestaSim

miracle_eicont的专栏 3405

分布式链路追踪—SkyWalking

每生成一个id,都会将生成id的时间戳记录下来(lastTimestamp),如果发现当前时间比记录下来的lastTimestamp还小,就说明发生了时间回调,此时就会生成一个随机数作为traceId。采用本地生成ID的方式:雪花算法。由于雪花算法存在时间回调的问题,会导致ID重复。数据包含header和body,body存放着业务数据,可以把链路数据context通过数据的header进行传递。如果上游携带有Context,就说明上游采样了,则下游也会强制进行采样,以此来保证来链路的完整性。

hdn_kb的博客 1134

嵌入式硬件实战:RC、LC与RL滤波电路的设计与选型指南

本文深入探讨了嵌入式系统中RC、LC与RL滤波电路的设计与选型策略。通过生活化比喻和实战案例,详细解析了三种滤波电路的工作原理、应用场景及工程注意事项,帮助工程师根据电流大小、频率特征和成本预算选择最优方案,提升嵌入式硬件设计的稳定性和抗干扰能力。

kiwi8的博客 284

Android定位权限全解析:从基础配置到后台持续定位的完整解决方案

本文全面解析Android定位权限体系,从基础配置到后台持续定位的完整解决方案。涵盖LocationManager和FusedLocationProviderClient等主流API的对比选型,详细讲解动态权限申请、精确定位与模糊定位的智能切换,以及Android 10+的后台定位适配策略。帮助开发者构建兼顾精准度与电量友好的定位方案,适用于导航、运动轨迹记录等多种场景。

weixin_29310605的博客 593
上一篇: 微服务项目结构最佳实践
下一篇: Sprinboot聚合项目归荑
智_永无止境
博客等级 码龄10年 803粉丝 403原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值