From d2107dea28397fc7dcc22dadfd12dfd2e6781c84 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Thu, 13 Feb 2014 08:12:14 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[WEB-48]=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4Map=EC=9D=98=20=EC=9D=91=EB=8B=B5=EC=86=8D?= =?UTF-8?q?=EB=8F=84=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC=20=EA=B0=80?= =?UTF-8?q?=EC=A7=80=EA=B3=A0=20=EC=9E=88=EB=8A=94=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=A1=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= =?UTF-8?q?=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@3331 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../web/applicationmap/ApplicationMap.java | 4 +- .../FilteredApplicationMapServiceImpl.java | 24 +++------- .../web/vo/MapResponseHistogramSummary.java | 45 +++++++++++++++++++ .../WEB-INF/views/applicationmap.filtered.jsp | 2 +- .../webapp/WEB-INF/views/applicationmap.jsp | 2 +- 5 files changed, 54 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/nhn/pinpoint/web/vo/MapResponseHistogramSummary.java diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMap.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMap.java index 7bea312fb..8daddd546 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMap.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMap.java @@ -97,11 +97,11 @@ public class ApplicationMap { }); } - public void appendResponseTime(final Map histogramSummaryMap) { + public void appendResponseTime(final MapResponseHistogramSummary mapHistogramSummary) { appendResponseTime(new ResponseDataSource() { @Override public ResponseHistogramSummary getResponseHistogramSummary(Application application) { - return histogramSummaryMap.get(application); + return mapHistogramSummary.get(application); } }); } diff --git a/src/main/java/com/nhn/pinpoint/web/service/FilteredApplicationMapServiceImpl.java b/src/main/java/com/nhn/pinpoint/web/service/FilteredApplicationMapServiceImpl.java index bb9e5d2b7..27c36848d 100755 --- a/src/main/java/com/nhn/pinpoint/web/service/FilteredApplicationMapServiceImpl.java +++ b/src/main/java/com/nhn/pinpoint/web/service/FilteredApplicationMapServiceImpl.java @@ -195,7 +195,7 @@ public class FilteredApplicationMapServiceImpl implements FilteredApplicationMap final Map linkStatMap = new HashMap(); final TimeSeriesStore timeSeriesStore = new DefaultTimeSeriesStoreImpl(range); - final Map responseHistogramSummaryMap = new HashMap(); + final MapResponseHistogramSummary mapHistogramSummary = new MapResponseHistogramSummary(); /** * 통계정보로 변환한다. */ @@ -207,7 +207,7 @@ public class FilteredApplicationMapServiceImpl implements FilteredApplicationMap final Application srcApplication = createSourceApplication(span, transactionSpanMap); final Application destApplication = new Application(span.getApplicationId(), span.getServiceType()); - recordSpanResponseTime(destApplication, span, responseHistogramSummaryMap); + recordSpanResponseTime(destApplication, span, mapHistogramSummary); // record해야 되거나. rpc콜은 링크이다. if (!destApplication.getServiceType().isRecordStatistics() || destApplication.getServiceType().isRpcClient()) { @@ -243,7 +243,7 @@ public class FilteredApplicationMapServiceImpl implements FilteredApplicationMap List linkStatisticsList = new ArrayList(linkStatMap.values()); ApplicationMap map = new ApplicationMapBuilder().build(linkStatisticsList); map.setTimeSeriesStore(timeSeriesStore); - map.appendResponseTime(responseHistogramSummaryMap); + map.appendResponseTime(mapHistogramSummary); return map; @@ -260,22 +260,8 @@ public class FilteredApplicationMapServiceImpl implements FilteredApplicationMap return transactionSpanMap; } - private void recordSpanResponseTime(Application application, SpanBo span, Map responseHistogramSummaryMap) { - - ResponseHistogramSummary responseHistogramSummary = responseHistogramSummaryMap.get(application); - if (responseHistogramSummary == null) { - responseHistogramSummary = new ResponseHistogramSummary(application); - responseHistogramSummaryMap.put(application, responseHistogramSummary); - } - - Histogram histogram = new Histogram(application.getServiceType()); - if (span.getErrCode() != 0) { - histogram.addElapsedTime(HistogramSchema.ERROR_SLOT_TIME); - } else { - histogram.addElapsedTime(span.getElapsed()); - } - responseHistogramSummary.addApplicationLevelHistogram(histogram); - responseHistogramSummary.addAgentLevelHistogram(span.getAgentId(), histogram); + private void recordSpanResponseTime(Application application, SpanBo span, MapResponseHistogramSummary mapResponseHistogramSummary) { + mapResponseHistogramSummary.addHistogram(application, span); } diff --git a/src/main/java/com/nhn/pinpoint/web/vo/MapResponseHistogramSummary.java b/src/main/java/com/nhn/pinpoint/web/vo/MapResponseHistogramSummary.java new file mode 100644 index 000000000..0eb2653c7 --- /dev/null +++ b/src/main/java/com/nhn/pinpoint/web/vo/MapResponseHistogramSummary.java @@ -0,0 +1,45 @@ +package com.nhn.pinpoint.web.vo; + +import com.nhn.pinpoint.common.HistogramSchema; +import com.nhn.pinpoint.common.bo.Span; +import com.nhn.pinpoint.common.bo.SpanBo; +import com.nhn.pinpoint.web.applicationmap.rawdata.Histogram; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author emeroad + */ +public class MapResponseHistogramSummary { + + private final Map responseHistogramSummaryMap = new HashMap(); + + + public void addHistogram(Application application, SpanBo span) { + + ResponseHistogramSummary responseHistogramSummary = getResponseHistogram(application); + + Histogram histogram = new Histogram(application.getServiceType()); + if (span.getErrCode() != 0) { + histogram.addElapsedTime(HistogramSchema.ERROR_SLOT_TIME); + } else { + histogram.addElapsedTime(span.getElapsed()); + } + responseHistogramSummary.addApplicationLevelHistogram(histogram); + responseHistogramSummary.addAgentLevelHistogram(span.getAgentId(), histogram); + } + + private ResponseHistogramSummary getResponseHistogram(Application application) { + ResponseHistogramSummary responseHistogramSummary = responseHistogramSummaryMap.get(application); + if (responseHistogramSummary == null) { + responseHistogramSummary = new ResponseHistogramSummary(application); + responseHistogramSummaryMap.put(application, responseHistogramSummary); + } + return responseHistogramSummary; + } + + public ResponseHistogramSummary get(Application application) { + return this.responseHistogramSummaryMap.get(application); + } +} diff --git a/src/main/webapp/WEB-INF/views/applicationmap.filtered.jsp b/src/main/webapp/WEB-INF/views/applicationmap.filtered.jsp index 8c1694e53..c8aa6ceea 100644 --- a/src/main/webapp/WEB-INF/views/applicationmap.filtered.jsp +++ b/src/main/webapp/WEB-INF/views/applicationmap.filtered.jsp @@ -35,7 +35,7 @@ "isWas" : ${node.serviceType.was}, "histogram" : ${node.responseHistogramSummary.total.json}, - "agentHistogramMap" : { + "agentHistogram" : { "${agentHistogramMap.key}" : ${agentHistogramMap.value.json} , diff --git a/src/main/webapp/WEB-INF/views/applicationmap.jsp b/src/main/webapp/WEB-INF/views/applicationmap.jsp index 06933d564..6e4505854 100644 --- a/src/main/webapp/WEB-INF/views/applicationmap.jsp +++ b/src/main/webapp/WEB-INF/views/applicationmap.jsp @@ -34,7 +34,7 @@ "isWas" : ${node.serviceType.was}, "histogram" : ${node.responseHistogramSummary.total.json}, - "agentHistogramMap" : { + "agentHistogram" : { "${agentHistogramMap.key}" : ${agentHistogramMap.value.json} ,