APM全称Application Performance Management应用性能管理,目的是通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案
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 更是一个现代化的应用程序性能监控(Application Performance Monitoring)系统, 尤其专为云原生、基于容器的分布式系统设计.
在许多不同的场景下, SkyWalking 为观察和监控分布式系统提供了解决方案。首先是像传统的方式那样, SkyWalking 为服务提供了自动打点的代理, 如 Java, C# , Node.js , Go , PHP 以及 Nginx LUA(包括 Python 和 C++ 调用的 SDK 捐献)。
对于多数语言,持续部署环境,云原生基础设施正变得更加强大,但也更加复杂。
Skywalking 的服务网格接收器可以让 Skywalking 接收来自服务网格框架(例如 Istio , Linkerd)的遥测数据,以帮助用户理解整个分布式系统。
总之, SkyWalking 为 服务(service), 服务实例(service instance), 以及 端点(endpoint) 提供了可观测能力。服务(Service), 实例(Instance) 以及 端点(Endpoint) 等概念在如今随处可见, 所以让我们先了解一下他们在 SkyWalking 中都表示什么意思:
pods
一样,服务实例未必就是操作系统上的一个进程. 但当你在使用打点代理的时候, 一个服务实例实际就是操作系统上的一个真实进程.使用 SkyWalking 时, 用户可以看到服务与端点之间的拓扑结构, 每个服务/服务实例/端点的性能指标, 还可以设置报警规则。
除此之外, 你还可以通过以下方式集成
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.
1、进入官网,https://skywalking.apache.org/downloads/
2、选择红框部分,查询所有版本
3、进入版本列表、选择最新的版本8.3
4、根据skywolking的存储类型选择需要下载的版本
5、解压文件,修改apache-skywalking-apm-bin\config\application.yml
6、本次采用单节点部署,存储方式选择mysql
7、新建数据库,我选择的mysql8版本
8、选择mysql连接驱动(根据数据库版本来),将mysql-connector-java-8.0.21.jar 复制到\apache-skywalking-apm-bin\oap-libs目录下
10、接下来就是查看web项目了,根据需要修改apache-skywalking-apm-bin\webapp\webapp.yml的端口号,默认是8080
11、接下来就是启动web了,进入apache-skywalking-apm-bin\bin目录下,之前startup.bat,可以通过\apache-skywalking-apm-bin\logs\webapp.log来查看项目启动的情况
12、浏览器进入http://localhost:8080(端口号看配置)可以查看到skyworing已经安装完成了。
到此,window下的skywolking已经安装完成了
1、根据项目需要修改配置文件apache-skywalking-apm-bin\agent\config
2、以springboot项目为例,在vm里添加参数
-javaagent:E:\apache-skywalking-apm-8.3.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar
idea启动springboot项目或使用java -jar +参数启动
3、进入skywolking系统,可以查看系统的各种信息(需要项目运行后才能看到)