开源性能监控工具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实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析:

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD