服務端對每一次的介面調用次數,回應時間等這些資料進行監控,收集分析。
服務端類似給手機app提供的服務端介面。
能想到的方案如下:
1.最直接的方法肯定是在每一個方法裡面都加統計的代碼。
2.用aop,在不侵入原代碼的情況下,做統計
3.可以在程式記錄日誌,然後在分析日誌的方法。
希望有經驗者能講講利弊跟推薦一下到底用哪種合適。
回複內容:
服務端對每一次的介面調用次數,回應時間等這些資料進行監控,收集分析。
服務端類似給手機app提供的服務端介面。
能想到的方案如下:
1.最直接的方法肯定是在每一個方法裡面都加統計的代碼。
2.用aop,在不侵入原代碼的情況下,做統計
3.可以在程式記錄日誌,然後在分析日誌的方法。
希望有經驗者能講講利弊跟推薦一下到底用哪種合適。
1 2 都可以
3和1 2 不衝突
像你這種服務端統計介面調用情況的其實也不用aop,在統一的一個入口位置加一個統計代碼即可,這個入口能擷取到當前調用的介面名,然後計時,等介面返回後停止計時得到耗時資料以及是否成功及失敗的錯誤記錄檔,然後上報(可以UDP上報[不阻塞業務,推薦],TCP上報[可能阻塞,不推薦],寫日誌[有大量磁碟IO,不推薦])
發你個寫好的統計服務端,包含了上報介面,udp上報,web頁面展示
https://github.com/walkor/workerman-statistics
這個是個php的json-rpc ,整合了這個統計系統
https://github.com/walkor/workerman-JsonRpc
系統層面: cacti zappix 等久可以監控起來 當然可以做到郵件手機簡訊閥值警示
業務應用程式層面: 使用goaccess 可視化分析nginx日誌 的確終端下亮瞎眼... goaccess官網
如果前端是nginx可以用工具分析access.log做統計,寫個指令碼隔一段時間統計然後寫入資料庫即可
寫個統計的interceptor,通過kafaka或寫入日誌,通過flume同步到資料平台分析
直接在API介面處理請求的時候非同步寫log,再使用另外的解析系統來分析,並提供介面展示或者提供API介面給原來的程式調用查看
tomcat 內建的訪問日誌可以列印調用某個url的時間,然後基於這個訪問日誌統計就可以了