服务调用监控工具

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:      公司最近要做一个服务监控的工具,包括 调用次数、成功率、响应时长、失败明细等信息,正好还在用阿里的edas,想着通过api的方式全都搞定了,可是公司用的专有云,没有监控的api,只能从头来做了。


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


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

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

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


    设计:


     55f66b58056705784cc0e0bd9434b337dea7d228


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


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


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


    效果如图:

    40a449e01ec7b06b56ecde4b13e56f77624fc271acfd78ee513db7ee4e7718874815c60af34f826c0df560fb277f5088bea17d486ea59cd2b20f12c6     


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

   


    

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
监控 前端开发 JavaScript
一步一步搭建前端监控系统:接口请求异常监控篇
摘要: 如何监控HTTP请求错误? 作者:一步一个脚印一个坑 原文:搭建前端监控系统(四)接口请求异常监控篇 Fundebug经授权转载,版权归原作者所有。 背景:市面上的监控系统有很多,大多收费,对于小型前端项目来说,必然是痛点。
2020 0
|
5月前
|
监控 Java 测试技术
分布式链路监控系统问题之Skywalking和Eagleeye在数据收集方面的问题如何解决
分布式链路监控系统问题之Skywalking和Eagleeye在数据收集方面的问题如何解决
|
5月前
|
监控 API 开发者
分布式链路监控系统问题之ClassMatch在Skywalking中有什么作用
分布式链路监控系统问题之ClassMatch在Skywalking中有什么作用
|
5月前
|
监控 Java API
分布式链路监控系统问题之Skywalking中的witness工作的问题如何解决
分布式链路监控系统问题之Skywalking中的witness工作的问题如何解决
|
8月前
|
存储 监控 Java
一文看懂分布式链路监控系统
本文通过阿里的Eagleeye(鹰眼)和开源的Skywalking,从数据模型、数据埋点以及数据存储三个方面介绍分布式链路监控系统的实现细节,其中将重点介绍Skywalking字节码增强的实现方案。
91636 6
|
7月前
|
Prometheus 监控 Cloud Native
搭建服务端性能监控系统 Prometheus 详细指南
搭建Prometheus监控系统,涉及Ubuntu上Docker的安装,通过`docker run`命令启动Prometheus容器,并挂载配置文件。配置文件默认示例可以从GitHub获取,调整`scrape_interval`和`targets`以监控Prometheus自身及Node Exporter(提供系统指标)。Node Exporter以Docker容器形式运行在9100端口。完成配置后,重启Prometheus容器,通过Web界面查看监控数据。后续将介绍结合Grafana进行可视化。
|
8月前
|
Java 微服务
skywalking链路追踪时忽略指定异常
skywalking链路追踪时忽略指定异常
|
8月前
|
数据采集 存储 监控
如何监控微服务调用
【2月更文挑战第2天】搭建一个服务监控系统,涉及数据采集、数据传输、数据处理、数据展示等多个环节。
|
监控 Dubbo 关系型数据库
基于SkyWalking的分布式跟踪系统 - 微服务监控
基于SkyWalking的分布式跟踪系统 - 微服务监控
187 1
|
消息中间件 数据可视化 JavaScript
什么是链路追踪?分布式系统如何实现链路追踪?
什么是链路追踪?分布式系统如何实现链路追踪?