type
status
date
slug
summary
tags
category
icon
password
AI summary
Skywalking基础入门
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
简介
Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
核心功能
SkyWalking是一个开源的应用性能监控(APM)系统,用于监控和管理分布式系统的性能。它提供了实时的性能指标、事务追踪、服务依赖分析等功能,帮助开发人员和运维团队快速定位和解决性能问题。
SkyWalking的核心功能包括:
分布式追踪:SkyWalking可以追踪分布式系统中的请求流程,记录每个请求经过的服务和组件,以及请求在每个组件中的耗时情况。通过分析追踪数据,可以了解系统中各个组件之间的调用关系和性能瓶颈,帮助开发人员快速定位和解决问题。
实时监控:SkyWalking提供实时的性能监控指标,包括各个服务的请求量、响应时间、错误率等。通过监控数据,可以及时发现系统的性能问题,并进行调优和优化。
服务依赖分析:SkyWalking可以分析系统中各个服务之间的依赖关系,包括调用关系和数据流向。通过可视化的方式展示服务之间的依赖关系,可以帮助开发人员理解系统的架构和流程,从而更好地进行系统设计和优化。
告警和报警:SkyWalking可以设置各种告警规则,当系统出现异常或性能下降时,可以及时发送告警通知。这样可以帮助运维人员快速响应和解决问题,保证系统的稳定性和可靠性。
数据可视化:SkyWalking提供丰富的数据可视化功能,可以将监控数据以图表的形式展示,帮助用户更直观地了解系统的性能和运行情况。同时,还可以根据需求自定义仪表盘,将关键指标集中展示,方便用户监控和管理系统。
- 服务、服务实例、端点指标分析
- 根本原因分析。在运行时分析代码
- 服务拓扑图分析
- 服务、服务实例和端点依赖分析
- 缓慢的服务和端点检测
- 性能优化
- 分布式跟踪和上下文传播
- 数据库访问指标。检测慢速数据库访问语句(包括SQL语句)
- 消息队列性能和消耗延迟监控
- 警报
- 浏览器性能监控
- 基础设施(VM、网络、磁盘等)监控
- 跨指标、跟踪和日志的协作 Skywalking 支持多种语言和框架,包括 Java、Go、Node.js 和 Python。它使用分布式追踪技术来监控应用程序内部和外部的所有调用,从而获得关于应用程序性能的完整见解。
如何使用
1、到官网下载https://archive.apache.org/dist/skywalking/,适合自己的版本
2、解压打开,以
apache-skywalking-apm-es7-8.5.0.tar.gz
为例
其中
agent
文件夹下面的skywalking-agent.jar
文件就是skywalking的探针
bin
下面的startup.bat
可以为windows启动
config下面的application.yml文件,就是关于skywalking的基础配置信息

log
文件夹下面的都是skywalking的启动过程的所有日志信息
oap-libs
代表的是本地依赖的jar包
webapp
文件夹下面的webapp.yml文件可以修改skywalking的ui页面启动端口和路径等https://zhuanlan.zhihu.com/p/710425701,这个是skywalking的ui界面介绍
接入微服务
需要在每个服务的vm中配置
启动之后,skywalking就会自动探针到每个服务的情况

mysql持久化

在
oap-libs
下面加入mysql的驱动
把
application.yml
文件修改成
再重启skywalking,这时skywalking会自动在mysql创建数据库表,并把收集到的信息存入mysql
自定义链路追踪
引入依赖
使用@Trace注解,可以记录方法的链路情况
@Tag注解,代表收集的key,和返回值


性能剖析

新建任务之后,就会对对应的路径和服务进行追踪,假设性能过慢的话,会被记录下来,且可以进行分析


日志
logback-spring.xml
引入skywalking的日志依赖

告警
假设调用的接口响应比较的慢的情况下,就会有告警信息

其中config下面的
alarm-settings.yml
文件是关于告警的配置,在这里我们是可以配置告警回调的,例如当服务和接口响应异常的情况下,我们可以通过告警发送到邮箱或者钉钉上
项目的参考地址:
- 作者:IT小舟
- 链接:https://www.codezhou.top/article/Skywalking
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。