應用性能監控

jopen 9年前發布 | 10K 次閱讀 性能監控


先看下百度里面對應用性能監控的基本定義:

APM = Application Performance Management,應用性能管理,對企業系統即時監控以實現對應用程序性能管理和故障管理的系統化的解決方案。

應用性能管理是一個比較新的網絡管理方向,主要指對企業的關鍵業務應用進行監測、優化,提高企業應用的可靠性和質量,保證用戶得到良好的服務,降低IT總擁有成本(TCO)。一個企業的關鍵業務應用的性能強大,可以提高競爭力,并取得商業成功,因此,加強應用性能管理(APM)可以產生巨大商業利益。

資源池-》應用層-》業務層

這個可以理解為APM的一個關鍵點,原有的網管類監控軟件更多的是資源和操作系統層面,包括計算和存儲資源的使用和利用率情況,網絡本身的性能情況等。但是當要分析所有的資源層問題如何對應到具體的應用,對應到具體的業務功能的時候很難。

傳統模式下,當出現CPU或內存滿負荷的時候,如果要查找到具體是那個應用,那個進程或者具體哪個業務功能,哪個sql語句導致的往往并不是容易的事情。在實際的性能問題優化中往往也需要做大量的日志分析和問題定位,最終才可能找到問題點。

資源上承載的是應用,應用本身又包括了數據庫和應用中間件容器,同時也包括了前端;在應用之上則是對應到具體的業務功能。因此APM一個核心就是要將資源-》應用-》功能之間進行整合分析和銜接。

和BAM的整合

APM不應該是孤立的,可以將APM理解為銜接底層網管和資源監控,上層BAM業務活動監控之間的橋梁。在這里要強調兩點,應用本身的性能問題最終會對應到具體的業務功能,同時對于最終的業務人員不關心應用和底層資源而更加關注業務本身的效率和性能。

對于BAM業務監控的重點包括了單個業務功能本身的執行效率和性能分析,也包括了業務系統間集成和協同的效率和分析。對于在SOA或ESB集成平臺里面我們會關系系統間的業務和數據集成,這也將納入到BAM業務監控的范疇里面。

在前面有一篇文章我專門談到過對于企業IT信息和資產的可視化問題,可以看到IT系統和應用功能,包括其集成架構和基礎設置資源的可視化將更好的反應出IT對業務的支撐情況。例如一個端到端業務流程可以看到哪些業務系統在支持,有哪些業務和數據集成;對于一個業務功能我們可以快速的看到支撐的 IT系統,同時還可以朝下分析快速的看到對應使用的資源情況等。要實現這些需要的就是APM和BAM的高度整合和配合。


在討論APM的具體功能前,還是需要思考下APM出現關鍵解決的問題有哪些。

首先對于資源和操作系統層的監控有時候很難真實反應出應用是否正常?傳統做法有時候也會專門做應用監控,類似在應用里面內置sdk包或心跳檢測機制。確保應用本身的中間件和數據庫正常。這應該是APM至少應該包括的一個使用場景。

其次,如何及時的發現應用性能問題?同時在應用性能問題發現后能夠協助開發人員準確的定義到具體的業務功能點,再進一步定位到具體的數據庫 sql或代碼組件。要明白有不少場景是雖然資源利用率不高,但是應用響應緩慢或有嚴重的性能問題,這些都需要到應用監控層面才能夠反應出來。

最后,即我們所說的業務層面,即應用究竟承載了多少業務,產生了多少業務單據,有多少業務流程或活動在執行,這些業務本身的響應和性能如何?如何能夠準實時的分析和監控這些數據,那么就可以更好的反應出IT系統對整個業務的支撐情況。

核心的功能有哪些?

應用監控狀態的監控:首先要反應出當前應用是否運行正常,具體的監控指標涉及到本身類似心跳方式的應用健康檢測,同時包括對中間件,線程數,JVM內存,消息,數據庫連接池等關鍵內容的監控。

性能分析和診斷:這個應該是APM相當重要的一個功能,即對于一個業務功能出現性能問題的時候,我們可以快速的進行性能分析和診斷,包括涉及到的業務組件和數據庫sql,一個業務請求從發起到每一層調用所花費的具體時間,sql語句本身的時間耗費等,如果能做到這點將幫助我們快速的定位到業務性能問題。

日志采集和告警:前面有文章也談到過特別是將來的分布式架構下,對于中間件和數據庫的準實時日志采集和分析將成為監控和定位問題的一個關鍵點。因此APM需要具備這個能力,即可以準實時的采集各種中間件,應用的日志信息并進行結構化處理,對于出現告警的日志能夠實時的發出告警和郵件通知等。

難點在哪里?

其一是APM產品能夠完全平滑的部署,對原有的業務系統沒有任何影響,只需要增加相關的配置,這個是APM產品能否通用化的一個關鍵點。其二是監控的實時性問題,能否做到基本準實時的業務監控和性能告警。其三是性能分析的時候對問題的定位能夠深入到哪個程度,如是否能夠到具體的組件和sql語句。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!