[유치수] [NOBTS] add scatter chart

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-web/trunk@817 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Chisu Yu
2012-10-23 06:21:20 +00:00
parent c7e7dd3fcb
commit dbb8807321
6 changed files with 241 additions and 84 deletions
@@ -53,7 +53,8 @@ public class FlowChartController {
model.addAttribute("nodes", callTree.getNodes());
model.addAttribute("links", callTree.getLinks());
model.addAttribute("businessTransactions", callTree.getBusinessTransactions().iterator());
model.addAttribute("businessTransactions", callTree.getBusinessTransactions().getBusinessTransactionIterator());
model.addAttribute("traces", callTree.getBusinessTransactions().getTracesIterator());
logger.debug("callTree:{}", callTree);
@@ -33,7 +33,7 @@ public class BusinessTransaction {
long elapsed = end - begin;
totalTime = maxTime = minTime = elapsed;
this.traces.add(new Trace(new UUID(span.getMostTraceId(), span.getLeastTraceId()).toString(), elapsed));
this.traces.add(new Trace(new UUID(span.getMostTraceId(), span.getLeastTraceId()).toString(), elapsed, span.getTimestamp()));
calls++;
}
@@ -56,7 +56,7 @@ public class BusinessTransaction {
if (minTime > elapsed)
minTime = elapsed;
this.traces.add(new Trace(new UUID(span.getMostTraceId(), span.getLeastTraceId()).toString(), elapsed));
this.traces.add(new Trace(new UUID(span.getMostTraceId(), span.getLeastTraceId()).toString(), elapsed, span.getTimestamp()));
if (span.getParentSpanId() == -1) {
calls++;
@@ -6,41 +6,61 @@ import java.util.Map;
import java.util.Map.Entry;
import com.profiler.common.bo.SpanBo;
import com.profiler.common.dto.thrift.Span;
public final class BusinessTransactions implements Iterable<BusinessTransaction> {
public final class BusinessTransactions {
private final Map<String, BusinessTransaction> transactions = new HashMap<String, BusinessTransaction>();
private Iterator<Entry<String, BusinessTransaction>> iterator;
private final Map<String, BusinessTransaction> transactions = new HashMap<String, BusinessTransaction>();
private Iterator<Entry<String, BusinessTransaction>> iterator;
private Iterator<Entry<String, BusinessTransaction>> traceIterator;
public void add(SpanBo span) {
String name = span.getName();
if (transactions.containsKey(name)) {
transactions.get(name).add(span);
} else {
transactions.put(name, new BusinessTransaction(span));
}
}
public void add(SpanBo span) {
String name = span.getName();
if (transactions.containsKey(name)) {
transactions.get(name).add(span);
} else {
transactions.put(name, new BusinessTransaction(span));
}
}
@Override
public Iterator<BusinessTransaction> iterator() {
iterator = transactions.entrySet().iterator();
public Iterator<BusinessTransaction> getBusinessTransactionIterator() {
iterator = transactions.entrySet().iterator();
return new Iterator<BusinessTransaction>() {
@Override
public boolean hasNext() {
return iterator.hasNext();
}
return new Iterator<BusinessTransaction>() {
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public BusinessTransaction next() {
return iterator.next().getValue();
}
@Override
public BusinessTransaction next() {
return iterator.next().getValue();
}
@Override
public void remove() {
@Override
public void remove() {
}
};
}
}
};
}
public Iterator<BusinessTransaction> getTracesIterator() {
traceIterator = transactions.entrySet().iterator();
return new Iterator<BusinessTransaction>() {
@Override
public boolean hasNext() {
return traceIterator.hasNext();
}
@Override
public BusinessTransaction next() {
return traceIterator.next().getValue();
}
@Override
public void remove() {
}
};
}
}
+11 -5
View File
@@ -3,18 +3,24 @@ package com.nhn.hippo.web.vo;
public class Trace {
private final String traceId;
private final long time;
private final long executionTime;
private final long timestamp;
public Trace(String traceId, long time) {
public Trace(String traceId, long executionTime, long timestamp) {
this.traceId = traceId;
this.time = time;
this.executionTime = executionTime;
this.timestamp = timestamp;
}
public String getTraceId() {
return traceId;
}
public long getTime() {
return time;
public long getExecutionTime() {
return executionTime;
}
public long getTimestamp() {
return timestamp;
}
}