2.2 监控实现方案
2.2.1 收集数据的切入点
在JAVA WEB中有个可以自定义的组件叫做过滤器,它可以插入到处理请求逻辑的最前端。所有的请求必须经过过滤器,执行完了以后又返回过滤器。这个点正是我们实现记录“请求—响应“的重要信息的非常好的切入点。在该点切入有如下优点:
1)最前端拦截
2)跟应用代码无耦合
3)拔插方便
4)真正的服务端耗时
2.2.2 收集日志的流程
在切入点,我们可以进行收集我们需要的数据。收集数据的流程如图3所示。每当有请求过来,就启动计时器,然后执行业务方法。业务方法执行完之后,计时完成。然后把收集的请求信息,计时信息等传入到日志模块中,日志模块根据策略把信息写入到文件中。实际上是有两个模块组成。
1)过滤器
负责启停计时器和执行业务方法,收集信息,启动日志模块。
2)日志模块
负责收集和整理信息,并按照策略写入日志文件。牺牲一点性能。