如何做服务监控
服務端對每一次的接口調用次數,響應時間等這些數據進行監控,收集分析。
服務端類似給手機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的時間,然后基于這個訪問日志統計就可以了
總結
- 上一篇: 股票分时成交红色和绿色代表什么
- 下一篇: 关于php二次开发的疑点