From 01e569cee2b2b7f8107d71beab39e853b166400d Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Tue, 16 Oct 2012 01:57:06 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[NOBTS]=20add?= =?UTF-8?q?=20rpc=20time?= 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@789 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../com/profiler/context/HippoAnnotation.java | 4 ++++ src/main/java/com/profiler/context/Span.java | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/com/profiler/context/HippoAnnotation.java b/src/main/java/com/profiler/context/HippoAnnotation.java index 5eaad220d..c67beddaf 100644 --- a/src/main/java/com/profiler/context/HippoAnnotation.java +++ b/src/main/java/com/profiler/context/HippoAnnotation.java @@ -36,6 +36,10 @@ public class HippoAnnotation { return this.key; } + public long getTimestamp() { + return this.timestamp; + } + @Override public String toString() { return "HippoAnnotation [timestamp=" + timestamp + ", duration=" + duration + ", key=" + key + ", valueTypeCode=" + valueTypeCode + ", value=" + value + ", threadname=" + threadname + "]"; diff --git a/src/main/java/com/profiler/context/Span.java b/src/main/java/com/profiler/context/Span.java index 22b712be4..24d3c81fd 100644 --- a/src/main/java/com/profiler/context/Span.java +++ b/src/main/java/com/profiler/context/Span.java @@ -27,6 +27,9 @@ public class Span { private final List annotations = new ArrayList(5); private final Set annotationKeys = new HashSet(5); + private long rpcStartTime; + private long rpcEndTime; + /** * Cancel timer logic. * TODO: refactor this. @@ -50,6 +53,12 @@ public class Span { public boolean addAnnotation(HippoAnnotation annotation) { annotationKeys.add(annotation.getKey()); + if (annotation.getKey().equals(Annotation.ClientSend.getCode()) || annotation.getKey().equals(Annotation.ServerRecv.getCode())) { + rpcStartTime = annotation.getTimestamp(); + } + if (annotation.getKey().equals(Annotation.ClientRecv.getCode()) || annotation.getKey().equals(Annotation.ServerSend.getCode())) { + rpcEndTime = annotation.getTimestamp(); + } return annotations.add(annotation); } @@ -99,6 +108,14 @@ public class Span { this.isTerminal = isTerminal; } + public long getRpcStartTime() { + return rpcStartTime; + } + + public long getRpcEndTime() { + return rpcEndTime; + } + public String toString() { StringBuilder sb = new StringBuilder(); @@ -134,6 +151,8 @@ public class Span { span.setEndPoint(endPoint); span.setTerminal(isTerminal); + // TODO: set duration. + List annotationList = new ArrayList(annotations.size()); for (HippoAnnotation a : annotations) { annotationList.add(a.toThrift());