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作為測試工具。
以下為是否啟用監控探針對比結果圖:



筆者只使用過聽雲所提供的服務,以下為通過官網描述收集到的對比結果:
| 指標 | 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萬,其實就可以考慮自主開發。適合企業自身需求定制,同時為大數據驅動的企業商業智能提供了龐大的數據支持。
