前言
为什么要实现一个监控系统? 要监控那些东西? 监控的这些东西对我分析系统产生那些有意义的帮助? 要怎么样去监控这些东西? 采用什么技术来实现? ...
监控系统的目的
采集和处理应用系统运行的状态信息,性能数据,业务数据以满足监控数据的展现、告警分析以及故障管理等内容。
实现的技术手段
aop、log4j\log4j2
实现过程
这里引入一个探针的概念。利用aop的切面功能定义好系统需要监控的几个关键位置,相当于在这些地方设置了关卡,当数据流经这里对数据当时的状态进行记录日志,对业务又没有影响。 这里我们可能也会想到拦截器,也有类似功能,但是拦截器主要是针对请求的url进行拦截。
实现细节
基于配置的实现方式:
<aop:config>
<aop:aspect>
<aop:pointcut id="" ref=""></aop:pointcut>
<aop:before expression="" id=""></aop:before>
<aop:after-returning pointcut-ref="" method=""></aop:after-returning>
<aop:after-throwing pointcut-ref="" method=""></aop:after-throwing>
</aop:aspect>
</aop:config>
基于注解的实现方式:
@Aspect
@Pointcut
@Before
@AfterReturning
@AfterThrowing
?
|