使用jmx监控service接口

1:现在很多系统使用了dubbo的调用方式,这样就跳过了stc框架的状态机的,系统运行的状况就不能看到,不知道运行的方法效率性能!以及异常状况的监控!

 思路:基于spring的aop方式,通过拦截器,对service的执行方法起始时间,结束时间记录下来,然后jmx监控起来!

            这样会对service层包下面所有的类都会监控,所以考虑针对特定的类和方法来实现!本人比较喜欢使用注解,所以使用注解来实现!

           增加一个注解!在需要的方法或者service层上面注解就可以实现对特定的类和方法实现监控!也可以监控执行异常的数量!

@Target({ElementType.TYPE,ElementType.METHOD}) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Monitor {
/**
* 默认jmx暴露该方法
* @return
*/
public abstract boolean registerMBean() default true;

}

 

 

 

 

使用方式:

项目中载入jar包:service-monitor.jar

然后在使用的项目中使用:配置xml文件:

<import resource="classpath:buildinUnits/montior/service-aop.xml" />

默认是对含有service名称的包路径都会去拦截!

如果要自主配置的话:execution.service.package.name = execution(* com.skymobi.market.applist.service.*.*(..))

 jmx 前缀的话,可以自己配置 ${jmx.prefix}  或者配置 ${app.name}

不然会使用默认的 前缀:public:app=servicemonitor,

注意依赖的jar包:

 

猜你喜欢

转载自jonerxq.iteye.com/blog/1990872
今日推荐