全链路追踪技术选型:pinpoint vs skywalking

目前分布式链路追踪系统基本都是根据谷歌的《Dapper大规模分布式系统的跟踪系统》这篇论文发展而来,主流的有zipkin,pinpoint,skywalking,cat,jaeger等。python

本次APM系统选型主要对比pinpoint和skywalking。直接否认了zipkin和cat。由于zipkin和cat对代码有必定的侵入性,这是我不能接受的。而pinpoint和skywalking都是基于字节码注入技术,能够作到彻底的代码无侵入。对现有系统的改造极小。mysql

1,社区比较sql

skywalking最近刚刚完成apache孵化,已成为 Apache 基金会顶级项目。skywalking彻底由国人主导开发,在国内社区至关活跃。咱们可以进入官方群(Apache SkyWalking交流群:392443393)和项目发起人吴晟零距离沟通,不少问题能第一时间获得你们的帮助(玩过开源的都知道,这个价值有多大)。apache

pinpoint是韩国公司开发,在社区交流上会有必定滞后。服务器

在社区角度比较,skywalking是彻底占优的。架构

2,支持语言比较app

Pinpoint只支持Java和PHP,而skywalking支持5种语言:Java, C#, PHP, Node.js, Go。若是公司的服务涉及到多个开发语言,那么skywalking会是你更好的选择。而且,若是你要实现本身的探针(好比python语言),skywalking的二次开发成本也比Pinpoint更低。运维

3,存储比较分布式

在大数据方面,底层存储架构决定上层功能。大数据

pingpoint只支持hbase,这就意味着,使用pinpoint必须有能力运维住一套Hbase集群。

skywalking支持es,h2,mysql,TiDb,sharding-sphere。可选类型比较多,能够根据本身团队的技术实力选择。其实生产上来讲仍是用es的较多。

hbase和es比较,hbase强在存储能力,es强在查询能力。

4,UI比较

原生ui上比较,pinpoint要比skywalking好。

可是skywalking有一款第三方定制UI,作的又比pinpoint漂亮

5,JVM监控

skywalking支持监控:Heap, Non-Heap, GC(YGC和FGC)。 Pinpoint可以监控的指标主要有:Heap, Non-Heap, FGC, DirectBufferMemory, MappedBufferMemory,可是没有YGC。另外,Pinpoint还支持多个指标同一时间点查看的功能。以下图所示:

因此,对JVM的监控方面,Pinpoint更胜一筹。

6,服务监控

包括操做系统,和部署的服务实例的监控。 Pinpoint支持的维度有:CPU使用率,Open File Descriptor,数据源,活动线程数,RT,TPS。 skywalking支持的维度有:CPU使用率,SLA,RT,CPM(Call Per Minutes)。 因此,这方面二者旗鼓至关,没有明显的差距。

7,跟踪粒度比较

Pinpoint在这方面作的很是好,跟踪粒度很是细。以下图所示,是Pinpoint对某个接口的trace信息:

而同一个接口skywalking的trace信息以下图所示:

经过对比发现,在跟踪粒度方面,Pinpoint更胜一筹。

8,过滤追踪

Pinpoint和skywalking均可以实现,并且配置的表达式都是基于ant风格。 Pinpoint在Web UI上配置 filter wizard 便可自定义过滤追踪。 skywalking经过加载apm-trace-ignore-plugin插件就能自定义过滤跟踪,skywalking这种方式更灵活,好比一台高配服务器上有若干个服务,在共用的agent配置文件apm-trace-ignore-plugin.config中能够配置通用的过滤规则,而后经过-D的方式为每一个服务配置个性化过滤。

因此,在过滤追踪方面,skywalking更胜一筹。

总结

通过前面对skywalking和Pinpoint全方位对比后咱们发现,对于两款很是优秀的APM软件,有一种既生瑜何生亮的感受。Pinpoint的优点在于:追踪数据粒度很是细、功能强大的用户界面,以及使用HBase做为存储带来的海量存储能力。而skywalking的优点在于:很是活跃的中文社区,支持多种语言的探针,对国产开源软件很是全面的支持,以及使用es做为底层存储带来的强大的检索能力,而且skywalking的扩展性以及定制化要更优于Pinpoint:

若是你有海量的日志存储需求,推荐Pinpoint。若是你更看重二次开发的便捷性,推荐skywalking。最后,参考上面的对比,结合你的需求,哪些不能妥协,哪些能够舍弃,从而更好的选择一款最适合你的APM软件。

相关文章
相关标签/搜索