如何做服务监控
服務(wù)端對每一次的接口調(diào)用次數(shù),響應(yīng)時間等這些數(shù)據(jù)進行監(jiān)控,收集分析。
服務(wù)端類似給手機app提供的服務(wù)端接口。
能想到的方案如下:
1.最直接的方法肯定是在每一個方法里面都加統(tǒng)計的代碼。
2.用aop,在不侵入原代碼的情況下,做統(tǒng)計
3.可以在程序記錄日志,然后在分析日志的方法。
希望有經(jīng)驗者能講講利弊跟推薦一下到底用哪種合適。
回復(fù)內(nèi)容:
服務(wù)端對每一次的接口調(diào)用次數(shù),響應(yīng)時間等這些數(shù)據(jù)進行監(jiān)控,收集分析。
服務(wù)端類似給手機app提供的服務(wù)端接口。
能想到的方案如下:
1.最直接的方法肯定是在每一個方法里面都加統(tǒng)計的代碼。
2.用aop,在不侵入原代碼的情況下,做統(tǒng)計
3.可以在程序記錄日志,然后在分析日志的方法。
希望有經(jīng)驗者能講講利弊跟推薦一下到底用哪種合適。
1 2 都可以
3和1 2 不沖突
像你這種服務(wù)端統(tǒng)計接口調(diào)用情況的其實也不用aop,在統(tǒng)一的一個入口位置加一個統(tǒng)計代碼即可,這個入口能獲取到當前調(diào)用的接口名,然后計時,等接口返回后停止計時得到耗時數(shù)據(jù)以及是否成功及失敗的錯誤日志,然后上報(可以UDP上報[不阻塞業(yè)務(wù),推薦],TCP上報[可能阻塞,不推薦],寫日志[有大量磁盤IO,不推薦])
發(fā)你個寫好的統(tǒng)計服務(wù)端,包含了上報接口,udp上報,web頁面展示
https://github.com/walkor/workerman-statistics
這個是個php的json-rpc ,集成了這個統(tǒng)計系統(tǒng)
https://github.com/walkor/workerman-JsonRpc
系統(tǒng)層面: cacti zappix 等久可以監(jiān)控起來 當然可以做到郵件手機短信閥值報警
業(yè)務(wù)應(yīng)用層面: 使用goaccess 可視化分析nginx日志 的確終端下亮瞎眼... goaccess官網(wǎng)
如果前端是nginx可以用工具分析access.log做統(tǒng)計,寫個腳本隔一段時間統(tǒng)計然后寫入數(shù)據(jù)庫即可
寫個統(tǒng)計的interceptor,通過kafaka或?qū)懭肴罩荆ㄟ^flume同步到數(shù)據(jù)平臺分析
直接在API接口處理請求的時候異步寫log,再使用另外的解析系統(tǒng)來分析,并提供界面展示或者提供API接口給原來的程序調(diào)用查看
tomcat 自帶的訪問日志可以打印調(diào)用某個url的時間,然后基于這個訪問日志統(tǒng)計就可以了
總結(jié)
- 上一篇: 股票分时成交红色和绿色代表什么
- 下一篇: 关于php二次开发的疑点