本人对现阶段应用监控产品做了调研, 主要围绕Pinpoint,Aliapm,Cat这些产品,虽然都是监控产品但是挑选的是有典型性、侧重点不同的应用监控系统,一共分三款产品进行介绍
1) Pinpoint产品调研(韩国人开发)
2) Aliapm产品调研(阿里巴巴)
3) Cat产品的调研(大众点评)
一、Pinpoint产品
Pinpoint是韩国人开发的一款APM产品,能满足用户应用层的大部分监控功能,并且性能损耗在3%左右,这个我并没有具体测试,默认探针小于10%以下性能消耗是可以接受的,地址:https://github.com/naver/pinpoint
1) 优缺点如下:
①支持大部分框架、服务,包括分布式服务、数据库服务、缓存服务,可满足大部分应用需求
②满足应用之间的Trace跟踪功能功能
③客户端与Collector采用Thrift协议+TCP/UDP支持
④低功耗运行3%的资源消耗
⑤完善的应用拓扑
⑥支持两种字节码修改框架,侵入性并不高,只做应用间Trace埋点,采集
⑦不支持TOP监控(实际上这个都需要自己开发,大数据实时分析)
⑧提供告警功能
2) 功能:
① 框架和服务部分:
JDK6+
Tomcat6/7/8, Jetty 8/9, JBoss EAP 6
Spring,Spring Boot
ApacheHTTP Client 3.x/4.x, JDK HttpConnector, GoogleHttpClient, OkHttpClient,NingAsyncHttpClient
ThriftClient, Thrift Service, DUBBO PROVIDER, DUBBO CONSUMER
MySQL,Oracle, MSSQL, CUBRID, DBCP, POSTGRESQL, MARIA
Arcus,Memcached, Redis, CASSANDRA
iBATIS,MyBatis
gson,Jackson, Json Lib
log4j, Logback
② 框架和服务部分:
支持应用拓扑,支持分布式跟踪,支持调用链查询,JVM监控,告警等等
③ 缺少的部分:
Weblogic支持(开源社区有在开发,但是并未提供)
并没有TOP监控
3) 功能浏览:
二、Cat产品
CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,基本接入了美团点评上海侧所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团点评各业务线提供系统的性能指标、健康状况、监控告警等。
1) 优缺点如下:
①实时高效
②调研链跟踪
③系统开销小
④全量监控
⑤数据查询
⑥可扩展
⑦并不能直接识别应用系统框架服务,这款产品具有很强的侵入性,需要用户调用Cat API自定义监控打点以及监控纬度数据,侧重于业务监控
2)功能:
①HTTP/REST、RPC/SOA、MQ、Job、Cache、DAL;
②搜索/查询引擎、业务应用、外包系统、遗留系统;Spring, Spring Boot
③第三方网关/银行, 合作伙伴/供应商之间;
④各类业务指标,如用户登录、订单数、支付状态、销售额。
从上面的实现来看,基本可以确定这个产品代码侵入性较高,但是业务结合还是比较紧密的,能更细粒的根据不同纬度监控业务数据
3) 功能浏览:
三、Aliapm产品
AliAPM是一个能够对应用和服务进行深度监控的应用性能管理平台,能够帮助开发者进行快速故障诊断、性能瓶颈定位、架构梳理、容量评估等工作,当然和上面2款产品侧重点有所不同,性能消耗也在8%~10%
,在可以承受范围之内,地址:https://apm.aliyun.com
1) 优缺点如下:
①主要特性包括
②应用关键路径的实时性能监控
③数据库操作性能监控
④NoSQL操作性能监控
⑤API接口调用性能监控
⑥性能问题追踪, 服务端环境监控
⑦自定义告警
⑧当前并不提供Trace功能(考虑和鹰眼重合并没有作为重点开发),但相对于pinpint提供强大的的top监控
2)功能:
3) 功能浏览:
总结:
功能 |
Pinpoint |
Cat |
Aliapm |
应用服务拓扑监控 |
支持 |
支持 |
支持 |
调用链路功能 |
支持 |
支持 |
支持 |
是否需要Java Agent接入 |
是 |
否 |
是 |
是否需要SDK接入 |
否 |
是 |
否 |
自定义API监控 |
否 |
是 |
是 |
是否支持JDK6/JDK7/JDK8 |
是 |
是 |
是 |
性能损耗 |
低 |
低 |
中 |
当然还有其他类型的监控比如比较有名的oneapm,newrelic都是比较好的产品,因为这两款都是综合性比较强的产品,这里我就不具体说了。