From 405afe08e0130b0240e6f3bfbebc5976bc7e5580 Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Wed, 18 Jun 2014 08:44:27 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[profiler-48]?= =?UTF-8?q?=20add=20ibatis,=20mybatis=20=20interceptor=20on/off=20configur?= =?UTF-8?q?ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@4047 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../orm/SqlMapOperationInterceptor.java | 20 ++++++++++++++++++- .../IbatisSqlMapOperationInterceptor.java | 11 ++++++++++ .../MyBatisSqlMapOperationInterceptor.java | 11 ++++++++++ src/main/resources-dev/pinpoint.config | 12 +++++++++++ src/main/resources-local/pinpoint.config | 12 +++++++++++ src/main/resources-release/pinpoint.config | 12 +++++++++++ 6 files changed, 77 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/SqlMapOperationInterceptor.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/SqlMapOperationInterceptor.java index c788d2b7d..7bb683eec 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/SqlMapOperationInterceptor.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/SqlMapOperationInterceptor.java @@ -11,13 +11,17 @@ import com.nhn.pinpoint.common.ServiceType; /** * @author Hyun Jeong + * @author netspider */ public abstract class SqlMapOperationInterceptor implements SimpleAroundInterceptor, ByteCodeMethodDescriptorSupport, TraceContextSupport { private final ServiceType serviceType; private MethodDescriptor descriptor; - private TraceContext traceContext; + + protected TraceContext traceContext; + + protected boolean enabled = true; public SqlMapOperationInterceptor(ServiceType serviceType) { this.serviceType = serviceType; @@ -25,8 +29,17 @@ public abstract class SqlMapOperationInterceptor implements SimpleAroundIntercep protected abstract PLogger getLogger(); + protected abstract void initConfig(); + @Override public final void before(Object target, Object[] args) { + if (!enabled) { + if (getLogger().isDebugEnabled()) { + getLogger().debug("interceptor is disabled."); + } + return; + } + if (getLogger().isDebugEnabled()) { getLogger().beforeInterceptor(target, args); } @@ -41,6 +54,10 @@ public abstract class SqlMapOperationInterceptor implements SimpleAroundIntercep @Override public final void after(Object target, Object[] args, Object result) { + if (!enabled) { + return; + } + if (getLogger().isDebugEnabled()) { getLogger().afterInterceptor(target, args, result); } @@ -66,6 +83,7 @@ public abstract class SqlMapOperationInterceptor implements SimpleAroundIntercep @Override public final void setTraceContext(TraceContext traceContext) { this.traceContext = traceContext; + this.initConfig(); } @Override diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/ibatis/interceptor/IbatisSqlMapOperationInterceptor.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/ibatis/interceptor/IbatisSqlMapOperationInterceptor.java index f440a6321..6941af305 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/ibatis/interceptor/IbatisSqlMapOperationInterceptor.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/ibatis/interceptor/IbatisSqlMapOperationInterceptor.java @@ -1,5 +1,6 @@ package com.nhn.pinpoint.profiler.modifier.orm.ibatis.interceptor; +import com.nhn.pinpoint.bootstrap.config.ProfilerConfig; import com.nhn.pinpoint.bootstrap.logging.PLogger; import com.nhn.pinpoint.bootstrap.logging.PLoggerFactory; import com.nhn.pinpoint.common.ServiceType; @@ -7,6 +8,7 @@ import com.nhn.pinpoint.profiler.modifier.orm.SqlMapOperationInterceptor; /** * @author Hyun Jeong + * @author netspider */ public class IbatisSqlMapOperationInterceptor extends SqlMapOperationInterceptor { @@ -21,4 +23,13 @@ public class IbatisSqlMapOperationInterceptor extends SqlMapOperationInterceptor return this.logger; } + @Override + protected void initConfig() { + if (traceContext != null) { + final ProfilerConfig config = traceContext.getProfilerConfig(); + if (config != null) { + this.enabled = config.isIBatisEnabled(); + } + } + } } diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/mybatis/interceptor/MyBatisSqlMapOperationInterceptor.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/mybatis/interceptor/MyBatisSqlMapOperationInterceptor.java index b31bdd7a9..ba01fae98 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/mybatis/interceptor/MyBatisSqlMapOperationInterceptor.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/orm/mybatis/interceptor/MyBatisSqlMapOperationInterceptor.java @@ -1,5 +1,6 @@ package com.nhn.pinpoint.profiler.modifier.orm.mybatis.interceptor; +import com.nhn.pinpoint.bootstrap.config.ProfilerConfig; import com.nhn.pinpoint.bootstrap.logging.PLogger; import com.nhn.pinpoint.bootstrap.logging.PLoggerFactory; import com.nhn.pinpoint.common.ServiceType; @@ -7,6 +8,7 @@ import com.nhn.pinpoint.profiler.modifier.orm.SqlMapOperationInterceptor; /** * @author Hyun Jeong + * @author netspider */ public class MyBatisSqlMapOperationInterceptor extends SqlMapOperationInterceptor { @@ -21,4 +23,13 @@ public class MyBatisSqlMapOperationInterceptor extends SqlMapOperationIntercepto return this.logger; } + @Override + protected void initConfig() { + if (traceContext != null) { + final ProfilerConfig config = traceContext.getProfilerConfig(); + if (config != null) { + this.enabled = config.isMyBatisEnabled(); + } + } + } } diff --git a/src/main/resources-dev/pinpoint.config b/src/main/resources-dev/pinpoint.config index ef7b277d2..72a1b059e 100644 --- a/src/main/resources-dev/pinpoint.config +++ b/src/main/resources-dev/pinpoint.config @@ -149,3 +149,15 @@ profiler.arcus.keytrace=true profiler.memcached=true profiler.memcached.keytrace=true + +########################################################### +# ibatis # +########################################################### +profiler.orm.ibatis=true + + +########################################################### +# mybatis # +########################################################### +profiler.orm.mybatis=true + diff --git a/src/main/resources-local/pinpoint.config b/src/main/resources-local/pinpoint.config index 005463b98..3ab28ea6c 100644 --- a/src/main/resources-local/pinpoint.config +++ b/src/main/resources-local/pinpoint.config @@ -157,3 +157,15 @@ profiler.arcus.keytrace=true profiler.memcached=true profiler.memcached.keytrace=true + +########################################################### +# ibatis # +########################################################### +profiler.orm.ibatis=true + + +########################################################### +# mybatis # +########################################################### +profiler.orm.mybatis=true + diff --git a/src/main/resources-release/pinpoint.config b/src/main/resources-release/pinpoint.config index 74dc516a2..0352ffd44 100644 --- a/src/main/resources-release/pinpoint.config +++ b/src/main/resources-release/pinpoint.config @@ -150,3 +150,15 @@ profiler.arcus.keytrace=false profiler.memcached=true profiler.memcached.keytrace=false + +########################################################### +# ibatis # +########################################################### +profiler.orm.ibatis=true + + +########################################################### +# mybatis # +########################################################### +profiler.orm.mybatis=true +