pinpoint 文档_PinPoint和Skywalking功能比较

本文对比了Pinpoint和Skywalking两款APM工具,从社区活跃度、支持语言、协议、存储、UI、扩展性和告警功能等方面进行详细比较。Skywalking在社区活跃度、支持语言和告警功能上更胜一筹,而Pinpoint的UI和Hbase存储具有优势。在扩展性方面,Skywalking的设计使其更容易扩展。结论认为,从零开始构建时,Skywalking可能是更好的选择。
摘要由CSDN通过智能技术生成

1. 简介

image-20210120142910050.pnge2751a1b31e233cd53b73d6f791eeba8.png

在代码侵入性的APM项目中,PinPoint和skywalking是两个非常优秀的工具了。有需要上APM系统的同学可以看一下我对于这两款软件的比较来做出合理的判断。

2. 比较项

image-20210120143026410.pngb4f655c20e74828518fa730c842c5401.png

截止到2021年01月12日,我们的比较项如下

比较项PinPointSkywalking
版本v2.2.0v8.3.0
项目发起人Woonduk Kang吴晟
GitHub星数11.1k15.8k
社区非apacheapache
文档http://skywalking.apache.org/docs/(详细)https://pinpoint-apm.github.io/pinpoint/main.html(详细)
用户非常多非常多
兼容OpenTracing不支持支持
支持语言java,php, C/CPP, pythonJava, LUA, python, node.js(官方),
.NET, php, Go(社区)
协议thriftgRPC
存储HBase(hbase+hadoop+zookeeper)+MySQLES, H2, MySQL, TiDB, Sharding-Sphere
UI丰富度很高很高(8.3版本)
实现方式字节码注入字节码注入
代码侵入性
扩展性
TraceId查询不支持支持
告警支持支持
JVM监控支持支持
跟踪粒度一般
过滤跟踪filter配置agent.config + apm-trace-ignore-plugin
性能消耗
组件collector+web+agent+存储OAP+Web+agent+存储+zk
发布包warjar

3. 社区比较

skywalking完胜

skywalking作为近两年的后起之秀的势头已经完全超越了pinpoint,完全归功于强大的社区。我们可以来看一下git的活跃程度就可以看出来了。

pinpoint

image-20210120115943969.png59de1516f95d01842302d38a2da6e575.png

skywalking

image-20210120120232597.png6c9e864acf788b8fd0f2e2371a39b691.png

4. 支持语言

skywalking支持的语言更多

pinpoint支持java,php, C/CPP, python,官方文档

而skywalking除了官方支持的语言Java, LUA, python, node.js外,社区还贡献了.NET, php, Go的agent,官方文档

5. 协议

skywalking支持gRPC和http,但是新版本只支持gRPC了。而pinpoint使用的是thrift协议。协议并没有高低

6. 存储

Pinpoint只支持Hbase,也就是说,如果想要扩展HBase就需要用到hadoop和zookeeper,代价比较大

而skywalking支持多种的存储,我们最常用的就是es。

而我们用的最多的功能是查,这个时候es的高速查询能力就体现了出来。但是Hbase的海量存储功能是es没办法比的,所以我们需要根据我们的场景来选择合适的工具。

7. UI

早期的skywalking(7.0之前)的UI功能很有限,但是daocloud为他定制了一款UI叫rocketbot,功能非常强大,新版本的skywalking就直接吸收了这个项目,使用他作为UI,弥补了UI方面的缺陷。

image-20210120133723212.pngda4d8254b26d153cc2bb970ca2da9ad4.png

而pinpoint的UI同样非常出色,二者不相伯仲。

ss_server-map.png68c5fcf29f818c87f1fd447947efc3ce.png

8. 扩展性

pinpoint设计的时候就没有考虑过扩展性,而skywalking的核心设计之一就是要设计成pluggable。

  • 存储:skywalking如果要自定义实现一套存储,只需要定义一个类实现接口org.apache.skywalking.oap.server.library.module.ModuleProvider,然后实现一些DAO即可

  • 探针:由于skywalking数据接口标准很多,并且支持了openTracing,所以agent的集成其实非常简单,.NET, php, Go这些agent都是由社区贡献的

扩展性方面skywalking更胜一筹

9. 告警

二者都支持自定告警,但是pinpoint告警还需要mysql的支持,虽然二者的告警维度大致相同,但是skywalking支持webhook的方式,也就是说他可以支持和多种方式的报警,比如短信,邮件,微信。

skywalking在告警方面比pinpoint更好用

10. 支持组件

  • pinpoint: https://github.com/pinpoint-apm/pinpoint#supported-modules

  • skywalking: https://github.com/apache/skywalking/blob/8.3.0/docs-hotfix/docs/en/setup/service-agent/java-agent/Supported-list.md

image-20210120141057232.png64e55bb82557aab0bf602199e6ad0a8c.png

结论

如果是从0构建的话,我觉得还是选择skywalking更好,可能也是我比较倾向于使用开源工具,所以对于skywalking有很大的倾向性,这篇文章抛砖引玉,我后面会多多完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值