自己做了一個rails項目的性能監(jiān)控GEM(SimpleApm)
Github: https://github.com/xiayuanyin/simple_apm
功能
基于Redis的簡單的Web請求性能監(jiān)控/慢事務追蹤工具
以天為維度記錄:
- 最慢的500個(默認500)請求
- 記錄每個action最慢的20次請求
- 記錄每個action的平均訪問時間
- 記錄慢請求的詳情和對應SQL詳情(多余的會刪掉)
- 以10分鐘為刻度記錄平均/最慢訪問時間陨帆、次數(shù)等性能指標,并生成圖表
- 記錄請求中外部http訪問時間
原理
圍繞Rack記錄請求級別的相關(guān)信息扛伍,使用redis作為數(shù)據(jù)存儲/計算工具來記錄慢事務
數(shù)據(jù)傳遞核心為:Active Support Instrumentation
處理Instrument方式為開啟一個不影響主線程的常駐線程,循環(huán)計算處理數(shù)據(jù)
獲取內(nèi)存信息用到了gem: get_process_mem,經(jīng)測試在linux系統(tǒng)耗時在1ms以下
功能截圖
-
Dashboard
-
慢請求列表
-
Action列表
-
請求詳情
-
Action概況
-
數(shù)據(jù)管理