Home  >  Q&A  >  body text

php - 如何做服务监控

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

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

ringa_leeringa_lee2725 days ago447

reply all(6)I'll reply

  • 怪我咯

    怪我咯2017-04-10 15:15:22

    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

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:15:22

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

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 15:15:22

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

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:15:22

    写个统计的interceptor,通过kafaka或写入日志,通过flume同步到数据平台分析

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 15:15:22

    直接在API接口处理请求的时候异步写log,再使用另外的解析系统来分析,并提供界面展示或者提供API接口给原来的程序调用查看

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 15:15:22

    tomcat 自带的访问日志可以打印调用某个url的时间,然后基于这个访问日志统计就可以了

    reply
    0
  • Cancelreply