最近由于工作需要,对比了常见的APM工具,简单归纳下:
SkyWalking
https://github.com/apache/incubator-skywalking
PinPoint
https://naver.github.io/pinpoint/
Cornerstone
https://github.com/ctripcorp/vi
MyPerf4J
https://github.com/LinShunKang/MyPerf4J
Arthas
https://github.com/alibaba/arthas
Skywalking
agent方式启动,默认采用ElasticSearch数据库存储(可以修改为H2),文档较全。有拓扑分析,依赖分析,慢服务检测。它也可以支持Zipkin,Thrift,Protobuf等跟踪器数据格式。
PinPoint
也是使用agent方式,基于HBase数据库存储,支持分布式应用,支持分布式事务跟踪,支持拓扑图,可轻松水平扩展,提供代码级别的可见性,资源消耗较小。
Cornerstone
非侵入,只需引用jar依赖,有console。文档几乎没有,对比未开源的VI,应该功能很多。
MyPerf4J
agent方式启动,默认方式数据存储在本地log文件,无控制台。但是也可部署时序型数据库InfluxDB 。
Arthas
较简单,类似于jconsole,java -jar启动,java应用进程绑定,没有界面,通过命令行形式展现,没有聚合,不支持分布式服务跟踪。
另外还有ZipKin和SOFATracer,目前功能较简单。
经过对比,目前在开发环境安装了ZipKin和Skywalking,试用。
领取专属 10元无门槛券
私享最新 技术干货