zoukankan      html  css  js  c++  java
  • apm监控分析及pinpoint和skywalking对比

    一. 什么是APM?

      APM (Application Performance Management) 即应用性能管理,属于IT运维管理(ITOM)范畴。主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠性和质量,保证用户得到良好的服务,降 低IT总拥有成本(TCO)。 

     二. 介绍

    (1)追踪一切

      无论是业务服务还是微服务,要做到收取流失的数据,还有所有组件健康检查,还要做到数据的分析。

    服务关联元数据

      监控是分层的,只知道一个服务有问题,并不能定位这个服务的根本原因是什么,就需要使用元数据。

    服务动态拓扑

       随时间的推移去变化

    服务调用链分析

     

    APM总体架构

       

    APM核心能力

     

    性能测试

     

    构建“部署 + 监控 + 告警 + 报障”闭环

     

    告警平台

     

     

    通过故障分类系统、支持组,快速将接入的各监控系统报障通知给相应维护人员, 并通过配置的SLA及组织架构,对未及时响应的报障进行上告处理,以达到卓越运维的目的。

     

    大数据能力的充分释放-自动异常点检测

     

     

    比较

    1.代码入侵性

      pinpoint和skywalking:基于字节码注入技术,可以做到完全的代码无侵入。对现有系统的改造极小。

      zipkin和cat:对代码有一定的侵入性

    2.社区比较

      pinpoint:韩国公司开发,在社区交流上会有一定滞后

      skywalking:刚完成apache孵化,已成为 Apache 基金会顶级项目。skywalking完全由国人主导开发,在国内社区相当活跃。我们能够进入官方群(Apache SkyWalking交流群:392443393)

    2,支持语言比较

      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软件。

  • 相关阅读:
    关于使用JavaMail注册激活邮箱的注意点
    Maven Web报错:org.apache.jasper.JasperException: Unable to compile class for JSP
    IDEA的中文乱码问题
    深入了解Java动态代理与反射机制
    String、StringBuffer和StringBuilder的区别
    Java中HashCode()和equals()的关系
    Java中向下转型的意义
    局部内部类访问局部变量的问题
    Java内部类的应用场景
    Python os.rmdir() 方法
  • 原文地址:https://www.cnblogs.com/wlike/p/11708654.html
Copyright © 2011-2022 走看看