如何做服务监控


服务端对每一次的接口调用次数,响应时间等这些数据进行监控,收集分析。
服务端类似给手机app提供的服务端接口。
能想到的方案如下:
1.最直接的方法肯定是在每一个方法里面都加统计的代码。
2.用aop,在不侵入原代码的情况下,做统计
3.可以在程序记录日志,然后在分析日志的方法。

希望有经验者能讲讲利弊跟推荐一下到底用哪种合适。

服务器开发 java php 服务器性能 系统架构

lapla 10 years, 2 months ago

系统层面: cacti zappix 等久可以监控起来 当然可以做到邮件手机短信阀值报警
业务应用层面: 使用goaccess 可视化分析nginx日志 的确终端下亮瞎眼... goaccess官网

MoRod answered 10 years, 2 months ago

如果前端是nginx可以用工具分析access.log做统计,写个脚本隔一段时间统计然后写入数据库即可

loz163 answered 10 years, 2 months ago

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

这名字不错啊 answered 10 years, 2 months ago

Your Answer