From f01ffeb4316ee64b6ee868bb6a6d052bc415435e Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Thu, 10 Apr 2014 09:41:37 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[WEB-98]=20Appl?= =?UTF-8?q?ication=EC=97=90=20=EC=86=8D=ED=95=98=EB=8A=94=20AgentInfo=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=ED=9B=84=20=EC=9D=91=EB=8B=B5=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=EB=A5=BC=20=EC=9E=88=EB=8A=94=EC=A7=80?= =?UTF-8?q?=EB=A5=BC=20=EA=B8=B0=EB=B0=98=EC=9C=BC=EB=A1=9C=20=EC=9E=AC=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=EC=9D=84=20=EC=88=98=ED=96=89?= =?UTF-8?q?=ED=95=98=EC=97=AC,=20=EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20Agent=EB=B3=84=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EB=A5=BC=20=EC=A0=9C=EA=B1=B0=ED=95=A8.=20=20-=20?= =?UTF-8?q?=EC=B6=94=ED=9B=84=20=EC=84=9C=EB=B2=84=EA=B0=80=20=EC=82=B4?= =?UTF-8?q?=EC=95=84=20=EC=9E=88=EB=8A=94=20=EC=A0=95=EB=B3=B4=EB=A5=BC=20?= =?UTF-8?q?=EA=B8=B0=EB=B0=98=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=A5=BC=20?= =?UTF-8?q?=EB=8B=A4=EC=8B=9C=20=ED=95=84=ED=84=B0=EB=A7=81=20=ED=95=A0?= =?UTF-8?q?=EC=88=98=20=EC=9E=88=EC=96=B4=EC=95=BC=20=ED=95=9C=EB=8B=A4.?= 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@3648 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../applicationmap/ApplicationMapBuilder.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java index f3ba0ad7e..96d730229 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java @@ -2,19 +2,14 @@ package com.nhn.pinpoint.web.applicationmap; import com.nhn.pinpoint.common.ServiceType; import com.nhn.pinpoint.common.bo.AgentInfoBo; -import com.nhn.pinpoint.web.applicationmap.rawdata.LinkCallDataMap; -import com.nhn.pinpoint.web.applicationmap.rawdata.LinkData; -import com.nhn.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap; -import com.nhn.pinpoint.web.applicationmap.rawdata.LinkDataMap; +import com.nhn.pinpoint.web.applicationmap.rawdata.*; import com.nhn.pinpoint.web.dao.MapResponseDao; import com.nhn.pinpoint.web.service.AgentInfoService; import com.nhn.pinpoint.web.vo.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Collection; -import java.util.List; -import java.util.Set; +import java.util.*; /** * @author emeroad @@ -326,13 +321,13 @@ public class ApplicationMapBuilder { ServerInstanceList serverInstanceList = builder.build(); node.setServerInstanceList(serverInstanceList); } else if (nodeServiceType.isWas()) { - final Set agentList = agentInfoService.selectAgent(node.getApplication().getName(), range); + Set agentList = agentInfoService.selectAgent(node.getApplication().getName(), range); if (agentList.isEmpty()) { return; } logger.debug("add agentInfo. {}, {}", node.getApplication(), agentList); ServerBuilder builder = new ServerBuilder(); - + agentList = filterAgentInfoByResponseData(agentList, node); builder.addAgentInfo(agentList); ServerInstanceList serverInstanceList = builder.build(); @@ -342,5 +337,25 @@ public class ApplicationMapBuilder { } + /** + * 실제 응답속도 정보가 있는 데이터를 기반으로 AgentInfo를 필터링 친다. + * 정공이라고 말할 수 있는 코드는 아님. + * 나중에 실제 서버가 살아 있는 정보를 기반으로 이를 유추할수 있게 해야한다. + */ + private Set filterAgentInfoByResponseData(Set agentList, Node node) { + Set filteredAgentInfo = new HashSet(); + + ResponseHistogramSummary responseHistogramSummary = node.getResponseHistogramSummary(); + Map agentHistogramMap = responseHistogramSummary.getAgentHistogramMap(); + for (AgentInfoBo agentInfoBo : agentList) { + String agentId = agentInfoBo.getAgentId(); + if (agentHistogramMap.containsKey(agentId)) { + filteredAgentInfo.add(agentInfoBo); + } + } + + return filteredAgentInfo; + } + }