开源性能监控工具APM之Skywalking和Pinpoint的实测对比

2023-11-06 08:58

本文主要是介绍开源性能监控工具APM之Skywalking和Pinpoint的实测对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:zollty,资深程序员和架构师,私底下是个爱折腾的技术极客,架构师社区合伙人!


零,什么是APM?

APM(ApplicationPerformance Management)是一种应用性能监控工具,通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。

一、Portal功能对象

Skywalking(简称SW)有如下菜单和功能:

  • Dashboard(仪表界面)

  1. 监控实例的数量信息

  2. 请求热力图(反映:请求数量和响应时间)

  3. 应用平均告警数量

  4. 应用吞吐量(cpm,每分钟调用次数)

  5. 最慢的服务Top10

  • Topology(拓扑界面)

  1. 用户、应用、各种中间件的调用关系图

  2. 应用之间的调用吞吐量(cpm)和平均响应时间(rt)

  3. 应用的服务可用率(SLA)

  • Application(应用界面)

  1. 应用基本信息(ip、host等)

  2. 应用调用关系图

  3. 历史实例进程列表

  4. 实例进程的平均吞吐量

  5. 实例进程的平均响应时间

  6. 实例进程的CPU、内存、JVM情况

  7. 实例进程的请求量走势图

  8. 应用的慢服务Top10

  • Service(服务界面)

  1. 服务平均吞吐量(cpm)、平均响应时间(RT)、可用率(SLA)

  2. 服务依赖关系图以及调用的平均吞吐量和响应时间

  • Alarm(告警界面)

  1. 显示服务器、应用、服务的告警信息

  • Trace(链路追踪界面)

  1. 支持按各种条件查询调用

  2. 查看调用的span链路信息(时序图)

  3. 可以看到各span的耗时、异常和其他信息(不同的span支持不同的信息,例如DB类型的,可以打印出sql)

部分截图

sw-portal

sw-trace

sw-app

Pinpoint(简称PP)有如下菜单和功能:

  • 主仪表界面

  1. 应用调用关系图

  2. 请求热力点图和柱状图(反映:请求数量和响应时间)

  3. 时间段内总的调用成功、失败次数

  4. 响应时间统计图

  5. 支持按时间选择查看调用列表(跳到链路追踪页面)

  • 链路追踪界面

  1. 查看调用的span链路信息(时序图)

  2. 可以看到各span的耗时和类名、方法名(如果DB操作,可以打印出sql和参数)

  • 检阅界面(inspector)

  1. 看不太懂,只知道有非常详细的JVM监控信息

部分截图

pp-portal

pp-trace

二、个人使用感受和优缺点对比

Skywalking的不足:

1、针对单个应用的请求热力图,只能看到请求数量,看不到响应时间分布。

2、应用界面,不能直观看到时间段内的请求总数量及错误数量。

3、JVM的监控信息,SW没有PP全面。

4、调用链信息,SW默认只显示入口和组件(如MySQL)调用处的信息,而PP还会显示SpringBean方法的调用信息,更丰富实用,当然SW也可以开启更详细的信息,但是会显示Bean内部方法的所有调用,显得冗余(例如 A调B调C,显示B和C被调用的入口方法就可以了,不用显示B调用自己内部方法的过程)。

5、SW更新快,BUG较多,值得优化和改进的地方也很多,虽然功能强,但是用起来不一定顺手和实用,还需要时间斟酌和打磨。相对而言,PP功能成熟,功能虽然少,但是都比较经典,用起来比较顺手。

6、SW调用链里面DB类型只能看到SQL,看不到参数化SQL的传值,而PP可以。

7、PP支持实时监控、页面实时刷新,而SW不支持。

Pinpoint的不足:

1、不支持异步执行的调用链追踪(比如多线程、MQ),而SW通过注解可以支持。

2、功能比较少,例如缺少平均响应、平均吞吐量等数据,缺少慢服务的统计。

3、调用链信息,可以扩展和丰富的程度,要低于SW(SW可以通过注解扩展)。

另外:

  1. 对应用性能的影响,实测两者差不多,SW稍微好一些(吞吐量比PP大概高5%——我们做过单个span的性能测试,具体数据就不贴出来了)。

  2. 实时告警通知,暂未测试,我个人希望有 服务异常、JVM异常、慢服务、高负载等的订阅和通知功能,然而貌似这两个APM都没有很直观的展示出有这方面的能力。

总的来说:

  1. PP相比后起之秀SW,要更稳定、易用,而且并没有明显短处;

  2. SW号称的异步调用链追踪(是有代码侵入性的),我认为PP只要稍加改进也可以支持;

  3. 小公司,推荐用PP,等SW成熟之后再说吧;

  4. 有二次开发实力的公司,需进一步对比两者的可扩展性、二次开发效率,选择一个更能满足自己定制需求的APM。

长按订阅更多精彩▼

如有收获,点个在看,诚挚感谢

这篇关于开源性能监控工具APM之Skywalking和Pinpoint的实测对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/355649

相关文章

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专