前 言
最近幾年APM是個網紅詞匯,但是大家對APM的認知還有一些誤區,人們普遍認為APM是解決應用故障的利器。當業務系統被投訴緩慢或者內存泄露被迫不斷重啟等問題出現時,運營商就快速找一個APM廠商,要求幫忙快速定位問題,如果問題解決了說明產品有價值,但由于問題已經解決便不再購買,如果沒有解決則認為APM沒有用更不再購買了!
但是要知道,解決應用生產環境中的各種性能故障是APM的絕招之一,如果只是將APM應用在這個范疇,那真是殺雞用了牛刀呀!今天我們就和大家聊聊,APM還有哪些價值。
我們認為,APM還有下面四個方面的核心價值:
1. 動態業務系統架構的梳理分析
2. 關鍵業務的篩選
3. 系統故障快速鎖定排查
4. 全量數據多維度智能關聯分析
1.動態業務系統架構分析
某電力客戶的部分業務請求需要加載幾分鐘才能出來,審批一個列表經常喝完一杯水都還沒有完成。經過多次不同環境、不同時段測試發現該狀況是一個常態,我們從URL請求架構層出發研究調用系統方法量和訪問數據庫量進行分析,發現單次URL請求調用數據庫達到幾百次,頻繁調用數據庫導致執行效率降低,增加URL請求的處理時間,通過在業務系統增加緩存機制大大提升了業務請求的效率。
APM必須具備系統架構的分析能力,架構分析可從兩個維度分析,分別是:業務系統運行狀態和各組件之間的數據對比。下面我就給大家說說兩個維度應該分析的內容:
(1)、 業務系統運行狀態。架構合理的業務系統數據異常只是偶發性事件,持續發生數據異常均為架構不合理造成的。
(2)、各組件之間的數據對比。
2.智能鎖定關鍵業務能力
每個應用少則擁有幾千個不同的URL,多則擁有上萬個URL,每天的請求量都在十萬級、百萬級、千萬級以上,這么多不同的URL和海量URL請求數據,如何從中準確找到用價值的URL并對這些關鍵的業務請求進行布控即成為關鍵。
APM必須要擁有對URL智能分組統計的能力,并對自動分布的URL進行任意參數的TOP對比。如:請求次數最多的10個URL、相應時間最長的10個URL、錯誤率最高的10個URL、失敗率最高的10個URL。在找到關鍵的URL后可以快速標記并進行自定義命名。對海量的URL請求可以做到自動標記和命名,并對重要業務進行自動標記和自定義命名。智能鎖定關鍵交易后可對關鍵交易進行精準優化和唯一策略的精準告警等。
但是常常技術指標上發現的URL經常是助攻型業務請求,不是真正的核心業務,這時候就需要開發人員、業務人員和工具一起快速確定關鍵業務。
3.系統故障快速鎖定排查能力
伴隨著各系統微服務化的演進,服務數量、機器規模的不斷增長,線上環境也變得日益復雜,工程師們每天都會面臨著這些苦惱:
1.線上系統出現故障時無法第一時間感知;
2.面對線上系統產生的海量日志,排查故障時一籌莫展;
3.系統內部及系統間的調用鏈路產生故障時難以定位;
……
線上應用的性能問題和異常錯誤已經成為開發人員和運維人員最大的挑戰,而排查這類問題往往需要幾個小時甚至幾天的時間,效率低下且嚴重影響了業務發展。
高效運維APM必須要具備一項能力:要做到實時告警,針對應用層、服務器層、單業務層、用戶層等多層級多維度的告警機制,做到系統故障第一時間感知。在告警的同時要對故障進行記錄,標記故障位置,在故障排查時查看發生時的系統資源狀態、交易鏈調用、故障信息、組件狀態等做到還原故障現場。
4.全量數據多維度關聯分析能力
APM監控到的海量數據如果只是用來故障排查,那就大大降低了數據的價值。如何讓APM監控的數據發揮更大價值呢?這個就需要APM擁有全量數據多維度關聯分析的能力,包括任一時段任意維度的數據環比分析,不同組件數據間的智能關聯分析。如:今天與昨天的數據對比,本周與上周的數據對比,URL請求與數據庫調用比例,前端與后端相應時間對比等。
APM只解決故障的時代已經過去
數據在未來企業發展中舉足輕重,人們常說“得數據者得天下”。APM一直以來的職責都是依靠不斷獲取數據來完成,隨著APM的不斷發展,所獲取的數據也越來越多、越來越全面,數據的不斷積累使得APM的使命不斷豐富。新一代的APM要向應用業務性能管理邁進,強調業務分析能力,幫助企業進行業務梳理,抓住業務變化趨勢背后的需求變化,用業務數據、智能分析為企業創新、創收提供支撐。