APM系统SkyWalking介绍

摘要:
同时,利用数据表示实现了应用程序性能管理和故障管理的系统解决方案。Zabbix、Premetheus和open falcon等监控系统主要关注服务器硬件指标和系统服务运行状态,而APM系统更关注内部程序执行过程指标和服务之间的链接调用。它是对Zabbix等监测的补充。目前,市场上的开源APM系统主要包括CAT Zipkin、Pinpoint、SkyWalking
 

公司最近在构建服务化平台,需要上线APM系统,本篇文章简单的介绍SkyWalking

APM

APM全称Application Performance Management应用性能管理,目的是通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案

Zabbix、Premetheus、open-falcon等监控系统主要关注服务器硬件指标与系统服务运行状态等,而APM系统则更重视程序内部执行过程指标和服务之间链路调用情况的监控,APM更有利于深入代码找到请求响应“慢”的根本问题,与Zabbix之类的监控是互补关系

目前市面上开源的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking,大都是参考Google的Dapper实现的

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

Zipkin: 由Twitter公司开发并开源,Java语言实现,侵入性相对于CAT要低一点,需要对web.xml之类的配置文件做修改,但依然对代码有侵入,也没有选择

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

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

综合考虑,我们选择了SkyWalking

SkyWalking

官方有两句话介绍SkyWalking:

SkyWalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8S、Mesos)架构而设计

SkyWalking是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案

SkyWalking架构

APM系统SkyWalking介绍第1张

SkyWalking采用组件式开发,易于扩展,主要组件作用如下:

Skywalking Agent: 采集tracing(调用链数据)和metric(指标)信息并上报,上报通过HTTP或者gRPC方式发送数据到Skywalking Collector

Skywalking Collector : 链路数据收集器,对agent传过来的tracingmetric数据进行整合分析通过Analysis Core模块处理并落入相关的数据存储中,同时会通过Query Core模块进行二次统计和监控告警

Storage: Skywalking的存储,支持以ElasticSearchMysqlTiDBH2等作为存储介质进行数据存储

UI: Web可视化平台,用来展示落地的数据,目前官方采纳了RocketBot作为SkyWalking的主UI

SkyWalking界面

  • 仪表盘

APM系统SkyWalking介绍第2张

仪表盘主要包含Service Dashboard和Database Dashboard

Service Dashboard内分别有Global、Service、Endpoint、Instance面板,展示了全局以及服务、端点、实例的详细信息

Database Dashboard内可以展示数据库的响应时间、响应时间分布、吞吐量、SLA、慢SQL等详细信息,便于直观展示数据库状态

APM系统SkyWalking介绍第3张

  • 拓扑图

APM系统SkyWalking介绍第4张

SkyWalking能够根据获取的数据自动绘制服务之间的调用关系图,并能识别常见的服务显示在图标上,例如图上的kafka、H2服务

每条连线的颜色反应了服务之间的调用延迟情况,可以非常直观的看到服务与服务之间的调用状态,连线中间的点能点击,可显示两个服务之间链路的平均响应时间、吞吐率以及SLA等信息

  • 追踪面板

APM系统SkyWalking介绍第5张

能够显示请求的代码内部执行情况,一个完整的请求都经过了哪些服务、执行了哪些代码方法、每个方法的执行时间、执行状态等详细信息,快速定位代码问题

  • 告警面板

APM系统SkyWalking介绍第6张

写在最后

SkyWalking目前还处在高速发展的阶段,我们在生产环境部署,遇到了一系列的问题,例如数据量过大图像断点,图像显示慢,与elasticsearch版本不兼容等,遇到问题所能查找的资料也有限,还需谨慎上线生产,但从Github上可以看到产品仍在快速更新不断完善,相信未来SkyWalking的发展也会越来越好,感谢开源

免责声明:文章转载自《APM系统SkyWalking介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tomcat与IIS在多IP服务器下的支持python getmtime() 最近修改文件内容的时间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

KVM基本功能管理

 一、KVM基础功能管理 1、查看命令帮助 virsh -h 2、查看 KVM 的配置文件存放目录(CENTOS7.0.xml是虚拟系统实例的配置文件) ls /etc/libvirt/qemu                 //属性配置文件路径 ls /virtual/KVM/                     //虚拟机磁盘镜像文件路径 3、查...

【转】DataSource高级应用

我们知道 DataSource能提供最高性能的对数据库的并发访问,但是,对DataSource的引用,也还有很多知识要弄清楚,获取Connection的方式是数据库性能最相关的技术,而对DataSource的调用对数据库性能起着很大的决定作用。    一般对于DataSource的引用是通过以下流程来进行: Context ct = new Initia...

在Windows Server 2008 R2下搭建jsp环境(一)-JDK的下载安装

  因为服务器上的Tomcat的运行环境需要JDK的支持,所以,掌握JDK的安装与下载和配置是一个重要步骤。   1.首先下载最新的JDK版本。网络上提供了最新版本的JDK下载,如图所示。首先选择“Accept  License Agreement“,在列表中选择自己电脑上对应的操作系统,"x86"表示适用于32为的操作系统,"x64"表示适用于64为的操...

Windows的Java_HOME环境变更配置

Windows的Java_HOME环境变更配置 一般会配置三个环境变更: 1、系统变量 变量名JAVA_HOME  变量值=安装目录,如:C:Program Files (x86)Javajdk1.7.0_40 2、Path系统变量,编辑,在原来变量值最后处加上:;%JAVA_HOME%in;%JAVA_HOME%jrein; 3、系统变量CLASSPAT...

使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)

背景:项目中要用到客户端向服务端传数据,使用WCF,绑定webHttpBinding,做了一个小例子。 业务逻辑简介:客户端在a表中添加了几条数据,从SQL Server数据库直接取出新添加的数据(DataTable格式的数据),传递给服务端,服务端有着和客户端相同的数据库结构,将收到的数据也同样添加到自己的a表中。除了添加数据,还有可能进行修改、删除等,...

mysql灾备演练问题

前期写的mysql热备份脚本恢复,还没有正式用到过,但是今天演练灾备恢复,但是遇到几个问题。 测试环境: 搭建mysql,安装xtrabackup vim /etc/yum.repos.d/Percona.repo [percona] name = CentOS $releasever - Percona baseurl=http://repo.per...