API性能监控 【ApiHelp】-- 架构设计 和 技术方案

15 篇文章 0 订阅
14 篇文章 0 订阅

      上一篇文章介绍了ApiHelp的Api性能监控的相关功能和以及操作过程ApiHelp介绍。后面就开始正式的分享记录该功能的实现过程。本篇文章主要讲解ApiHelp内部实现架构设计,以及相关技术。

架构图:

 ApiHelp内部分为4个组件和5种日志文件。

4个组件分别为 Run组件、View组件、Monitor组件、Enhance组件。

5种文件为:perf.log、trace.log、http.log、sql.log、run.log

【4个组件】:

Run组件:主要用于启动ApiHelp视图工具vm,需要注意的是该工具使用到了jvm种tool.jar内的相关工具方法,但是因为tool.jar并不属于jre内,所以jvm并不会加载到该类方法,所以run在启动是,进行了vm类加载器扫描范围的配置。

View组件:视图组件,主要用于视图展示、操作,以及日志文件分析功能。

Monitor组件:核心组件,主要实现调用enhance组件核心增强方法 以及 具体的监控工作,API执行过程中,记录相关的监控数据内容。(后续会介绍具体的监控设计手段)

Enhance组件:核心组件,用于目标程序相关类方法增强工作,达到监控目的。(后续详细介绍)

【5种日志】

perf.log : 用于记录当前请求API性能相关信息数据。

trace.log:用于记录当前API调用trace相关信息数据。

http.log:用于记录当前API相关http调用信息数据。

sql.log:用于记录当前API相关sql执行信息数据。

run.log:用于记录当前监控操作过程日志。

总结 架构和设计思路

      ApiHelp的设计思路 是通过外部程序组件view,将monitor组件attch到目标vm中,此时monitor就可以运行在目标vm内,通过enhance组件,对需要监控的类方法进行字节码增强,用于记录相关性能的信息,比如记录方法的执行时间等。最终被增强的目标类方法,执行时的记录数据会被monitor进行记录到本地日志文件中,最终由view组件进行解析和展示。

技术方案:

该工具实现的需要的技术不是很多,但是需要有一定的jvm原理知识,比如 java Attach技术、 虚拟机类加载原理、class字节码执行指令过程、ASM框架技术、等等,更多的知识点在后续分析中再介绍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Survivor001

你可以相信我,如果你愿意的话

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值