APM性能监控工具

一、背景在接口性能优化和系统稳定性方面,我们通常使用APM工具。 APM(Application Performance Management)是一种应用程序性

APM工具可以监控接口各个逻辑的耗时、接口调用了哪些服务以及调用频率,以及系统的运行状态,包括请求量、失败量、成功量以及接口对应于失败的请求。这些信息可以帮助我们发现和优化性能瓶颈并定位问题,从而提高系统稳定性。市场上的APM工具:

CAT(开源)

由国内美团点评开源,基于Java语言开发。目前提供Java、C/C++、Node.js、Python、Go等语言的客户端。监测数据将得到充分收集。国内很多公司都在使用,比如美团点评、携程、拼多多等。CAT需要开发者在应用中手动埋点,对代码的侵入性较大。

Zipkin(开源)

由Twitter开发并开源,用Java语言实现。它比CAT侵入性小,需要修改web.xml等相关配置文件,但对系统的侵入性还是有一定的。 Zipkin可以轻松与Spring Cloud集成,也是Spring Cloud推荐的APM系统。

精确定位(开源)

韩国团队开源的APM产品采用了字节码增强技术。只需要在启动时添加启动参数即可实现APM功能,无需侵入代码。目前支持Java和PHP语言,底层使用HBase来存储数据。探针收集的数据非常细粒度,但性能损失较大。因为出现时间较长,完成度也较高,文档也比较丰富。申请的公司也比较多。

天空行走(开源)

SkyWalking是中国开源产品,于2019年4月17日从Apache基金会孵化器毕业,成为顶级项目。目前SkyWalking支持Java、Net、Node.js等探针,数据存储支持MySQL、ElasticSearch、 ETC。

还有很多APM系统不是开源的,比如淘宝鹰眼、Google Dapper等。

下面对SkyWalking和Pinpoint这两款产品进行详细介绍。

二、Skywalking

APM性能监控工具

Skywalking 是一个可观测性分析平台和应用性能管理系统。它也是一个基于OpenTracing规范的开源AMP系统。 Skywalking 提供分布式跟踪、服务网格遥测分析、指标聚合和可视化集成解决方案。支持Java、Net Core、PHP、NodeJS、Golang、LUA、c++代理,支持Istio + Envoy服务网格。

在学习Skywalking之前,我们可以先参观一下官方主机演示

演示地址:http://demo.skywalking.apache.org/

账号:skywalking 密码:skywalking

核心功能

分析服务、服务实例和端点指标。服务拓扑图分析慢查询检测报警特征

多语言自动探针支持Java、NET Code等语言。提供多种开源项目的插件,对Tomcat、HttpClient、Spring、RabbitMQ、MySQL等常用基础设施和组件提供自动探测。微内核+插件架构、存储、集群管理、使用插件集合均可自由选择。支持警报。出色的可视化效果。

三、Pinpoint

Pinpoint是一款全链路分析工具,提供非侵入式调用链监控、方法执行细节查看、应用状态信息监控。

服务拓扑图:直观地展示整个系统中应用程序的调用关系。点击某个服务节点,可以显示该节点的详细信息,如当前节点状态、请求数量等。

请求响应散点图:以时间维度展示请求数和响应时间。拖动图表选择对应的请求即可查看执行详情。

请求调用堆栈查看:为分布式环境中的每个请求提供代码维度可见性。您可以在页面的代码维度查看请求的执行详情,帮助查找请求瓶颈和故障原因。

应用状态、机器状态检查:通过该功能,您可以查看相关应用的其他详细信息,如CPU使用率、内存状态、垃圾回收状态、TPS和JVM信息等参数。

APM性能监控工具

架构构成

Pinpoint主要由三个组件加上Hbase数据库组成。这三个组件是:代理、收集器和Web UI。

Agent组件:用于收集应用端监控数据,非侵入式,只需要在启动命令中添加一些参数即可。

Collector组件:数据采集模块,接收Agent发送的监控数据,并存储到HBase中

WebUI:监控显示模块,显示系统调用关系、调用详情、应用状态等,并支持报警等功能

安装部署

#克隆官方docker gitgit clone https://github.com/pinpoint-apm/pinpoint-docker.gitcd pinpoint-dockerdocker-compose pull docker-compose up -d#flink page : http://localhost:8081#pipoint page :http://localhost:8080#quickapp page: http://localhost333 608085

四、Skywalking和Pinpoint对比

空中漫步的缺点:

对于单个应用的请求热图,只能看到请求数量,而看不到响应时间分布。在应用界面中,无法直观地看到一段时间内的请求总数和错误数。关于JVM监控信息,SW没有PP那么全面。调用链信息。默认情况下,SW只显示入口和组件(如MySQL)调用的信息,而PP还会显示SpringBean方法的调用信息,更丰富、更实用。当然SW也可以启用更详细的信息,但是它会显示Bean的内部。所有对方法的调用都显得多余(比如A调用了B和C,那么显示B和C调用的入口方法就足够了,但不需要显示B调用自己内部方法的过程)。 SW更新快,bug多,有很多值得优化和改进的地方。虽然功能强大,但用起来可能不太方便实用,还需要时间考虑和打磨。相对而言,PP的功能比较成熟。功能虽然少,但是比较经典,也比较好用。 SW调用链中的DB类型只能看到SQL,而看不到参数化SQL传递的值,而PP可以。 PP支持实时监控和实时页面刷新,但SW不支持。精确定位的缺点:

不支持异步执行调用链跟踪(如多线程、MQ),但SW可以通过注解支持。功能比较少,比如缺乏平均响应、平均吞吐量等数据,缺乏慢服务统计。调用链信息可扩展和丰富的程度低于SW(SW可以通过注释扩展)。此外:

用户评论

APM性能监控工具
将妓就计

这个工具感觉很强大,能实时监控APM性能,真是太方便了!

    有15位网友表示赞同!

APM性能监控工具
花菲

试用了一下,感觉APM性能监控功能很强大,可以帮助我快速定位问题。

    有6位网友表示赞同!

APM性能监控工具
景忧丶枫涩帘淞幕雨

对于APM性能监控,这款工具绝对是首选!

    有12位网友表示赞同!

APM性能监控工具
清羽墨安

使用起来很方便,界面简洁易懂,强烈推荐!

    有10位网友表示赞同!

APM性能监控工具
水波映月

有了这款APM性能监控工具,再也不怕系统出问题了!

    有12位网友表示赞同!

APM性能监控工具
各自安好ぃ

界面设计很人性化,功能也很强大,赞!

    有15位网友表示赞同!

APM性能监控工具
万象皆为过客

终于找到一款靠谱的APM性能监控工具了,再也不用担心性能问题了!

    有19位网友表示赞同!

APM性能监控工具
铁树不曾开花

这款APM性能监控工具真的是神器,强烈推荐给所有开发者!

    有13位网友表示赞同!

APM性能监控工具
坠入深海i

之前一直找不到合适的APM性能监控工具,现在终于找到啦!

    有20位网友表示赞同!

APM性能监控工具
太难

这个工具可以帮助我更好地了解系统的性能状况,非常实用!

    有9位网友表示赞同!

APM性能监控工具
陌潇潇

对于开发人员来说,这是一款必备的APM性能监控工具!

    有11位网友表示赞同!

APM性能监控工具
迁心

这个工具的监控功能非常全面,可以监控各种指标,太棒了!

    有18位网友表示赞同!

APM性能监控工具
莫阑珊

APM性能监控,这款工具值得拥有!

    有11位网友表示赞同!

APM性能监控工具
敬情

这个工具的性能监控功能非常强大,可以帮助我快速定位和解决问题!

    有17位网友表示赞同!

APM性能监控工具
我的黑色迷你裙

这款APM性能监控工具真是太棒了,强烈推荐给所有需要监控系统性能的人!

    有6位网友表示赞同!

APM性能监控工具
冷眼旁观i

之前一直为性能问题头疼,现在有了这款APM性能监控工具,终于可以轻松解决问题了!

    有5位网友表示赞同!

APM性能监控工具
非想

这个工具的界面设计很友好,使用起来也很方便,非常推荐!

    有15位网友表示赞同!

APM性能监控工具
逃避

APM性能监控,这款工具绝对是首选!

    有18位网友表示赞同!

APM性能监控工具
╯念抹浅笑

终于找到一款可以满足我所有需求的APM性能监控工具了!

    有14位网友表示赞同!

APM性能监控工具
我就是这样一个人

这个工具可以帮助我快速识别和解决性能问题,太赞了!

    有17位网友表示赞同!

原创文章,作者:xiaobian,如若转载,请注明出处:https://www.xinyuspace.com/5620.html

(0)
xiaobianxiaobian
上一篇 2024年8月29日
下一篇 2024年8月29日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注