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} ,