From 54d02b88fdffb2e448da7feaede0eb5d1240dd40 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Wed, 16 Apr 2014 09:17:35 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[WEB-98]=20Agen?= =?UTF-8?q?tHistogram=20=EC=83=9D=EC=84=B1=EC=8B=9C=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=EB=90=9C=20=ED=8C=A8=ED=84=B4=EC=9D=98=20=EC=9E=90=EB=A3=8C=20?= =?UTF-8?q?=ED=95=B8=EB=93=A4=EB=A7=81=20=EB=A1=9C=EC=A7=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EA=B3=B5=ED=86=B5=ED=99=94=20=EC=8B=9C=ED=82=B4.?= 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@3690 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../applicationmap/ApplicationMapBuilder.java | 10 +- .../nhn/pinpoint/web/applicationmap/Link.java | 4 +- .../web/applicationmap/ServerBuilder.java | 4 +- .../histogram/AgentTimeHistogram.java | 8 +- .../histogram/AgentTimeHistogramBuilder.java | 99 +++++++++---------- .../rawdata/AgentHistogram.java | 5 + .../rawdata/AgentHistogramList.java | 50 +++++++--- .../rawdata/LinkCallDataMap.java | 4 +- .../pinpoint/web/service/MapServiceImpl.java | 2 +- .../web/view/AgentResponseTimeViewModel.java | 7 +- .../nhn/pinpoint/web/view/LinkSerializer.java | 2 +- .../pinpoint/web/view/LinkSerializerTest.java | 2 +- 12 files changed, 106 insertions(+), 91 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 faec9159a..f657d60a4 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/ApplicationMapBuilder.java @@ -310,7 +310,7 @@ public class ApplicationMapBuilder { for (Link link : toLinkList) { LinkCallDataMap sourceLinkCallDataMap = link.getSourceLinkCallDataMap(); AgentHistogramList targetList = sourceLinkCallDataMap.getTargetList(); - for (AgentHistogram histogram : targetList.getCallHistogramList()) { + for (AgentHistogram histogram : targetList.getAgentHistogramList()) { Histogram find = agentHistogramMap.get(histogram.getId()); if (find == null) { find = new Histogram(histogram.getServiceType()); @@ -322,14 +322,14 @@ public class ApplicationMapBuilder { } } - Collection mergeTarget = new ArrayList(); + LinkCallDataMap mergeSource = new LinkCallDataMap(); for (Link link : toLinkList) { LinkCallDataMap sourceLinkCallDataMap = link.getSourceLinkCallDataMap(); - Collection linkDataMap = sourceLinkCallDataMap.getLinkDataMap(); - mergeTarget.addAll(linkDataMap); + mergeSource.addLinkDataMap(sourceLinkCallDataMap); } + AgentTimeHistogramBuilder agentTimeBuilder = new AgentTimeHistogramBuilder(nodeApplication, range); - AgentTimeHistogram agentTimeHistogram = agentTimeBuilder.buildTarget(mergeTarget); + AgentTimeHistogram agentTimeHistogram = agentTimeBuilder.buildTarget(mergeSource); nodeHistogram.setAgentTimeHistogram(agentTimeHistogram); return nodeHistogram; diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/Link.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/Link.java index 054da6c5a..8c2652326 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/Link.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/Link.java @@ -197,7 +197,7 @@ public class Link { // form인것 같지만 link의 시간은 rpc를 기준으로 삼아야 하기 때문에. to를 기준으로 삼아야 한다. AgentTimeHistogramBuilder builder = new AgentTimeHistogramBuilder(toNode.getApplication(), range); - AgentTimeHistogram applicationTimeSeriesHistogram = builder.buildSource(sourceLinkCallDataMap.getLinkDataMap()); + AgentTimeHistogram applicationTimeSeriesHistogram = builder.buildSource(sourceLinkCallDataMap); AgentResponseTimeViewModelList agentResponseTimeViewModelList = new AgentResponseTimeViewModelList(applicationTimeSeriesHistogram.createViewModel()); return agentResponseTimeViewModelList; } @@ -205,7 +205,7 @@ public class Link { public AgentTimeHistogram getTargetAgentTimeHistogram() { AgentTimeHistogramBuilder builder = new AgentTimeHistogramBuilder(toNode.getApplication(), range); - AgentTimeHistogram agentTimeHistogram = builder.buildSource(targetLinkCallDataMap.getLinkDataMap()); + AgentTimeHistogram agentTimeHistogram = builder.buildSource(targetLinkCallDataMap); return agentTimeHistogram; } diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/ServerBuilder.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/ServerBuilder.java index 4c554dd3f..d0d20a12a 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/ServerBuilder.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/ServerBuilder.java @@ -28,7 +28,7 @@ public class ServerBuilder { if (agentHistogramList == null) { return; } - this.agentHistogramList.addCallHistogram(agentHistogramList); + this.agentHistogramList.addAgentHistogram(agentHistogramList); } public void addAgentInfo(Set agentInfoBo) { @@ -64,7 +64,7 @@ public class ServerBuilder { */ public ServerInstanceList buildLogicalServer(final AgentHistogramList hostHistogram) { ServerInstanceList serverInstanceList = new ServerInstanceList(); - for (AgentHistogram agentHistogram : hostHistogram.getCallHistogramList()) { + for (AgentHistogram agentHistogram : hostHistogram.getAgentHistogramList()) { final String instanceName = agentHistogram.getId(); final String hostName = getHostName(agentHistogram.getId()); final ServiceType serviceType = agentHistogram.getServiceType(); diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogram.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogram.java index b3976b478..8beaf87fa 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogram.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogram.java @@ -25,7 +25,7 @@ public class AgentTimeHistogram { private final Range range; private final TimeWindow window; - private final Map> histogramMap; + private final Map> histogramMap; public AgentTimeHistogram(Application application, Range range) { if (application == null) { @@ -40,7 +40,7 @@ public class AgentTimeHistogram { this.histogramMap = Collections.emptyMap(); } - public AgentTimeHistogram(Application application, Range range, Map> histogramMap) { + public AgentTimeHistogram(Application application, Range range, Map> histogramMap) { if (application == null) { throw new NullPointerException("application must not be null"); } @@ -59,7 +59,7 @@ public class AgentTimeHistogram { public List createViewModel() { final List result = new ArrayList(); - for (Map.Entry> entry : histogramMap.entrySet()) { + for (Map.Entry> entry : histogramMap.entrySet()) { AgentResponseTimeViewModel model = createAgentResponseTimeViewModel(entry.getKey(), entry.getValue()); result.add(model); } @@ -72,7 +72,7 @@ public class AgentTimeHistogram { return result; } - private AgentResponseTimeViewModel createAgentResponseTimeViewModel(String agentName, List timeHistogramList) { + private AgentResponseTimeViewModel createAgentResponseTimeViewModel(Application agentName, List timeHistogramList) { List responseTimeViewModel = createResponseTimeViewModel(timeHistogramList); AgentResponseTimeViewModel agentResponseTimeViewModel = new AgentResponseTimeViewModel(agentName, responseTimeViewModel); return agentResponseTimeViewModel; diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogramBuilder.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogramBuilder.java index 96345406a..246251b89 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogramBuilder.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/histogram/AgentTimeHistogramBuilder.java @@ -1,7 +1,9 @@ package com.nhn.pinpoint.web.applicationmap.histogram; import com.nhn.pinpoint.common.SlotType; -import com.nhn.pinpoint.web.applicationmap.rawdata.LinkCallData; +import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogram; +import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogramList; +import com.nhn.pinpoint.web.applicationmap.rawdata.LinkCallDataMap; import com.nhn.pinpoint.web.util.TimeWindow; import com.nhn.pinpoint.web.util.TimeWindowOneMinuteSampler; import com.nhn.pinpoint.web.vo.Application; @@ -37,30 +39,25 @@ public class AgentTimeHistogramBuilder { public AgentTimeHistogram build(List responseHistogramList) { - Map> agentLevelMap = new HashMap>(); + AgentHistogramList agentHistogramList = new AgentHistogramList(); for (ResponseTime responseTime : responseHistogramList) { - Set> agentHistogram = responseTime.getAgentHistogram(); + Set> agentHistogram = responseTime.getAgentHistogram(); for (Map.Entry agentEntry : agentHistogram) { - List histogramList = agentLevelMap.get(agentEntry.getKey()); - if (histogramList == null) { - histogramList = new ArrayList(); - agentLevelMap.put(agentEntry.getKey(), histogramList); - } - Histogram histogram = agentEntry.getValue(); + Histogram histogram = agentEntry.getValue(); TimeHistogram timeHistogram = new TimeHistogram(application.getServiceType(), responseTime.getTimeStamp()); timeHistogram.add(histogram); - histogramList.add(timeHistogram); + agentHistogramList.addAgentHistogram(agentEntry.getKey(), application.getServiceType(), timeHistogram); } } - Map> histogramMap = interpolation(agentLevelMap); + Map> histogramMap = interpolation(agentHistogramList, window); if (logger.isTraceEnabled()) { - for (Map.Entry> agentListEntry : agentLevelMap.entrySet()) { - String agentName = agentListEntry.getKey(); + for (AgentHistogram agentListEntry : agentHistogramList.getAgentHistogramList()) { + Application agentName = agentListEntry.getAgentId(); logger.trace("agentName:{}", agentName); - List value = agentListEntry.getValue(); + Collection value = agentListEntry.getTimeHistogram(); for (TimeHistogram histogram : value) { logger.trace("histogram:{}", histogram); } @@ -70,60 +67,52 @@ public class AgentTimeHistogramBuilder { return agentTimeHistogram; } - public AgentTimeHistogram buildSource(Collection linkCallDataMap) { - return build(linkCallDataMap, true); - } - - public AgentTimeHistogram buildTarget(Collection linkCallDataMap) { - return build(linkCallDataMap, false); - } - - private AgentTimeHistogram build(Collection linkCallDataMap, boolean sourceGroup) { - - Map> agentLevelMap = new HashMap>(); - for (LinkCallData linkCallData : linkCallDataMap) { - String nodeGroup = null; - if (sourceGroup) { - nodeGroup = linkCallData.getSource(); - } else { - nodeGroup = linkCallData.getTarget(); - } - List sourceHistogramList = agentLevelMap.get(nodeGroup); - if (sourceHistogramList == null) { - sourceHistogramList = new ArrayList(); - agentLevelMap.put(nodeGroup, sourceHistogramList); - } - // 주의 copy본이 아니라 원본 수정시 데이터가 틀릴수 있음. - // interpolation에서 객체를 재 생성하므로 현재는 상관없음. - sourceHistogramList.addAll(linkCallData.getTimeHistogram()); + public AgentTimeHistogram buildSource(LinkCallDataMap linkCallDataMap) { + if (linkCallDataMap == null) { + throw new NullPointerException("linkCallDataMap must not be null"); } - Map> histogramMap = interpolation(agentLevelMap); + return build(linkCallDataMap.getSourceList()); + } + + public AgentTimeHistogram buildTarget(LinkCallDataMap linkCallDataMap) { + if (linkCallDataMap == null) { + throw new NullPointerException("linkCallDataMap must not be null"); + } + return build(linkCallDataMap.getTargetList()); + } + + + private AgentTimeHistogram build(AgentHistogramList agentHistogramList) { + + Map> histogramMap = interpolation(agentHistogramList, window); AgentTimeHistogram agentTimeHistogram = new AgentTimeHistogram(application, range, histogramMap); return agentTimeHistogram; } - private Map> interpolation(Map> agentLevelMap) { + + private Map> interpolation(AgentHistogramList agentLevelMap, TimeWindow window) { if (agentLevelMap.size() == 0) { - return agentLevelMap; + return Collections.emptyMap(); } - Map> windowTimeMap = new HashMap>(); + + Map> windowTimeMap = new HashMap>(); // window 공간생성. // list로 할수도 있으나, filter일 경우 range를 초과하는 경우가 발생할 가능성이 있어 map으로 생성한다. // 좀더 나은 방인이 있으면 변경하는게 좋을듯. - for (String key : agentLevelMap.keySet()) { - Map value = new HashMap(); + for (AgentHistogram agentHistogram : agentLevelMap.getAgentHistogramList()) { + Map timeMap = new HashMap(); for (Long time : window) { - value.put(time, new TimeHistogram(application.getServiceType(), time)); + timeMap.put(time, new TimeHistogram(application.getServiceType(), time)); } - windowTimeMap.put(key, value); + windowTimeMap.put(agentHistogram.getAgentId(), timeMap); } - for (Map.Entry> entry : agentLevelMap.entrySet()) { - List histogramList = entry.getValue(); + for (AgentHistogram agentHistogram : agentLevelMap.getAgentHistogramList()) { + Collection histogramList = agentHistogram.getTimeHistogram(); for (TimeHistogram timeHistogram : histogramList) { long time = window.refineTimestamp(timeHistogram.getTimeStamp()); // int windowIndex = window.getWindowIndex(time); - Map findSlot = windowTimeMap.get(entry.getKey()); + Map findSlot = windowTimeMap.get(agentHistogram.getAgentId()); TimeHistogram windowHistogram = findSlot.get(time); if (windowHistogram == null) { windowHistogram = new TimeHistogram(application.getServiceType(), time); @@ -133,9 +122,9 @@ public class AgentTimeHistogramBuilder { } } - Map> result = new HashMap>(); - for (Map.Entry> windowMapEntry : windowTimeMap.entrySet()) { - final String key = windowMapEntry.getKey(); + Map> result = new HashMap>(); + for (Map.Entry> windowMapEntry : windowTimeMap.entrySet()) { + final Application key = windowMapEntry.getKey(); List histogramList = result.get(key); if(histogramList == null) { histogramList = new ArrayList(); @@ -151,7 +140,7 @@ public class AgentTimeHistogramBuilder { return result; } - private void sortList(Map> agentLevelMap) { + private void sortList(Map> agentLevelMap) { Collection> values = agentLevelMap.values(); for (List value : values) { Collections.sort(value, TimeHistogram.TIME_STAMP_ASC_COMPARATOR); diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogram.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogram.java index 2ee44fe17..a1c580711 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogram.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogram.java @@ -50,6 +50,11 @@ public class AgentHistogram { return agentId.getName(); } + @JsonIgnore + public Application getAgentId() { + return agentId; + } + @JsonIgnore public ServiceType getServiceType() { return agentId.getServiceType(); diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogramList.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogramList.java index 13433cd92..1526193ca 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogramList.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/AgentHistogramList.java @@ -16,7 +16,7 @@ public class AgentHistogramList { private final Logger logger = LoggerFactory.getLogger(this.getClass()); // agent별 Time 시리즈 데이터를 가지고 있음. - private final Map callHistogramMap = new HashMap(); + private final Map agentHistogramMap = new HashMap(); public AgentHistogramList() { } @@ -29,33 +29,49 @@ public class AgentHistogramList { if (histogramList == null) { throw new NullPointerException("histogramList must not be null"); } - AgentHistogram agentHistogram = getCallHistogram(agentId); + AgentHistogram agentHistogram = getAgentHistogram(agentId); agentHistogram.addTimeHistogram(histogramList); } - public void addCallHistogram(String agentName, ServiceType serviceType, Collection histogramList) { + public void addCallHistogram(Application agentId, TimeHistogram timeHistogram) { + if (agentId == null) { + throw new NullPointerException("agentId must not be null"); + } + if (timeHistogram == null) { + throw new NullPointerException("timeHistogram must not be null"); + } + AgentHistogram agentHistogram = getAgentHistogram(agentId); + agentHistogram.addTimeHistogram(timeHistogram); + } + + public void addAgentHistogram(String agentName, ServiceType serviceType, Collection histogramList) { Application agentId = new Application(agentName, serviceType); addCallHistogram(agentId, histogramList); } + public void addAgentHistogram(String agentName, ServiceType serviceType, TimeHistogram timeHistogram) { + Application agentId = new Application(agentName, serviceType); + addCallHistogram(agentId, timeHistogram); + } - private AgentHistogram getCallHistogram(Application agentId) { + + private AgentHistogram getAgentHistogram(Application agentId) { if (agentId == null) { throw new NullPointerException("agentId must not be null"); } - AgentHistogram agentHistogram = callHistogramMap.get(agentId); + AgentHistogram agentHistogram = agentHistogramMap.get(agentId); if (agentHistogram == null) { agentHistogram = new AgentHistogram(agentId); - callHistogramMap.put(agentId, agentHistogram); + agentHistogramMap.put(agentId, agentHistogram); } return agentHistogram; } public Histogram mergeHistogram(ServiceType serviceType) { final Histogram histogram = new Histogram(serviceType); - for (AgentHistogram agentHistogram : getCallHistogramList()) { + for (AgentHistogram agentHistogram : getAgentHistogramList()) { histogram.add(agentHistogram.getHistogram()); } return histogram; @@ -63,7 +79,7 @@ public class AgentHistogramList { - public void addCallHistogram(AgentHistogram agentHistogram) { + public void addAgentHistogram(AgentHistogram agentHistogram) { if (agentHistogram == null) { throw new NullPointerException("agentHistogram must not be null"); } @@ -71,27 +87,31 @@ public class AgentHistogramList { ServiceType serviceType = agentHistogram.getServiceType(); Application agentId = new Application(hostName, serviceType); - AgentHistogram findAgentHistogram = getCallHistogram(agentId); + AgentHistogram findAgentHistogram = getAgentHistogram(agentId); findAgentHistogram.addTimeHistogram(agentHistogram.getTimeHistogram()); } - public void addCallHistogram(AgentHistogramList addAgentHistogramList) { + public void addAgentHistogram(AgentHistogramList addAgentHistogramList) { if (addAgentHistogramList == null) { throw new NullPointerException("agentHistogram must not be null"); } - for (AgentHistogram agentHistogram : addAgentHistogramList.callHistogramMap.values()) { - addCallHistogram(agentHistogram); + for (AgentHistogram agentHistogram : addAgentHistogramList.agentHistogramMap.values()) { + addAgentHistogram(agentHistogram); } } - public Collection getCallHistogramList() { - return callHistogramMap.values(); + public Collection getAgentHistogramList() { + return agentHistogramMap.values(); } @Override public String toString() { return "AgentHistogramList{" - + callHistogramMap + + + agentHistogramMap + '}'; } + + public int size() { + return this.agentHistogramMap.size(); + } } diff --git a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/LinkCallDataMap.java b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/LinkCallDataMap.java index fbb4d1f9f..67d89c351 100644 --- a/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/LinkCallDataMap.java +++ b/src/main/java/com/nhn/pinpoint/web/applicationmap/rawdata/LinkCallDataMap.java @@ -72,7 +72,7 @@ public class LinkCallDataMap { for (Map.Entry linkKeyRawCallDataEntry : linkDataMap.entrySet()) { final LinkKey key = linkKeyRawCallDataEntry.getKey(); final LinkCallData linkCallData = linkKeyRawCallDataEntry.getValue(); - targetList.addCallHistogram(key.getToApplication(), key.getToServiceType(), linkCallData.getTimeHistogram()); + targetList.addAgentHistogram(key.getToApplication(), key.getToServiceType(), linkCallData.getTimeHistogram()); } return targetList; } @@ -84,7 +84,7 @@ public class LinkCallDataMap { final LinkCallData linkCallData = linkKeyRawCallDataEntry.getValue(); // to의 ServiceType이 들어가야 한다. // 여기서 source란 source의 입장에서 target 호출시의 데이터를 의미하는 것이기 때문에. ServiceType자체는 To의 ServiceType이 들어가야한다. - sourceList.addCallHistogram(key.getFromApplication(), key.getToServiceType(), linkCallData.getTimeHistogram()); + sourceList.addAgentHistogram(key.getFromApplication(), key.getToServiceType(), linkCallData.getTimeHistogram()); } return sourceList; } diff --git a/src/main/java/com/nhn/pinpoint/web/service/MapServiceImpl.java b/src/main/java/com/nhn/pinpoint/web/service/MapServiceImpl.java index 5fae7b96d..763367124 100644 --- a/src/main/java/com/nhn/pinpoint/web/service/MapServiceImpl.java +++ b/src/main/java/com/nhn/pinpoint/web/service/MapServiceImpl.java @@ -205,7 +205,7 @@ public class MapServiceImpl implements MapService { for (LinkDataMap entry : list) { for (LinkData linkData : entry.getLinkDataList()) { AgentHistogramList sourceList = linkData.getSourceList(); - Collection agentHistogramList = sourceList.getCallHistogramList(); + Collection agentHistogramList = sourceList.getAgentHistogramList(); for (AgentHistogram histogram : agentHistogramList) { for (TimeHistogram timeHistogram : histogram.getTimeHistogram()) { Application toApplication = linkData.getToApplication(); diff --git a/src/main/java/com/nhn/pinpoint/web/view/AgentResponseTimeViewModel.java b/src/main/java/com/nhn/pinpoint/web/view/AgentResponseTimeViewModel.java index e57bb5328..ffdb8f91f 100644 --- a/src/main/java/com/nhn/pinpoint/web/view/AgentResponseTimeViewModel.java +++ b/src/main/java/com/nhn/pinpoint/web/view/AgentResponseTimeViewModel.java @@ -1,6 +1,7 @@ package com.nhn.pinpoint.web.view; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.nhn.pinpoint.web.vo.Application; import java.util.List; @@ -10,11 +11,11 @@ import java.util.List; @JsonSerialize(using=AgentResponseTimeViewModelSerializer.class) public class AgentResponseTimeViewModel { - private final String agentName; + private final Application agentName; private final List responseTimeViewModel; - public AgentResponseTimeViewModel(String agentName, List responseTimeViewModel) { + public AgentResponseTimeViewModel(Application agentName, List responseTimeViewModel) { if (agentName == null) { throw new NullPointerException("agentName must not be null"); } @@ -26,7 +27,7 @@ public class AgentResponseTimeViewModel { } public String getAgentName() { - return agentName; + return agentName.getName(); } public List getResponseTimeViewModel() { diff --git a/src/main/java/com/nhn/pinpoint/web/view/LinkSerializer.java b/src/main/java/com/nhn/pinpoint/web/view/LinkSerializer.java index 32384cdad..5ca103c75 100644 --- a/src/main/java/com/nhn/pinpoint/web/view/LinkSerializer.java +++ b/src/main/java/com/nhn/pinpoint/web/view/LinkSerializer.java @@ -69,7 +69,7 @@ public class LinkSerializer extends JsonSerializer { private void writeAgentHistogram(String fieldName, AgentHistogramList agentHistogramList, JsonGenerator jgen) throws IOException { jgen.writeFieldName(fieldName); jgen.writeStartObject(); - for (AgentHistogram agentHistogram : agentHistogramList.getCallHistogramList()) { + for (AgentHistogram agentHistogram : agentHistogramList.getAgentHistogramList()) { jgen.writeFieldName(agentHistogram.getId()); jgen.writeObject(agentHistogram.getHistogram()); } diff --git a/src/test/java/com/nhn/pinpoint/web/view/LinkSerializerTest.java b/src/test/java/com/nhn/pinpoint/web/view/LinkSerializerTest.java index 355e39b8a..ceb187751 100644 --- a/src/test/java/com/nhn/pinpoint/web/view/LinkSerializerTest.java +++ b/src/test/java/com/nhn/pinpoint/web/view/LinkSerializerTest.java @@ -27,7 +27,7 @@ public class LinkSerializerTest { public void testSerialize() throws Exception { AgentHistogramList list = new AgentHistogramList(); AgentHistogram histogram = new AgentHistogram(new Application("test", ServiceType.TOMCAT)); - list.addCallHistogram(histogram); + list.addAgentHistogram(histogram); Node node1 = new Node(new Application("test1", ServiceType.TOMCAT)); Node node2 = new Node(new Application("test1", ServiceType.TOMCAT));