(二)pinpoint笔记:过滤不需要的类和包(无嵌套子包过滤)

一、位置:pinpoint.config

# Needs to be a comma separated list of method,if web application then value need is empty
#监控用户自定义的指定方法或者指定类的所有方法或者指定包下所有类的方法或者指定包下递归包及类的所有方法
#创建默认动态转换注册器,这个是装载像spring这样,在通过运行时扫描配置文件来动态加载的类,全部放到这个动态注册器里
#(TODO这个后面可以考虑把用户自定义的类和方法也通过这种方式来实现)
#按照原来的方式对应用的启动性能会有所影响加上不支持jboss,因为jboss的class文件存储的协议使用普通的file访问不到
profiler.entrypoint=com.***.action,com.***.manager,com.***.dao

二、位置:pinpoint-bootstrap-core工程下DefaultProfilerConfig.java

this.userIncludeList = readList("profiler.entrypoint");

三、位置:pinpoint-user-plugin工程下UserPlugin.java

addUserIncludeClass(basePackage,config.getExcludeClassNameMap());

四、位置:pinpoint-user-plugin工程下UserPluginConfig.java

List<String> excludeList = src.readList("profiler.entrypoint.exclude.classname");
excludeClassNameMap = excludeClassNameListToMap(excludeList);

-------------------------------------------------------------------------------------------------

五、位置:pinpoint-user-plugin工程下UserPluginConfig.java

在UserPluginConfig中,把字符串的被检测包名和不检测报名放入HashMap。

不知为何,processPackClassMethod被屏蔽了。

六、位置:pinpoint-commons工程下ClassMethodUtil.java

processPackClassMethod方法,从被探测包中拿出所有的类。

---------------------------------------------------------------------------------------------------

七、位置:pinpoint-user-plugin工程下UserPlugin.java

在setupUserClass方法中加入语句:List<String> excludeKeysList = getMapKeysList(config.getExcludeClassNameMap());

用以在循环之前处理map的key到一个list中,便于判断各个类是否归属于该map。

八、位置:pinpoint-user-plugin工程下UserPlugin.java

在addUserIncludeClass中增加参数final List<String> excludeMapKeysList,用以传入不添加探针包名的集合。

同时调用下面的方法去判断


            
            private boolean isExcludeClassName(List<String> excludeMapKeysList, String javaClassName){
        		String packagePath = javaClassName.substring(0, javaClassName.lastIndexOf('.'));
        		return excludeMapKeysList.contains(packagePath);
            }

就完成了对包名的过滤。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值