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

原文地址:https://www.cnblogs.com/wanghui0412/p/11708654.html

时间: 2024-10-09 06:55:22

apm监控分析及pinpoint和skywalking对比的相关文章

APM终端用户体验监控分析(下)

一.前言 APM 终端用户体验监控分析(上)从 APM 终端用户产品特性.使用建议.以及从真实用户体验和模拟性能监控两方面入手给大家进行了简单的分享. 本文为下篇,将给大家介绍几种新的 APM 终端用户体验监控的方式. 二.基于网络的数据包捕获 基于网络的数据包捕获工具对执行应用无任何影响,且不要求改变代理或软件,因此无需进行大量的应用测试就可得出所需值.须在网络适当位置设计流量聚合层,且须使用矩阵或专业网络设备以对正在被发送到监控系统的流量进行更多粒状过滤.流量聚合网络不仅可用于 APM 使用

HDFS“慢节点”监控分析功能

前言 当集群规模在日益变大的时候,往往有的时候出现机器的老化,而这些"老化"的机器又会表现出一些奇怪的特征:"磁盘读写慢"."网络数据传输慢"等.对于前者,曾经笔者写过一篇Hadoop节点"慢磁盘"监控的解决方案,当然社区目前已有更好的方案: HDFS-10959(Adding per disk IO statistics and metrics in DataNode).而对于后者,我们同样需要有相应的监控方案,方便让我们这

spotlight_on_windows 监控分析

<!------------spotlight_on_windows监控分析-----------------------------------------> http://www.doc88.com/p-6983213952356.html 安装or_了解http://konglx.iteye.com/blog/1873805

死锁的监控分析

死锁的监控分析 阅读目录(Content) 1 背景 1.1 报警情况 1.2 如何监控 2 分析 3 解决 回到顶部(go to top) 1 背景 1.1 报警情况 最近整理笔记,打算全部迁移到EVERNOTE.整理到锁这一部分,里边刚好有个自己记录下来的案例,重新整理分享下给大家. 某日中午,收到报警短信,DB死锁异常,单分钟死锁120个. 死锁的xml文件如下: 1 <deadlock-list> 2 <deadlock victim="process810b00cf8

JDK自带的监控分析工具JConsole

非常多开发人员认为自己懂Java编程.事实是大多数开发人员都仅仅领会到了Java平台的皮毛.所学也仅仅够应付工作. 作者将深度挖掘Java平台的核心功能.揭示一些鲜为人知的事实.帮助您解决最棘手的编程困难. 当应用程序性能受到损害时,大多数开发者都惊慌失措.这在情理之中. 跟踪Java应用程序瓶颈来源一直以来都是非常麻烦的,由于Java虚拟机有黑盒效应,并且Java平台分析工具一贯就有缺陷. 然而,随着Java5中JConsole的引入,一切都发生了改变. JConsole是一个内置Java性能

(转)Java多线程的监控分析工具(VisualVM)

原文链接:http://blog.csdn.net/chendc201/article/details/22905511 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时候,我们才知道原来代码中有死锁.撇开代码检查工具,我们先讨论一下利用VisualVM监控,分析我们的多线程的运行情况. AD:51CTO学院:IT精品课程在线看! 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时候,我们才知道原来代码中有死锁.撇开代码检

Linux性能监控分析命令(五)—free命令介绍

性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Linux内存使用最常用的命令语法格式: free [options] 参数说明: -m:以M为单位查看内容使用情况(默认为kb) -b:以字节为单位查看内存使用情况 -s:可以在指定时间段内不间断监控内存使用情况 -k:以KB为单位显示内存使用情况 -g:以GB为单位显示内存使用情况 -o:不显示缓冲区

UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

引言 作为AllInOne的智能化服务技术栈,UAVStack提供了非常全面的监控数据采样功能,同时支持数据监控与预警.近期,我们整合了原有的数据采集展示功能,新增JVM分析功能,推出了更易用的JVM监控分析工具. 熟悉JDK的开发者都知道,JDK本身提供了一套JVM分析工具,包括jinfo.jmap.jstack等.用户可以通过命令行轻松获取JVM内存堆栈信息.内存对象分配以及JVM启动基本参数信息.但这些工具需要在命令行环境中执行,且生产环境下则需要通过堡垒机转发. 开源社区一些不错的JVM

在linux中快速使用docker搭建ELK日志监控分析系统

在linux中使用docker安装ELK日志监控分析系统 网上的教程非常零散或者很多都已经过时了,我这里总结了相比于其他更新的日志系统搭建.并且使用docker镜像,更加简化了安装.在这开始之前先附上我的成功配置截图: linux的安装 linux的安装很简单,但是要使用docker必须安装centos7及以上,不然出现的各种兼容性问题自行百度解决.这里有两种方法: 如果是学生可以购买阿里或者腾讯的linux服务器,简单方便,每个月只要10元钱,其实挺划算的.这是阿里linux的购买地址:htt