From 7b94b59cd3fe57cbef5c62b9ab9b5b7d4d0fef23 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Wed, 27 Feb 2013 10:24:09 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[LUCYSUS-1744]?= =?UTF-8?q?=20NodeIdGenerator=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81.=20in?= =?UTF-8?q?terface=20=EA=B8=B0=EB=B0=98=EC=9C=BC=EB=A1=9C=20=EC=B9=98?= =?UTF-8?q?=ED=99=98=ED=95=A8.?= 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-web/trunk@1262 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../calltree/server/AgentIdNodeSelector.java | 21 ++++++++++++ .../server/ApplicationIdNodeSelector.java | 19 +++++++++++ .../web/calltree/server/NodeIdGenerator.java | 34 ------------------- .../web/calltree/server/NodeSelector.java | 15 ++++++++ .../nhn/hippo/web/calltree/server/Server.java | 8 ++--- .../web/calltree/server/ServerCallTree.java | 10 +++--- .../web/service/FlowChartServiceImpl.java | 9 ++--- 7 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/nhn/hippo/web/calltree/server/AgentIdNodeSelector.java create mode 100644 src/main/java/com/nhn/hippo/web/calltree/server/ApplicationIdNodeSelector.java delete mode 100644 src/main/java/com/nhn/hippo/web/calltree/server/NodeIdGenerator.java create mode 100644 src/main/java/com/nhn/hippo/web/calltree/server/NodeSelector.java diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/AgentIdNodeSelector.java b/src/main/java/com/nhn/hippo/web/calltree/server/AgentIdNodeSelector.java new file mode 100644 index 000000000..d89606224 --- /dev/null +++ b/src/main/java/com/nhn/hippo/web/calltree/server/AgentIdNodeSelector.java @@ -0,0 +1,21 @@ +package com.nhn.hippo.web.calltree.server; + +import com.profiler.common.bo.SpanBo; +import com.profiler.common.bo.SubSpanBo; + +/** + * + */ +public class AgentIdNodeSelector implements NodeSelector { + + @Override + public String getServerId(SpanBo span) { + return span.getEndPoint(); + } + + @Override + public String getServerId(SubSpanBo span) { + return span.getEndPoint(); + } + +} diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/ApplicationIdNodeSelector.java b/src/main/java/com/nhn/hippo/web/calltree/server/ApplicationIdNodeSelector.java new file mode 100644 index 000000000..018f8a6bb --- /dev/null +++ b/src/main/java/com/nhn/hippo/web/calltree/server/ApplicationIdNodeSelector.java @@ -0,0 +1,19 @@ +package com.nhn.hippo.web.calltree.server; + +import com.profiler.common.bo.SpanBo; +import com.profiler.common.bo.SubSpanBo; + +/** + * + */ +public class ApplicationIdNodeSelector implements NodeSelector { + @Override + public String getServerId(SpanBo span) { + return span.getServiceName(); + } + + @Override + public String getServerId(SubSpanBo span) { + return span.getDestinationId(); + } +} diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/NodeIdGenerator.java b/src/main/java/com/nhn/hippo/web/calltree/server/NodeIdGenerator.java deleted file mode 100644 index 7d17dada6..000000000 --- a/src/main/java/com/nhn/hippo/web/calltree/server/NodeIdGenerator.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.nhn.hippo.web.calltree.server; - -import com.profiler.common.bo.SpanBo; -import com.profiler.common.bo.SubSpanBo; - -/** - * - * @author netspider - * - */ -public enum NodeIdGenerator { - - BY_SERVER_INSTANCE, BY_APPLICATION_NAME; - - public String makeServerId(SpanBo span) { - if (this == BY_SERVER_INSTANCE) { - return span.getEndPoint(); - } else if (this == BY_APPLICATION_NAME) { - return span.getServiceName(); - } else { - throw new IllegalArgumentException(); - } - } - - public String makeServerId(SubSpanBo span) { - if (this == BY_SERVER_INSTANCE) { - return span.getEndPoint(); - } else if (this == BY_APPLICATION_NAME) { - return span.getDestinationId(); - } else { - throw new IllegalArgumentException(); - } - } -} diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/NodeSelector.java b/src/main/java/com/nhn/hippo/web/calltree/server/NodeSelector.java new file mode 100644 index 000000000..6d3dd5ece --- /dev/null +++ b/src/main/java/com/nhn/hippo/web/calltree/server/NodeSelector.java @@ -0,0 +1,15 @@ +package com.nhn.hippo.web.calltree.server; + +import com.profiler.common.bo.SpanBo; +import com.profiler.common.bo.SubSpanBo; + +/** + * + */ +public interface NodeSelector { + + String getServerId(SpanBo span); + + String getServerId(SubSpanBo span); + +} diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/Server.java b/src/main/java/com/nhn/hippo/web/calltree/server/Server.java index 14c2ccc7e..0c3f428f6 100644 --- a/src/main/java/com/nhn/hippo/web/calltree/server/Server.java +++ b/src/main/java/com/nhn/hippo/web/calltree/server/Server.java @@ -20,7 +20,7 @@ public class Server implements Comparable { protected int recursiveCallCount; - public Server(SubSpanBo span, NodeIdGenerator idGenerator) { + public Server(SubSpanBo span, NodeSelector nodeSelector) { if (span.getServiceType().isTerminal()) { this.agentIds.add(span.getAgentId()); } else { @@ -33,7 +33,7 @@ public class Server implements Comparable { this.applicationName = span.getEndPoint(); this.serviceType = ServiceType.UNKNOWN_CLOUD; } else { - this.id = idGenerator.makeServerId(span); + this.id = nodeSelector.getServerId(span); // this.id = span.getServiceName(); this.applicationName = span.getServiceName(); this.serviceType = span.getServiceType(); @@ -43,9 +43,9 @@ public class Server implements Comparable { this.recursiveCallCount = 0; } - public Server(SpanBo span, NodeIdGenerator idGenerator) { + public Server(SpanBo span, NodeSelector nodeSelector) { // this.id = span.getServiceName(); - this.id = idGenerator.makeServerId(span); + this.id = nodeSelector.getServerId(span); if (span.getServiceType().isTerminal()) { this.agentIds.add(span.getAgentId()); diff --git a/src/main/java/com/nhn/hippo/web/calltree/server/ServerCallTree.java b/src/main/java/com/nhn/hippo/web/calltree/server/ServerCallTree.java index 1b2c14e73..bd33bffd6 100644 --- a/src/main/java/com/nhn/hippo/web/calltree/server/ServerCallTree.java +++ b/src/main/java/com/nhn/hippo/web/calltree/server/ServerCallTree.java @@ -29,7 +29,7 @@ public class ServerCallTree { private final Map servers = new HashMap(); private final Map serverRequests = new HashMap(); - private final NodeIdGenerator idGenerator; + private final NodeSelector nodeSelector; private boolean isBuilt = false; // temporary variables @@ -39,8 +39,8 @@ public class ServerCallTree { private final Map spanIdToClientId = new HashMap(); private final Map terminalRequests = new HashMap(); - public ServerCallTree(NodeIdGenerator idGenerator) { - this.idGenerator = idGenerator; + public ServerCallTree(NodeSelector nodeSelector) { + this.nodeSelector = nodeSelector; } public void addTerminalStatistics(TerminalStatistics terminal) { @@ -77,7 +77,7 @@ public class ServerCallTree { } public void addSubSpan(SubSpanBo subSpan) { - Server server = new Server(subSpan, idGenerator); + Server server = new Server(subSpan, nodeSelector); if (server.getId() == null) { return; @@ -100,7 +100,7 @@ public class ServerCallTree { } public void addSpan(SpanBo span) { - Server server = new Server(span, idGenerator); + Server server = new Server(span, nodeSelector); if (server.getId() == null) { return; diff --git a/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java b/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java index 8f357ee84..a03f8d4d8 100755 --- a/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java +++ b/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java @@ -8,13 +8,14 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import com.nhn.hippo.web.calltree.server.AgentIdNodeSelector; +import com.nhn.hippo.web.calltree.server.ApplicationIdNodeSelector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; -import com.nhn.hippo.web.calltree.server.NodeIdGenerator; import com.nhn.hippo.web.calltree.server.ServerCallTree; import com.nhn.hippo.web.dao.ApplicationIndexDao; import com.nhn.hippo.web.dao.ApplicationTraceIndexDao; @@ -101,7 +102,7 @@ public class FlowChartServiceImpl implements FlowChartService { @Deprecated @Override public ServerCallTree selectServerCallTree(Set traceIds) { - final ServerCallTree tree = new ServerCallTree(NodeIdGenerator.BY_APPLICATION_NAME); + final ServerCallTree tree = new ServerCallTree(new ApplicationIdNodeSelector()); List> traces = this.traceDao.selectSpans(traceIds); @@ -166,7 +167,7 @@ public class FlowChartServiceImpl implements FlowChartService { * @return */ private ServerCallTree createServerCallTree(List transaction) { - ServerCallTree serverCallTree = new ServerCallTree(NodeIdGenerator.BY_SERVER_INSTANCE); + ServerCallTree serverCallTree = new ServerCallTree(new AgentIdNodeSelector()); serverCallTree.addSpanList(transaction); return serverCallTree; } @@ -192,7 +193,7 @@ public class FlowChartServiceImpl implements FlowChartService { @Override public ServerCallTree selectServerCallTree(Set traceIds, String applicationName, long from, long to) { final Map terminalQueryParams = new HashMap(); - final ServerCallTree tree = new ServerCallTree(NodeIdGenerator.BY_APPLICATION_NAME); + final ServerCallTree tree = new ServerCallTree(new ApplicationIdNodeSelector()); StopWatch watch = new StopWatch(); watch.start("scanNonTerminalSpans");