mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-17 16:56:15 +10:00
[강운덕] [WEB-98] AgentHistogram 생성시 중복된 패턴의 자료 핸들링 로직으로 공통화 시킴.
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-web/trunk@3690 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -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<LinkCallData> mergeTarget = new ArrayList<LinkCallData>();
|
||||
LinkCallDataMap mergeSource = new LinkCallDataMap();
|
||||
for (Link link : toLinkList) {
|
||||
LinkCallDataMap sourceLinkCallDataMap = link.getSourceLinkCallDataMap();
|
||||
Collection<LinkCallData> 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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ public class ServerBuilder {
|
||||
if (agentHistogramList == null) {
|
||||
return;
|
||||
}
|
||||
this.agentHistogramList.addCallHistogram(agentHistogramList);
|
||||
this.agentHistogramList.addAgentHistogram(agentHistogramList);
|
||||
}
|
||||
|
||||
public void addAgentInfo(Set<AgentInfoBo> 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();
|
||||
|
||||
@@ -25,7 +25,7 @@ public class AgentTimeHistogram {
|
||||
private final Range range;
|
||||
private final TimeWindow window;
|
||||
|
||||
private final Map<String, List<TimeHistogram>> histogramMap;
|
||||
private final Map<Application, List<TimeHistogram>> 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<String, List<TimeHistogram>> histogramMap) {
|
||||
public AgentTimeHistogram(Application application, Range range, Map<Application, List<TimeHistogram>> histogramMap) {
|
||||
if (application == null) {
|
||||
throw new NullPointerException("application must not be null");
|
||||
}
|
||||
@@ -59,7 +59,7 @@ public class AgentTimeHistogram {
|
||||
|
||||
public List<AgentResponseTimeViewModel> createViewModel() {
|
||||
final List<AgentResponseTimeViewModel> result = new ArrayList<AgentResponseTimeViewModel>();
|
||||
for (Map.Entry<String, List<TimeHistogram>> entry : histogramMap.entrySet()) {
|
||||
for (Map.Entry<Application, List<TimeHistogram>> 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<TimeHistogram> timeHistogramList) {
|
||||
private AgentResponseTimeViewModel createAgentResponseTimeViewModel(Application agentName, List<TimeHistogram> timeHistogramList) {
|
||||
List<ResponseTimeViewModel> responseTimeViewModel = createResponseTimeViewModel(timeHistogramList);
|
||||
AgentResponseTimeViewModel agentResponseTimeViewModel = new AgentResponseTimeViewModel(agentName, responseTimeViewModel);
|
||||
return agentResponseTimeViewModel;
|
||||
|
||||
+44
-55
@@ -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<ResponseTime> responseHistogramList) {
|
||||
Map<String, List<TimeHistogram>> agentLevelMap = new HashMap<String, List<TimeHistogram>>();
|
||||
AgentHistogramList agentHistogramList = new AgentHistogramList();
|
||||
for (ResponseTime responseTime : responseHistogramList) {
|
||||
Set<Map.Entry<String,Histogram>> agentHistogram = responseTime.getAgentHistogram();
|
||||
Set<Map.Entry<String, Histogram>> agentHistogram = responseTime.getAgentHistogram();
|
||||
for (Map.Entry<String, Histogram> agentEntry : agentHistogram) {
|
||||
List<TimeHistogram> histogramList = agentLevelMap.get(agentEntry.getKey());
|
||||
if (histogramList == null) {
|
||||
histogramList = new ArrayList<TimeHistogram>();
|
||||
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<String, List<TimeHistogram>> histogramMap = interpolation(agentLevelMap);
|
||||
Map<Application, List<TimeHistogram>> histogramMap = interpolation(agentHistogramList, window);
|
||||
|
||||
if (logger.isTraceEnabled()) {
|
||||
for (Map.Entry<String, List<TimeHistogram>> agentListEntry : agentLevelMap.entrySet()) {
|
||||
String agentName = agentListEntry.getKey();
|
||||
for (AgentHistogram agentListEntry : agentHistogramList.getAgentHistogramList()) {
|
||||
Application agentName = agentListEntry.getAgentId();
|
||||
logger.trace("agentName:{}", agentName);
|
||||
List<TimeHistogram> value = agentListEntry.getValue();
|
||||
Collection<TimeHistogram> value = agentListEntry.getTimeHistogram();
|
||||
for (TimeHistogram histogram : value) {
|
||||
logger.trace("histogram:{}", histogram);
|
||||
}
|
||||
@@ -70,60 +67,52 @@ public class AgentTimeHistogramBuilder {
|
||||
return agentTimeHistogram;
|
||||
}
|
||||
|
||||
public AgentTimeHistogram buildSource(Collection<LinkCallData> linkCallDataMap) {
|
||||
return build(linkCallDataMap, true);
|
||||
}
|
||||
|
||||
public AgentTimeHistogram buildTarget(Collection<LinkCallData> linkCallDataMap) {
|
||||
return build(linkCallDataMap, false);
|
||||
}
|
||||
|
||||
private AgentTimeHistogram build(Collection<LinkCallData> linkCallDataMap, boolean sourceGroup) {
|
||||
|
||||
Map<String, List<TimeHistogram>> agentLevelMap = new HashMap<String, List<TimeHistogram>>();
|
||||
for (LinkCallData linkCallData : linkCallDataMap) {
|
||||
String nodeGroup = null;
|
||||
if (sourceGroup) {
|
||||
nodeGroup = linkCallData.getSource();
|
||||
} else {
|
||||
nodeGroup = linkCallData.getTarget();
|
||||
}
|
||||
List<TimeHistogram> sourceHistogramList = agentLevelMap.get(nodeGroup);
|
||||
if (sourceHistogramList == null) {
|
||||
sourceHistogramList = new ArrayList<TimeHistogram>();
|
||||
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<String, List<TimeHistogram>> 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<Application, List<TimeHistogram>> histogramMap = interpolation(agentHistogramList, window);
|
||||
AgentTimeHistogram agentTimeHistogram = new AgentTimeHistogram(application, range, histogramMap);
|
||||
return agentTimeHistogram;
|
||||
}
|
||||
|
||||
private Map<String, List<TimeHistogram>> interpolation(Map<String, List<TimeHistogram>> agentLevelMap) {
|
||||
|
||||
private Map<Application, List<TimeHistogram>> interpolation(AgentHistogramList agentLevelMap, TimeWindow window) {
|
||||
if (agentLevelMap.size() == 0) {
|
||||
return agentLevelMap;
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
Map<String, Map<Long, TimeHistogram>> windowTimeMap = new HashMap<String, Map<Long, TimeHistogram>>();
|
||||
|
||||
Map<Application, Map<Long, TimeHistogram>> windowTimeMap = new HashMap<Application, Map<Long, TimeHistogram>>();
|
||||
// window 공간생성.
|
||||
// list로 할수도 있으나, filter일 경우 range를 초과하는 경우가 발생할 가능성이 있어 map으로 생성한다.
|
||||
// 좀더 나은 방인이 있으면 변경하는게 좋을듯.
|
||||
for (String key : agentLevelMap.keySet()) {
|
||||
Map<Long, TimeHistogram> value = new HashMap<Long, TimeHistogram>();
|
||||
for (AgentHistogram agentHistogram : agentLevelMap.getAgentHistogramList()) {
|
||||
Map<Long, TimeHistogram> timeMap = new HashMap<Long, TimeHistogram>();
|
||||
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<String, List<TimeHistogram>> entry : agentLevelMap.entrySet()) {
|
||||
List<TimeHistogram> histogramList = entry.getValue();
|
||||
for (AgentHistogram agentHistogram : agentLevelMap.getAgentHistogramList()) {
|
||||
Collection<TimeHistogram> histogramList = agentHistogram.getTimeHistogram();
|
||||
for (TimeHistogram timeHistogram : histogramList) {
|
||||
long time = window.refineTimestamp(timeHistogram.getTimeStamp());
|
||||
// int windowIndex = window.getWindowIndex(time);
|
||||
Map<Long, TimeHistogram> findSlot = windowTimeMap.get(entry.getKey());
|
||||
Map<Long, TimeHistogram> 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<String, List<TimeHistogram>> result = new HashMap<String, List<TimeHistogram>>();
|
||||
for (Map.Entry<String, Map<Long, TimeHistogram>> windowMapEntry : windowTimeMap.entrySet()) {
|
||||
final String key = windowMapEntry.getKey();
|
||||
Map<Application, List<TimeHistogram>> result = new HashMap<Application, List<TimeHistogram>>();
|
||||
for (Map.Entry<Application, Map<Long, TimeHistogram>> windowMapEntry : windowTimeMap.entrySet()) {
|
||||
final Application key = windowMapEntry.getKey();
|
||||
List<TimeHistogram> histogramList = result.get(key);
|
||||
if(histogramList == null) {
|
||||
histogramList = new ArrayList<TimeHistogram>();
|
||||
@@ -151,7 +140,7 @@ public class AgentTimeHistogramBuilder {
|
||||
return result;
|
||||
}
|
||||
|
||||
private void sortList(Map<String, List<TimeHistogram>> agentLevelMap) {
|
||||
private void sortList(Map<Application, List<TimeHistogram>> agentLevelMap) {
|
||||
Collection<List<TimeHistogram>> values = agentLevelMap.values();
|
||||
for (List<TimeHistogram> value : values) {
|
||||
Collections.sort(value, TimeHistogram.TIME_STAMP_ASC_COMPARATOR);
|
||||
|
||||
@@ -50,6 +50,11 @@ public class AgentHistogram {
|
||||
return agentId.getName();
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public Application getAgentId() {
|
||||
return agentId;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public ServiceType getServiceType() {
|
||||
return agentId.getServiceType();
|
||||
|
||||
@@ -16,7 +16,7 @@ public class AgentHistogramList {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
// agent별 Time 시리즈 데이터를 가지고 있음.
|
||||
private final Map<Application, AgentHistogram> callHistogramMap = new HashMap<Application, AgentHistogram>();
|
||||
private final Map<Application, AgentHistogram> agentHistogramMap = new HashMap<Application, AgentHistogram>();
|
||||
|
||||
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<TimeHistogram> 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<TimeHistogram> 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<AgentHistogram> getCallHistogramList() {
|
||||
return callHistogramMap.values();
|
||||
public Collection<AgentHistogram> getAgentHistogramList() {
|
||||
return agentHistogramMap.values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AgentHistogramList{"
|
||||
+ callHistogramMap +
|
||||
+ agentHistogramMap +
|
||||
'}';
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.agentHistogramMap.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public class LinkCallDataMap {
|
||||
for (Map.Entry<LinkKey, LinkCallData> 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;
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ public class MapServiceImpl implements MapService {
|
||||
for (LinkDataMap entry : list) {
|
||||
for (LinkData linkData : entry.getLinkDataList()) {
|
||||
AgentHistogramList sourceList = linkData.getSourceList();
|
||||
Collection<AgentHistogram> agentHistogramList = sourceList.getCallHistogramList();
|
||||
Collection<AgentHistogram> agentHistogramList = sourceList.getAgentHistogramList();
|
||||
for (AgentHistogram histogram : agentHistogramList) {
|
||||
for (TimeHistogram timeHistogram : histogram.getTimeHistogram()) {
|
||||
Application toApplication = linkData.getToApplication();
|
||||
|
||||
@@ -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> responseTimeViewModel;
|
||||
|
||||
public AgentResponseTimeViewModel(String agentName, List<ResponseTimeViewModel> responseTimeViewModel) {
|
||||
public AgentResponseTimeViewModel(Application agentName, List<ResponseTimeViewModel> 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<ResponseTimeViewModel> getResponseTimeViewModel() {
|
||||
|
||||
@@ -69,7 +69,7 @@ public class LinkSerializer extends JsonSerializer<Link> {
|
||||
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());
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user