服务调用监控工具


     公司最近要做一个服务监控的工具,包括 调用次数、成功率、响应时长、失败明细等信息,正好还在用阿里的edas,想着通过api的方式全都搞定了,可是公司用的专有云,没有监控的api,只能从头来做了。


    要求:不能对之前的代码有侵入,并且 最重要的是不能影响性能。

    思路:以切面方式来实现对应用程序无感知,并加入mq异步消息方式 解决性能问题。

              mq与输出日志两种方式均可以记录访问信息,但是输出日志在大并发下会有性能问题,而且核心应用的日志级别一般都是ERROR的,一般会屏蔽INFO级别日志, 再一个对于一个一天调用量6-7亿次的应用来说,日志记录的话文件也会非常大,占用空间不说,处理起来也会非常耗时;利用mq异步的话,在内存中只会利用非常小的空间来存储对应接口的调用记录即可,而且不是实时发送,所以性能影响更小。


    设计:


     55f66b58056705784cc0e0bd9434b337dea7d228


     服务分为两个:监控服务、统计服务


     监控服务 是以jar的方式集成到各个应用里的,定时器 每到整分钟时会发送 上一分钟统计的所有数据,这些数据包括接口名、成功数,失败数,耗时,主机IP,调用来源等信息,而异常信息是实时发送的,只要有异常,就发送一个消息,通过mq的tag与统计消息进行区分,异常明细包括:接口名,参数,异常明细,调用来源、时间等。


     统计服务 是独立的服务,接收到 正常的消息后 会存入数据库,并进行各维度的展示;异常消息  会存入到文件,然后通过beam对异常文件进行梳理,对指定的服务配上策略进行告警。


    效果如图:

    40a449e01ec7b06b56ecde4b13e56f77624fc271acfd78ee513db7ee4e7718874815c60af34f826c0df560fb277f5088bea17d486ea59cd2b20f12c6     


    监控服务中还有硬件的一些监控,与edas的重叠了,所以也没展示出来, 后续还有gc监控等,方便排查线上问题。

   


    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值