diff --git a/src/main/java/com/profiler/Agent.java b/src/main/java/com/profiler/Agent.java index 30a85b4a9..c2a30b0c3 100644 --- a/src/main/java/com/profiler/Agent.java +++ b/src/main/java/com/profiler/Agent.java @@ -5,6 +5,7 @@ import com.profiler.common.hbase.HBaseTables; import com.profiler.common.mapping.ApiMappingTable; import com.profiler.config.ProfilerConfig; import com.profiler.context.BypassStorageFactory; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.TimeBaseStorageFactory; import com.profiler.context.TraceContext; import com.profiler.sender.DataSender; @@ -27,7 +28,7 @@ public class Agent { private final ServerInfo serverInfo; private final SystemMonitor systemMonitor; - private TraceContext traceContext; + private DefaultTraceContext traceContext; private DataSender priorityDataSender; private DataSender dataSender; @@ -119,7 +120,7 @@ public class Agent { } private void initializeTraceContext() { - this.traceContext = TraceContext.getTraceContext(); + this.traceContext = DefaultTraceContext.getTraceContext(); // this.traceContext.setDataSender(this.dataSender); this.traceContext.setAgentId(this.agentId); diff --git a/src/main/java/com/profiler/SystemMonitor.java b/src/main/java/com/profiler/SystemMonitor.java index 738c5e14f..6cc3fc819 100644 --- a/src/main/java/com/profiler/SystemMonitor.java +++ b/src/main/java/com/profiler/SystemMonitor.java @@ -9,7 +9,6 @@ import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/src/main/java/com/profiler/context/AsyncTrace.java b/src/main/java/com/profiler/context/AsyncTrace.java index 376fd2da9..dbe16a58c 100644 --- a/src/main/java/com/profiler/context/AsyncTrace.java +++ b/src/main/java/com/profiler/context/AsyncTrace.java @@ -82,11 +82,6 @@ public class AsyncTrace { public void traceBlockEnd() { logSpan(this.spanEvent); -// clearReference(); - } - - private void clearReference() { - this.storage = null; } public void markAfterTime() { @@ -126,7 +121,7 @@ public class AsyncTrace { public void recordAttribute(final AnnotationKey key, final Object value) { - spanEvent.addAnnotation(new Annotation(key, value)); + spanEvent.addAnnotation(new TraceAnnotation(key, value)); } public void recordServiceType(final ServiceType serviceType) { @@ -149,7 +144,7 @@ public class AsyncTrace { } private void annotate(final AnnotationKey key) { - this.spanEvent.addAnnotation(new Annotation(key)); + this.spanEvent.addAnnotation(new TraceAnnotation(key)); } diff --git a/src/main/java/com/profiler/context/DefaultTrace.java b/src/main/java/com/profiler/context/DefaultTrace.java index 099281ad0..deb4f383f 100644 --- a/src/main/java/com/profiler/context/DefaultTrace.java +++ b/src/main/java/com/profiler/context/DefaultTrace.java @@ -289,10 +289,10 @@ public final class DefaultTrace implements Trace { StackFrame currentStackFrame = getCurrentStackFrame(); if (currentStackFrame instanceof RootStackFrame) { Span span = ((RootStackFrame) currentStackFrame).getSpan(); - span.addAnnotation(new Annotation(key, value)); + span.addAnnotation(new TraceAnnotation(key, value)); } else { SpanEvent spanEvent = ((SubStackFrame) currentStackFrame).getSpanEvent(); - spanEvent.addAnnotation(new Annotation(key, value)); + spanEvent.addAnnotation(new TraceAnnotation(key, value)); } } @@ -391,10 +391,10 @@ public final class DefaultTrace implements Trace { StackFrame currentStackFrame = getCurrentStackFrame(); if (currentStackFrame instanceof RootStackFrame) { Span span = ((RootStackFrame) currentStackFrame).getSpan(); - span.addAnnotation(new Annotation(key)); + span.addAnnotation(new TraceAnnotation(key)); } else { SpanEvent spanEvent = ((SubStackFrame) currentStackFrame).getSpanEvent(); - spanEvent.addAnnotation(new Annotation(key)); + spanEvent.addAnnotation(new TraceAnnotation(key)); } } diff --git a/src/main/java/com/profiler/context/DefaultTraceContext.java b/src/main/java/com/profiler/context/DefaultTraceContext.java new file mode 100644 index 000000000..6c25d68b1 --- /dev/null +++ b/src/main/java/com/profiler/context/DefaultTraceContext.java @@ -0,0 +1,181 @@ +package com.profiler.context; + + +import com.profiler.Agent; +import com.profiler.common.dto.thrift.ApiMetaData; +import com.profiler.common.dto.thrift.SqlMetaData; +import com.profiler.common.util.ParsingResult; +import com.profiler.common.util.SqlParser; +import com.profiler.interceptor.MethodDescriptor; +import com.profiler.metadata.LRUCache; +import com.profiler.metadata.Result; +import com.profiler.metadata.StringCache; +import com.profiler.sender.DataSender; +import com.profiler.util.Assert; +import com.profiler.util.NamedThreadLocal; + +import java.util.concurrent.atomic.AtomicInteger; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class DefaultTraceContext implements TraceContext { + + private final Logger logger = Logger.getLogger(DefaultTraceContext.class.getName()); + + private static DefaultTraceContext CONTEXT = new DefaultTraceContext(); + + // initailze관련 생명주기가 뭔가 애매함. 추후 방안을 더 고려해보자. + public static TraceContext initialize() { + return CONTEXT = new DefaultTraceContext(); + } + + // 얻는 것도 뭔가 모양이 마음에 안듬. + public static DefaultTraceContext getTraceContext() { + return CONTEXT; + } + + private final ThreadLocal threadLocal = new NamedThreadLocal("Trace"); + + private final ActiveThreadCounter activeThreadCounter = new ActiveThreadCounter(); + + // internal stacktrace 추적때 필요한 unique 아이디, activethreadcount의 slow 타임 계산의 위해서도 필요할듯 함. + private final AtomicInteger transactionId = new AtomicInteger(0); + + private GlobalCallTrace globalCallTrace = new GlobalCallTrace(); + + private String agentId; + + private String applicationId; + + private DataSender priorityDataSender; + + private StorageFactory storageFactory; + + private final LRUCache sqlCache = new LRUCache(1000); + private final SqlParser sqlParser = new SqlParser(); + + private final StringCache apiCache = new StringCache(); + + public DefaultTraceContext() { + } + + public Trace currentTraceObject() { + return threadLocal.get(); + } + + @Override + public void attachTraceObject(DefaultTrace trace) { + Trace old = this.threadLocal.get(); + if (old != null) { + // 잘못된 상황의 old를 덤프할것. + throw new IllegalStateException("already Trace Object exist."); + } + // datasender연결 부분 수정 필요. +// trace.setDataSender(this.dataSender); + Storage storage = storageFactory.createStorage(); + trace.setStorage(storage); + trace.setTraceContext(this); + + // +// trace.setTransactionId(transactionId.getAndIncrement()); + threadLocal.set(trace); + } + + @Override + public void detachTraceObject() { + this.threadLocal.remove(); + } + + public GlobalCallTrace getGlobalCallTrace() { + return globalCallTrace; + } + + @Override + public ActiveThreadCounter getActiveThreadCounter() { + return activeThreadCounter; + } + + @Override + public void setAgentId(String agentId) { + this.agentId = agentId; + } + + @Override + public String getAgentId() { + return agentId; + } + + @Override + public void setApplicationId(String applicationId) { + this.applicationId = applicationId; + } + + @Override + public String getApplicationId() { + return applicationId; + } + + public void setStorageFactory(StorageFactory storageFactory) { + Assert.notNull(storageFactory, "storageFactory myst not be null"); + this.storageFactory = storageFactory; + } + + + @Override + public int cacheApi(MethodDescriptor methodDescriptor) { + String fullName = methodDescriptor.getFullName(); + Result result = this.apiCache.put(fullName); + if (result.isNewValue()) { + ApiMetaData apiMetadata = new ApiMetaData(); + Agent agent = Agent.getInstance(); + apiMetadata.setAgentId(agent.getAgentId()); + apiMetadata.setAgentIdentifier(agent.getIdentifier()); + + apiMetadata.setStartTime(agent.getStartTime()); + apiMetadata.setApiId(result.getId()); + apiMetadata.setApiInfo(methodDescriptor.getApiDescriptor()); + apiMetadata.setLine(methodDescriptor.getLineNumber()); + + this.priorityDataSender.send(apiMetadata); + methodDescriptor.setApiId(result.getId()); + } + return result.getId(); + } + + + + @Override + public ParsingResult parseSql(String sql) { + + ParsingResult parsingResult = this.sqlParser.normalizedSql(sql); + String normalizedSql = parsingResult.getSql(); + // 파싱시 변경되지 않았다면 동일 객체를 리턴하므로 그냥 ==비교를 하면 됨 + boolean newValue = this.sqlCache.put(normalizedSql); + if (newValue) { + if (logger.isLoggable(Level.FINE)) { + // TODO hit% 로그를 남겨야 문제 발생시 도움이 될듯 하다. + logger.fine("NewSQLParsingResult:" + parsingResult); + } + // newValue란 의미는 cache에 인입됬다는 의미이고 이는 신규 sql문일 가능성이 있다는 의미임. + // 그러므로 메타데이터를 서버로 전송해야 한다. + + // 프로파일 데이터를 보내는데 사용되는 queue가 아니고, + // 좀더 급한 메시지만 별도 처리할수 있는 상대적으로 더 한가한 queue와 datasender를 별도로 가지고 있는게 좋을듯 하다. + SqlMetaData sqlMetaData = new SqlMetaData(); + sqlMetaData.setAgentId(Agent.getInstance().getAgentId()); + sqlMetaData.setAgentIdentifier(Agent.getInstance().getIdentifier()); + + sqlMetaData.setStartTime(Agent.getInstance().getStartTime()); + sqlMetaData.setHashCode(normalizedSql.hashCode()); + sqlMetaData.setSql(normalizedSql); + + this.priorityDataSender.send(sqlMetaData); + } + // hashId그냥 return String에서 까보면 됨. + return parsingResult; + } + + public void setPriorityDataSender(DataSender priorityDataSender) { + this.priorityDataSender = priorityDataSender; + } +} diff --git a/src/main/java/com/profiler/context/Span.java b/src/main/java/com/profiler/context/Span.java index 30a6e176c..9859d349f 100644 --- a/src/main/java/com/profiler/context/Span.java +++ b/src/main/java/com/profiler/context/Span.java @@ -24,7 +24,7 @@ public class Span implements Thriftable { private int exception; private String remoteAddr; - private final List annotations = new ArrayList(5); + private final List traceAnnotationList = new ArrayList(5); private List spanEventList; @@ -41,12 +41,12 @@ public class Span implements Thriftable { return traceID; } - public boolean addAnnotation(Annotation annotation) { - return annotations.add(annotation); + public boolean addAnnotation(TraceAnnotation traceAnnotation) { + return traceAnnotationList.add(traceAnnotation); } public int getAnnotationSize() { - return annotations.size(); + return traceAnnotationList.size(); } public String getEndPoint() { @@ -153,7 +153,7 @@ public class Span implements Thriftable { sb.append(", ParentApplicationType = ").append(ServiceType.findServiceType(parentApplicationType)); sb.append(", AcceptorHost = ").append(acceptorHost); sb.append(",\n\t Annotations = {"); - for (Annotation a : annotations) { + for (TraceAnnotation a : traceAnnotationList) { sb.append("\n\t\t").append(a); } sb.append("\n\t}"); @@ -197,9 +197,9 @@ public class Span implements Thriftable { } // 여기서 데이터 인코딩을 하자. - List annotationList = new ArrayList(annotations.size()); - for (Annotation a : annotations) { - annotationList.add(a.toThrift()); + List annotationList = new ArrayList(traceAnnotationList.size()); + for (TraceAnnotation traceAnnotation : traceAnnotationList) { + annotationList.add(traceAnnotation.toThrift()); } span.setAnnotations(annotationList); diff --git a/src/main/java/com/profiler/context/SpanChunk.java b/src/main/java/com/profiler/context/SpanChunk.java index 7df0e36c0..22e55ad93 100644 --- a/src/main/java/com/profiler/context/SpanChunk.java +++ b/src/main/java/com/profiler/context/SpanChunk.java @@ -64,8 +64,8 @@ public class SpanChunk implements Thriftable { // 여기서 데이터 인코딩을 하자. List annotationList = new ArrayList(spanEvent.getAnnotationSize()); - for (Annotation a : spanEvent.getAnnotations()) { - annotationList.add(a.toThrift()); + for (TraceAnnotation traceAnnotation : spanEvent.getTraceAnnotationList()) { + annotationList.add(traceAnnotation.toThrift()); } if (spanEvent.getDepth() != -1) { diff --git a/src/main/java/com/profiler/context/SpanEvent.java b/src/main/java/com/profiler/context/SpanEvent.java index eb21df7df..8038f10ec 100644 --- a/src/main/java/com/profiler/context/SpanEvent.java +++ b/src/main/java/com/profiler/context/SpanEvent.java @@ -27,7 +27,7 @@ public class SpanEvent implements Thriftable { private String destionationId; private List destinationAddress; - private final List annotations = new ArrayList(5); + private final List traceAnnotationList = new ArrayList(5); private int nextSpanId = -1; private int depth = -1; @@ -48,16 +48,16 @@ public class SpanEvent implements Thriftable { this.sequence = sequence; } - public boolean addAnnotation(Annotation annotation) { - return annotations.add(annotation); + public boolean addAnnotation(TraceAnnotation traceAnnotation) { + return traceAnnotationList.add(traceAnnotation); } - public List getAnnotations() { - return annotations; + public List getTraceAnnotationList() { + return traceAnnotationList; } public int getAnnotationSize() { - return annotations.size(); + return traceAnnotationList.size(); } public String getEndPoint() { @@ -150,7 +150,7 @@ public class SpanEvent implements Thriftable { sb.append(", EndPoint=").append(endPoint); sb.append(", Seq=").append(sequence); sb.append(",\n\t Annotations = {"); - for (Annotation a : annotations) { + for (TraceAnnotation a : traceAnnotationList) { sb.append("\n\t\t").append(a); } sb.append("\n\t}"); @@ -191,9 +191,9 @@ public class SpanEvent implements Thriftable { spanEvent.setDestinationId(this.destionationId); // 여기서 데이터 인코딩을 하자. - List annotationList = new ArrayList(annotations.size()); - for (Annotation annotation : annotations) { - annotationList.add(annotation.toThrift()); + List annotationList = new ArrayList(traceAnnotationList.size()); + for (TraceAnnotation traceAnnotation : traceAnnotationList) { + annotationList.add(traceAnnotation.toThrift()); } spanEvent.setAnnotations(annotationList); diff --git a/src/main/java/com/profiler/context/Annotation.java b/src/main/java/com/profiler/context/TraceAnnotation.java similarity index 76% rename from src/main/java/com/profiler/context/Annotation.java rename to src/main/java/com/profiler/context/TraceAnnotation.java index 083cbd02e..c45409cf3 100644 --- a/src/main/java/com/profiler/context/Annotation.java +++ b/src/main/java/com/profiler/context/TraceAnnotation.java @@ -1,32 +1,30 @@ package com.profiler.context; import com.profiler.common.AnnotationKey; +import com.profiler.common.dto.thrift.Annotation; import com.profiler.common.util.AnnotationTranscoder; /** * @author netspider */ -public class Annotation implements Thriftable { +public class TraceAnnotation implements Thriftable { private static final AnnotationTranscoder transcoder = new AnnotationTranscoder(); - // private final long timestamp; private final AnnotationKey key; - private final Object value; - - public Annotation(AnnotationKey key) { + public TraceAnnotation(AnnotationKey key) { this.key = key; this.value = null; } - public Annotation(AnnotationKey key, Object value) { + public TraceAnnotation(AnnotationKey key, Object value) { this.key = key; this.value = value; } - public AnnotationKey getKey() { + public AnnotationKey getAnnotationKey() { return this.key; } diff --git a/src/main/java/com/profiler/context/TraceContext.java b/src/main/java/com/profiler/context/TraceContext.java index 5e8837b4d..6af862760 100644 --- a/src/main/java/com/profiler/context/TraceContext.java +++ b/src/main/java/com/profiler/context/TraceContext.java @@ -1,172 +1,30 @@ package com.profiler.context; - -import com.profiler.Agent; -import com.profiler.common.dto.thrift.ApiMetaData; -import com.profiler.common.dto.thrift.SqlMetaData; import com.profiler.common.util.ParsingResult; -import com.profiler.common.util.SqlParser; import com.profiler.interceptor.MethodDescriptor; -import com.profiler.metadata.LRUCache; -import com.profiler.metadata.Result; -import com.profiler.metadata.StringCache; -import com.profiler.sender.DataSender; -import com.profiler.util.Assert; -import com.profiler.util.NamedThreadLocal; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.Level; -import java.util.logging.Logger; +/** + * + */ +public interface TraceContext { -public class TraceContext { + Trace currentTraceObject(); - private final Logger logger = Logger.getLogger(TraceContext.class.getName()); + void attachTraceObject(DefaultTrace trace); - private static TraceContext CONTEXT = new TraceContext(); + void detachTraceObject(); - // initailze관련 생명주기가 뭔가 애매함. 추후 방안을 더 고려해보자. - public static TraceContext initialize() { - return CONTEXT = new TraceContext(); - } + ActiveThreadCounter getActiveThreadCounter(); - // 얻는 것도 뭔가 모양이 마음에 안듬. - public static TraceContext getTraceContext() { - return CONTEXT; - } + void setAgentId(String agentId); - private final ThreadLocal threadLocal = new NamedThreadLocal("Trace"); + String getAgentId(); - private final ActiveThreadCounter activeThreadCounter = new ActiveThreadCounter(); + void setApplicationId(String applicationId); - // internal stacktrace 추적때 필요한 unique 아이디, activethreadcount의 slow 타임 계산의 위해서도 필요할듯 함. - private final AtomicInteger transactionId = new AtomicInteger(0); + String getApplicationId(); - private GlobalCallTrace globalCallTrace = new GlobalCallTrace(); + int cacheApi(MethodDescriptor methodDescriptor); - private String agentId; - - private String applicationId; - - private DataSender priorityDataSender; - - private StorageFactory storageFactory; - - private final LRUCache sqlCache = new LRUCache(1000); - private final SqlParser sqlParser = new SqlParser(); - - private final StringCache apiCache = new StringCache(); - - public TraceContext() { - } - - public Trace currentTraceObject() { - return threadLocal.get(); - } - - public void attachTraceObject(DefaultTrace trace) { - Trace old = this.threadLocal.get(); - if (old != null) { - // 잘못된 상황의 old를 덤프할것. - throw new IllegalStateException("already Trace Object exist."); - } - // datasender연결 부분 수정 필요. -// trace.setDataSender(this.dataSender); - Storage storage = storageFactory.createStorage(); - trace.setStorage(storage); - trace.setTraceContext(this); - - // -// trace.setTransactionId(transactionId.getAndIncrement()); - threadLocal.set(trace); - } - - public void detachTraceObject() { - this.threadLocal.remove(); - } - - public GlobalCallTrace getGlobalCallTrace() { - return globalCallTrace; - } - - public ActiveThreadCounter getActiveThreadCounter() { - return activeThreadCounter; - } - - public void setAgentId(String agentId) { - this.agentId = agentId; - } - - public String getAgentId() { - return agentId; - } - - public void setApplicationId(String applicationId) { - this.applicationId = applicationId; - } - - public String getApplicationId() { - return applicationId; - } - - public void setStorageFactory(StorageFactory storageFactory) { - Assert.notNull(storageFactory, "storageFactory myst not be null"); - this.storageFactory = storageFactory; - } - - - public int cacheApi(MethodDescriptor methodDescriptor) { - String fullName = methodDescriptor.getFullName(); - Result result = this.apiCache.put(fullName); - if (result.isNewValue()) { - ApiMetaData apiMetadata = new ApiMetaData(); - Agent agent = Agent.getInstance(); - apiMetadata.setAgentId(agent.getAgentId()); - apiMetadata.setAgentIdentifier(agent.getIdentifier()); - - apiMetadata.setStartTime(agent.getStartTime()); - apiMetadata.setApiId(result.getId()); - apiMetadata.setApiInfo(methodDescriptor.getApiDescriptor()); - apiMetadata.setLine(methodDescriptor.getLineNumber()); - - this.priorityDataSender.send(apiMetadata); - methodDescriptor.setApiId(result.getId()); - } - return result.getId(); - } - - - - public ParsingResult parseSql(String sql) { - - ParsingResult parsingResult = this.sqlParser.normalizedSql(sql); - String normalizedSql = parsingResult.getSql(); - // 파싱시 변경되지 않았다면 동일 객체를 리턴하므로 그냥 ==비교를 하면 됨 - boolean newValue = this.sqlCache.put(normalizedSql); - if (newValue) { - if (logger.isLoggable(Level.FINE)) { - // TODO hit% 로그를 남겨야 문제 발생시 도움이 될듯 하다. - logger.fine("NewSQLParsingResult:" + parsingResult); - } - // newValue란 의미는 cache에 인입됬다는 의미이고 이는 신규 sql문일 가능성이 있다는 의미임. - // 그러므로 메타데이터를 서버로 전송해야 한다. - - // 프로파일 데이터를 보내는데 사용되는 queue가 아니고, - // 좀더 급한 메시지만 별도 처리할수 있는 상대적으로 더 한가한 queue와 datasender를 별도로 가지고 있는게 좋을듯 하다. - SqlMetaData sqlMetaData = new SqlMetaData(); - sqlMetaData.setAgentId(Agent.getInstance().getAgentId()); - sqlMetaData.setAgentIdentifier(Agent.getInstance().getIdentifier()); - - sqlMetaData.setStartTime(Agent.getInstance().getStartTime()); - sqlMetaData.setHashCode(normalizedSql.hashCode()); - sqlMetaData.setSql(normalizedSql); - - this.priorityDataSender.send(sqlMetaData); - } - // hashId그냥 return String에서 까보면 됨. - return parsingResult; - } - - public void setPriorityDataSender(DataSender priorityDataSender) { - this.priorityDataSender = priorityDataSender; - } + ParsingResult parseSql(String sql); } diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java index dccb61d88..a949f0bba 100644 --- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java +++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java @@ -3,6 +3,7 @@ package com.profiler.modifier.arcus.interceptors; import java.util.logging.Logger; import com.profiler.context.AsyncTrace; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.StaticAfterInterceptor; @@ -25,7 +26,7 @@ public class BaseOperationConstructInterceptor implements StaticAfterInterceptor LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args, result); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java index e00640c2a..df5bca745 100644 --- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java +++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java @@ -8,6 +8,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.profiler.common.AnnotationKey; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; import com.profiler.interceptor.MethodDescriptor; @@ -91,7 +92,7 @@ public class BaseOperationTransitionStateInterceptor implements StaticBeforeInte // timeObject.markSendTime(); // long createTime = asyncTrace.getBeforeTime(); - // asyncTrace.record(Annotation.ClientSend, + // asyncTrace.record(TraceAnnotation.ClientSend, // System.currentTimeMillis() - createTime); asyncTrace.markAfterTime(); // asyncTrace.traceBlockEnd(); @@ -108,13 +109,13 @@ public class BaseOperationTransitionStateInterceptor implements StaticBeforeInte if (!baseOperation.isCancelled()) { TimeObject timeObject = (TimeObject) asyncTrace.getAttachObject(); - // asyncTrace.record(Annotation.ClientRecv, timeObject.getSendTime()); + // asyncTrace.record(TraceAnnotation.ClientRecv, timeObject.getSendTime()); asyncTrace.markAfterTime(); asyncTrace.traceBlockEnd(); } else { asyncTrace.recordAttribute(AnnotationKey.EXCEPTION, "cancelled by user"); TimeObject timeObject = (TimeObject) asyncTrace.getAttachObject(); - // asyncTrace.record(Annotation.ClientRecv, timeObject.getCancelTime()); + // asyncTrace.record(TraceAnnotation.ClientRecv, timeObject.getCancelTime()); asyncTrace.markAfterTime(); asyncTrace.traceBlockEnd(); } @@ -135,7 +136,7 @@ public class BaseOperationTransitionStateInterceptor implements StaticBeforeInte @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.methodDescriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } } diff --git a/src/main/java/com/profiler/modifier/bloc/handler/interceptors/ExecuteMethodInterceptor.java b/src/main/java/com/profiler/modifier/bloc/handler/interceptors/ExecuteMethodInterceptor.java index 58cd8c9b1..8b6f0288b 100644 --- a/src/main/java/com/profiler/modifier/bloc/handler/interceptors/ExecuteMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/bloc/handler/interceptors/ExecuteMethodInterceptor.java @@ -32,7 +32,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo } try { - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.getActiveThreadCounter().start(); external.org.apache.coyote.Request request = (external.org.apache.coyote.Request) args[0]; @@ -87,7 +87,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args, result); } - TraceContext traceContext = TraceContext.getTraceContext(); + DefaultTraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.getActiveThreadCounter().end(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { @@ -156,7 +156,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java index ee600148e..9186f7a80 100644 --- a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java @@ -3,15 +3,12 @@ package com.profiler.modifier.connector.httpclient4.interceptor; import java.net.URI; import java.util.logging.Logger; +import com.profiler.context.*; import org.apache.http.HttpHost; import org.apache.http.client.methods.HttpUriRequest; import com.profiler.common.AnnotationKey; import com.profiler.common.ServiceType; -import com.profiler.context.Header; -import com.profiler.context.Trace; -import com.profiler.context.TraceContext; -import com.profiler.context.TraceID; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; import com.profiler.interceptor.MethodDescriptor; import com.profiler.interceptor.StaticAroundInterceptor; @@ -39,7 +36,7 @@ public class Execute2MethodInterceptor implements StaticAroundInterceptor, ByteC if (isDebug) { LoggingUtils.logBefore(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -78,7 +75,7 @@ public class Execute2MethodInterceptor implements StaticAroundInterceptor, ByteC LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -93,7 +90,7 @@ public class Execute2MethodInterceptor implements StaticAroundInterceptor, ByteC @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java index c9f756bd8..db070f34d 100644 --- a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java @@ -3,14 +3,11 @@ package com.profiler.modifier.connector.httpclient4.interceptor; import java.util.logging.Logger; import com.profiler.common.AnnotationKey; +import com.profiler.context.*; import org.apache.http.HttpHost; import org.apache.http.HttpRequest; import com.profiler.common.ServiceType; -import com.profiler.context.Header; -import com.profiler.context.Trace; -import com.profiler.context.TraceContext; -import com.profiler.context.TraceID; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; import com.profiler.interceptor.MethodDescriptor; import com.profiler.interceptor.StaticAroundInterceptor; @@ -42,7 +39,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo if (isDebug) { LoggingUtils.logBefore(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -80,7 +77,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -96,7 +93,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java index 6760f9fb8..0c9921ef7 100644 --- a/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java @@ -5,10 +5,7 @@ import java.util.logging.Logger; import com.profiler.common.AnnotationKey; import com.profiler.common.ServiceType; -import com.profiler.context.Header; -import com.profiler.context.Trace; -import com.profiler.context.TraceContext; -import com.profiler.context.TraceID; +import com.profiler.context.*; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; import com.profiler.interceptor.MethodDescriptor; import com.profiler.interceptor.StaticAroundInterceptor; @@ -30,7 +27,7 @@ public class ConnectMethodInterceptor implements StaticAroundInterceptor, ByteCo if (isDebug) { LoggingUtils.logBefore(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -71,7 +68,7 @@ public class ConnectMethodInterceptor implements StaticAroundInterceptor, ByteCo LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -86,7 +83,7 @@ public class ConnectMethodInterceptor implements StaticAroundInterceptor, ByteCo @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } } \ No newline at end of file diff --git a/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java index 6b430147f..85b4d9f39 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java @@ -1,5 +1,6 @@ package com.profiler.modifier.db.interceptor; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; @@ -10,10 +11,7 @@ import com.profiler.modifier.db.util.DatabaseInfo; import com.profiler.modifier.db.util.JDBCUrlParser; import com.profiler.util.InterceptorUtils; import com.profiler.util.MetaObject; -import com.profiler.util.StringUtils; -import java.util.Arrays; -import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -40,7 +38,7 @@ public class DriverConnectInterceptor implements StaticAroundInterceptor, ByteCo } JDBCScope.pushScope(); - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -67,7 +65,7 @@ public class DriverConnectInterceptor implements StaticAroundInterceptor, ByteCo this.setUrl.invoke(result, databaseInfo); } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -100,7 +98,7 @@ public class DriverConnectInterceptor implements StaticAroundInterceptor, ByteCo @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementBindVariableInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementBindVariableInterceptor.java index 04ba1eb13..25a4124a6 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementBindVariableInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementBindVariableInterceptor.java @@ -1,16 +1,14 @@ package com.profiler.modifier.db.interceptor; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.StaticAfterInterceptor; import com.profiler.logging.LoggingUtils; import com.profiler.util.MetaObject; import com.profiler.util.NumberUtils; -import com.profiler.util.StringUtils; import com.profiler.util.bindvalue.BindValueConverter; -import java.util.Arrays; - import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -32,7 +30,7 @@ public class PreparedStatementBindVariableInterceptor implements StaticAfterInte return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; diff --git a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java index ed215b327..d76291a43 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java @@ -1,6 +1,7 @@ package com.profiler.modifier.db.interceptor; import com.profiler.common.util.ParsingResult; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.*; @@ -8,10 +9,8 @@ import com.profiler.logging.LoggingUtils; import com.profiler.modifier.db.util.DatabaseInfo; import com.profiler.util.InterceptorUtils; import com.profiler.util.MetaObject; -import com.profiler.util.StringUtils; import java.sql.Connection; -import java.util.Arrays; import java.util.logging.Logger; public class PreparedStatementCreateInterceptor implements StaticAroundInterceptor, ByteCodeMethodDescriptorSupport { @@ -37,7 +36,7 @@ public class PreparedStatementCreateInterceptor implements StaticAroundIntercept logger.fine("internal jdbc scope. skip trace"); return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -68,7 +67,7 @@ public class PreparedStatementCreateInterceptor implements StaticAroundIntercept return; // TODO traceBlockEnd() 호출 해야함. } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -96,7 +95,7 @@ public class PreparedStatementCreateInterceptor implements StaticAroundIntercept @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java index c6559b7ba..a13c8422a 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java @@ -9,6 +9,7 @@ import java.util.logging.Logger; import com.profiler.common.AnnotationKey; import com.profiler.common.util.ParsingResult; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; @@ -40,7 +41,7 @@ public class PreparedStatementExecuteQueryInterceptor implements StaticAroundInt logger.fine("internal jdbc scope. skip trace"); return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { @@ -104,7 +105,7 @@ public class PreparedStatementExecuteQueryInterceptor implements StaticAroundInt if (JDBCScope.isInternal()) { return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -126,7 +127,7 @@ public class PreparedStatementExecuteQueryInterceptor implements StaticAroundInt @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/db/interceptor/StatementCreateInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/StatementCreateInterceptor.java index 06bf6091d..960c4a856 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/StatementCreateInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/StatementCreateInterceptor.java @@ -1,5 +1,6 @@ package com.profiler.modifier.db.interceptor; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.StaticAfterInterceptor; @@ -7,10 +8,8 @@ import com.profiler.logging.LoggingUtils; import com.profiler.modifier.db.util.DatabaseInfo; import com.profiler.util.InterceptorUtils; import com.profiler.util.MetaObject; -import com.profiler.util.StringUtils; import java.sql.Connection; -import java.util.Arrays; import java.util.logging.Logger; public class StatementCreateInterceptor implements StaticAfterInterceptor { @@ -35,7 +34,7 @@ public class StatementCreateInterceptor implements StaticAfterInterceptor { if (!InterceptorUtils.isSuccess(result)) { return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; diff --git a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java index 1f91c2d11..3b20b94dc 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java @@ -1,5 +1,6 @@ package com.profiler.modifier.db.interceptor; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; @@ -8,9 +9,7 @@ import com.profiler.interceptor.StaticAroundInterceptor; import com.profiler.logging.LoggingUtils; import com.profiler.modifier.db.util.DatabaseInfo; import com.profiler.util.MetaObject; -import com.profiler.util.StringUtils; -import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,7 @@ public class StatementExecuteQueryInterceptor implements StaticAroundInterceptor logger.fine("internal jdbc scope. skip trace"); return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -71,7 +70,7 @@ public class StatementExecuteQueryInterceptor implements StaticAroundInterceptor if (JDBCScope.isInternal()) { return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -94,7 +93,7 @@ public class StatementExecuteQueryInterceptor implements StaticAroundInterceptor @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } } diff --git a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java index 46fa4758f..87399a2ff 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java @@ -1,5 +1,6 @@ package com.profiler.modifier.db.interceptor; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; @@ -8,9 +9,7 @@ import com.profiler.interceptor.StaticAroundInterceptor; import com.profiler.logging.LoggingUtils; import com.profiler.modifier.db.util.DatabaseInfo; import com.profiler.util.MetaObject; -import com.profiler.util.StringUtils; -import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; @@ -37,7 +36,7 @@ public class StatementExecuteUpdateInterceptor implements StaticAroundIntercepto logger.fine("internal jdbc scope. skip trace"); return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -78,7 +77,7 @@ public class StatementExecuteUpdateInterceptor implements StaticAroundIntercepto if (JDBCScope.isInternal()) { return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -94,7 +93,7 @@ public class StatementExecuteUpdateInterceptor implements StaticAroundIntercepto @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } } diff --git a/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java index bfebfab47..7bbbb07c4 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java @@ -4,6 +4,7 @@ import java.sql.Connection; import java.util.logging.Level; import java.util.logging.Logger; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.ByteCodeMethodDescriptorSupport; @@ -30,7 +31,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode logger.info("internal jdbc scope. skip trace"); return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -55,7 +56,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode if (JDBCScope.isInternal()) { return; } - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); Trace trace = traceContext.currentTraceObject(); if (trace == null) { return; @@ -185,7 +186,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/method/interceptors/MethodInterceptor.java b/src/main/java/com/profiler/modifier/method/interceptors/MethodInterceptor.java index 3985030d6..80f8ec301 100644 --- a/src/main/java/com/profiler/modifier/method/interceptors/MethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/method/interceptors/MethodInterceptor.java @@ -3,6 +3,7 @@ package com.profiler.modifier.method.interceptors; import java.util.logging.Logger; import com.profiler.common.ServiceType; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.Trace; import com.profiler.context.TraceContext; import com.profiler.interceptor.*; @@ -28,7 +29,7 @@ public class MethodInterceptor implements StaticAroundInterceptor, ByteCodeMetho LoggingUtils.logBefore(logger, target, className, methodName, parameterDescription, args); } - Trace trace = TraceContext.getTraceContext().currentTraceObject(); + Trace trace = DefaultTraceContext.getTraceContext().currentTraceObject(); if (trace == null) { return; } @@ -45,7 +46,7 @@ public class MethodInterceptor implements StaticAroundInterceptor, ByteCodeMetho LoggingUtils.logAfter(logger, target, className, methodName, parameterDescription, args); } - Trace trace = TraceContext.getTraceContext().currentTraceObject(); + Trace trace = DefaultTraceContext.getTraceContext().currentTraceObject(); if (trace == null) { return; } @@ -63,7 +64,7 @@ public class MethodInterceptor implements StaticAroundInterceptor, ByteCodeMetho @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/servlet/interceptors/DoXXXInterceptor.java b/src/main/java/com/profiler/modifier/servlet/interceptors/DoXXXInterceptor.java index e187ba5f9..28a234dd1 100644 --- a/src/main/java/com/profiler/modifier/servlet/interceptors/DoXXXInterceptor.java +++ b/src/main/java/com/profiler/modifier/servlet/interceptors/DoXXXInterceptor.java @@ -184,7 +184,7 @@ public class DoXXXInterceptor implements StaticAroundInterceptor, ByteCodeMethod @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java b/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java index 4cbb6351c..75817957e 100644 --- a/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java +++ b/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java @@ -184,7 +184,7 @@ public class StandardHostValveInvokeInterceptor implements StaticAroundIntercept @Override public void setMethodDescriptor(MethodDescriptor descriptor) { this.descriptor = descriptor; - TraceContext traceContext = TraceContext.getTraceContext(); + TraceContext traceContext = DefaultTraceContext.getTraceContext(); traceContext.cacheApi(descriptor); } diff --git a/src/main/java/com/profiler/util/StringUtils.java b/src/main/java/com/profiler/util/StringUtils.java index 34ecc4323..cb1b69e7e 100644 --- a/src/main/java/com/profiler/util/StringUtils.java +++ b/src/main/java/com/profiler/util/StringUtils.java @@ -14,7 +14,7 @@ public class StringUtils { } public static String drop(final String str) { - return drop(str, 30); + return drop(str, 64); } public static String getDropString(final String str) { diff --git a/src/test/java/com/profiler/SystemMonitorTest.java b/src/test/java/com/profiler/SystemMonitorTest.java index 52a04c991..b87c26ad9 100644 --- a/src/test/java/com/profiler/SystemMonitorTest.java +++ b/src/test/java/com/profiler/SystemMonitorTest.java @@ -1,6 +1,7 @@ package com.profiler; import com.profiler.config.ProfilerConfig; +import com.profiler.context.DefaultTraceContext; import com.profiler.context.TraceContext; import com.profiler.sender.DataSender; import com.profiler.sender.LoggingDataSender; @@ -17,7 +18,7 @@ public class SystemMonitorTest { @Test public void testStart() throws Exception { DataSender loggingDataSender = new LoggingDataSender(); - TraceContext traceContext = new TraceContext(); + TraceContext traceContext = new DefaultTraceContext(); ProfilerConfig profilerConfig = new ProfilerConfig(); SystemMonitor systemMonitor = new SystemMonitor(traceContext, profilerConfig); diff --git a/src/test/java/com/profiler/modifier/tomcat/InvokeMethodInterceptorTest.java b/src/test/java/com/profiler/modifier/tomcat/InvokeMethodInterceptorTest.java index 52181f1aa..13e926f80 100644 --- a/src/test/java/com/profiler/modifier/tomcat/InvokeMethodInterceptorTest.java +++ b/src/test/java/com/profiler/modifier/tomcat/InvokeMethodInterceptorTest.java @@ -9,7 +9,7 @@ import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.profiler.context.TraceContext; +import com.profiler.context.DefaultTraceContext; import org.junit.Test; import com.profiler.context.Header; @@ -19,7 +19,7 @@ public class InvokeMethodInterceptorTest { @Test public void testHeaderNOTExists() { - TraceContext.initialize(); + DefaultTraceContext.initialize(); HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); @@ -35,7 +35,7 @@ public class InvokeMethodInterceptorTest { when(request.getParameterNames()).thenReturn(enumeration); StandardHostValveInvokeInterceptor interceptor = new StandardHostValveInvokeInterceptor(); - interceptor.setTraceContext(TraceContext.getTraceContext()); + interceptor.setTraceContext(DefaultTraceContext.getTraceContext()); interceptor.before("target", "classname", "methodname", null, new Object[]{request, response}); interceptor.after("target", "classname", "methodname", null, new Object[]{request, response}, new Object()); @@ -46,7 +46,7 @@ public class InvokeMethodInterceptorTest { @Test public void testInvalidHeaderExists() { - TraceContext.initialize(); + DefaultTraceContext.initialize(); // TODO 결과값 검증 필요. HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); @@ -63,7 +63,7 @@ public class InvokeMethodInterceptorTest { when(request.getParameterNames()).thenReturn(enumeration); StandardHostValveInvokeInterceptor interceptor = new StandardHostValveInvokeInterceptor(); - interceptor.setTraceContext(TraceContext.getTraceContext()); + interceptor.setTraceContext(DefaultTraceContext.getTraceContext()); interceptor.before("target", "classname", "methodname", null, new Object[]{request, response}); interceptor.after("target", "classname", "methodname", null, new Object[]{request, response}, new Object()); @@ -73,7 +73,7 @@ public class InvokeMethodInterceptorTest { @Test public void testValidHeaderExists() { - TraceContext.initialize(); + DefaultTraceContext.initialize(); // TODO 결과값 검증 필요. HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); @@ -90,7 +90,7 @@ public class InvokeMethodInterceptorTest { when(request.getParameterNames()).thenReturn(enumeration); StandardHostValveInvokeInterceptor interceptor = new StandardHostValveInvokeInterceptor(); - interceptor.setTraceContext(TraceContext.getTraceContext()); + interceptor.setTraceContext(DefaultTraceContext.getTraceContext()); interceptor.before("target", "classname", "methodname", null, new Object[]{request, response}); interceptor.after("target", "classname", "methodname", null, new Object[]{request, response}, new Object());