APM(Application Performance Management & Monitoring)一种基于云的性能监控服务(SaaS),以非侵入式监听探针,收集应用关键指标,生成分析报表展现,并且提供监控告警服务等。支持移动端、浏览器、服务器等多角度监控。提供了最终用户体验监控,应用拓扑的发现与可视化,用户自定义业务分析,应用组件深度监控,IT运营分析等五个功能维度提供服务。相较于传统的zabbix、nagios等运维监控工具,更专业、更深入应用细节、更方便定位问题细节、更精确洞悉故障代价。

国外比较知名的公司有new relice,国内有OneAPM、听云、透视宝、云智慧、监控宝等。各家所提供服务同质化严重、差异不大,整个市场可谓是群魔乱舞、多方角逐。其中以new relice作为行业领军,创立于2008年,于2014年顺利IPO,管理层12人拥有70%的投票权,创始人Cirne持有24.2%的股份,也是最大股东。并由此开创了APM这一行业。

 

APM核心功能

最终用户体验监控:测量应用和终端用户之间所有交互方式的响应时间、健康状况。

应用拓扑映射:自动检测和展示所有应用集群所涉及的组件。需要知道在任意指定时间内使用了哪些应用组件,特别是当某个问题对用户造成影响的时候。

业务事务分析:检测和测量由单个用户发起的请求所涉及的所有应用组件活动中的响应时间。提供分析仪表板很容易地看出哪一个交易失败的受到影响的用户是谁。这与测量单个web页面的响应时间是不同的维度。

应用组件深度监控:检测和测量代码在应用容器中执行耗时,离线转储分析,自动检测线程死锁,线程状态,资源等待,线程堆栈内容和代码分析等。

IT运营分析:预测分析和容量规划,以实现积极主动的管理。面向APM的生命周期管理,经验上技术运行团队总是疲于应对生产故障。支持性能预测,趋势和容量的分析,当前阶段的APM解决方案帮助技术运行团队,及早进行性能分析,在应用性能出现瓶颈实现解决问题,减少停机、提高性能和优化利用资源。

 

性能衰减

当然做到如此细致入微的监控,其本身也带来了一定幅度的性能衰减。笔者在云服务平台执行对比测试,采用如下配置:

类型

硬件

软件&配置

应用服务

8核8G

java1.866 JAVA_OPTS="$JAVA_OPTS -Xms3200m -Xmx3200m -XX:NewRatio=3  -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=82 -XX:+CMSClassUnloadingEnabled"

tomcat7.0.67 protocol="org.apache.coyote.http11.Http11NioProtocol"

缓存服务

4G

Redis2.8.17

数据库

8核16G

MySQL-5.5

测试场景:以查询为主,查询缓存与查询数据频率为1:1。

测试策略:利用jmeter作为测试工具。

以下为是否启用监控探针对比结果图:


 

APM的Java性能监控 apm应用性能监控厂商_APM的Java性能监控

APM的Java性能监控 apm应用性能监控厂商_SQL_02


 

笔者只使用过听云所提供的服务,以下为通过官网描述收集到的对比结果:

指标

New Relic

听云

OneAPM

云智慧

监控宝

透视宝

Ruby

O

X

O

O

O

O

Python

O

O

O

O

O

O

Java

O

O

O

O

O

O

.Net

O

O

O

O

O

O

PHP

O

O

O

O

O

O

Node.js

O

O

O

O

O

O

Android

O

O

O

O

O

O

IOS

O

O

O

O

O

O

win Phone

X

X

X

X

X

X

Browser

O

O

O

O

O

O

Apache

X

X

O

O

O

O

NGINX

X

X

O

O

O

O

Lighttpd

X

X

X

O

O

O

Resin

X

X

X

O

X

X

IIS

X

X

X

O

O

X

Tomcat

X

X

O

X

O

O

WebLogic

X

X

O

O

O

O

WebSphere

X

X

O

O

O

X

JBOSS

X

X

X

O

O

O

Exchange-Server

X

X

X

O

O

X

EQMail-Server

X

X

X

O

O

X

标准Email

X

X

X

O

O

X

Tuxedo

X

X

X

O

O

X

MSMQ

X

X

X

O

X

X

IBM MQ

X

X

X

O

X

X

FioranoMQ   server

X

X

X

O

X

X

RabbitMQ

O

X

X

X

X

X

Redis

O

O

O

O

O

O

Memcached

X

X

O

O

O

O

MySQL

O

O

O

O

O

O

Postgres

O

X

X

O

X

O

MongoDB

O

X

O

O

O

O

ORACLE

X

O

X

O

O

O

MS   SQL Server

X

O

X

O

O

O

DB2

X

X

X

O

X

X

Backup SQL

X

X

X

O

X

X

Informix

X

X

X

O

X

O

SQLite

X

X

X

O

X

X

Docker

X

X

X

X

X

O

 

整体来说虽然New Relic作为行业领军,但是国外的网站有被墙的风险。国内多家公司群雄逐鹿,俨然已是一片红海。既然是卖服务,国内的公司相对而言更接地气一点。相比较而言,云智慧所提供的监听指标更多,

但同时适合企业自身的才是最好的。接触过听云的销售人员,个人感觉对于自身产品的了解程度都不够深入,给予我们的产品讲解也没有说明白。卖服务整体市场要能给予良好的服务体验,明确的指导用户使用。

 

总结

New Relic的创业故事里提到,他凑够10万美元启动资金,独自耗时1年开发出产品雏形。换算为人民币则大致为60万,在此简单推算作为国内企业而言,如果购买APM服务一年花费30万,其实就可以考虑自主开发。适合企业自身需求定制,同时为大数据驱动的企业商业智能提供了庞大的数据支持。