Skip to content

Commit

Permalink
[pinpoint-apm#6821] Fix servermap instance list factory
Browse files Browse the repository at this point in the history
  • Loading branch information
jaehong-kim authored and intr3p1d committed Dec 10, 2021
1 parent 796e86a commit c7e2184
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.navercorp.pinpoint.web.applicationmap.appender.server;

import com.navercorp.pinpoint.web.applicationmap.appender.server.datasource.ServerInstanceListDataSource;
import com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram;
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
import com.navercorp.pinpoint.web.applicationmap.nodes.ServerBuilder;
Expand All @@ -33,11 +34,23 @@
* @author jaehong.kim
*/
public class StatisticsServerInstanceListFactory implements ServerInstanceListFactory {
public StatisticsServerInstanceListFactory() {
private final ServerInstanceListDataSource serverInstanceListDataSource;

public StatisticsServerInstanceListFactory(ServerInstanceListDataSource serverInstanceListDataSource) {
this.serverInstanceListDataSource = serverInstanceListDataSource;
}

@Override
public ServerInstanceList createWasNodeInstanceList(Node wasNode, long timestamp) {
ServerInstanceList serverInstanceList = createWasNodeInstanceListFromHistogram(wasNode, timestamp);
if (serverInstanceList.getServerInstanceList().isEmpty()) {
// When there is no transaction information, agentInfo information is used.
serverInstanceList = createWasNodeInstanceListFromAgentInfo(wasNode, timestamp);
}
return serverInstanceList;
}

ServerInstanceList createWasNodeInstanceListFromHistogram(Node wasNode, long timestamp) {
Objects.requireNonNull(wasNode, "wasNode");
if (timestamp < 0) {
return new ServerInstanceList();
Expand All @@ -60,6 +73,10 @@ public ServerInstanceList createWasNodeInstanceList(Node wasNode, long timestamp
return builder.build();
}

ServerInstanceList createWasNodeInstanceListFromAgentInfo(Node wasNode, long timestamp) {
return serverInstanceListDataSource.createServerInstanceList(wasNode, timestamp);
}

@Override
public ServerInstanceList createTerminalNodeInstanceList(Node terminalNode, LinkDataDuplexMap linkDataDuplexMap) {
// extract information about the terminal node
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,10 @@ private ApplicationMap createMap(FilteredMapServiceOption option, FilteredMap fi
applicationMapBuilder.linkType(LinkType.DETAILED);
final WasNodeHistogramDataSource wasNodeHistogramDataSource = new ResponseHistogramsNodeHistogramDataSource(filteredMap.getResponseHistograms());
applicationMapBuilder.includeNodeHistogram(new DefaultNodeHistogramFactory(wasNodeHistogramDataSource));
ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
if(option.isUseStatisticsAgentState()) {
applicationMapBuilder.includeServerInfo(new StatisticsServerInstanceListFactory());
applicationMapBuilder.includeServerInfo(new StatisticsServerInstanceListFactory(serverInstanceListDataSource));
} else {
ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
applicationMapBuilder.includeServerInfo(new DefaultServerInstanceListFactory(serverInstanceListDataSource));
}
ApplicationMap map = applicationMapBuilder.build(filteredMap.getLinkDataDuplexMap(), buildTimeoutMillis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,10 @@ private ApplicationMapBuilder createApplicationMapBuilder(MapServiceOption optio
NodeHistogramFactory nodeHistogramFactory = new DefaultNodeHistogramFactory(wasNodeHistogramDataSource);
builder.includeNodeHistogram(nodeHistogramFactory);

ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
if (option.isUseStatisticsAgentState()) {
builder.includeServerInfo(new StatisticsServerInstanceListFactory());
builder.includeServerInfo(new StatisticsServerInstanceListFactory(serverInstanceListDataSource));
} else {
ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
builder.includeServerInfo(new DefaultServerInstanceListFactory(serverInstanceListDataSource));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,10 @@ public ResponseTimeHistogramServiceImpl(LinkSelectorFactory linkSelectorFactory,
}

private ServerInstanceListFactory createServerInstanceListFactory(ResponseTimeHistogramServiceOption option) {
ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
if (option.isUseStatisticsAgentState()) {
return new StatisticsServerInstanceListFactory();
return new StatisticsServerInstanceListFactory(serverInstanceListDataSource);
}
ServerInstanceListDataSource serverInstanceListDataSource = new AgentInfoServerInstanceListDataSource(agentInfoService);
return new DefaultServerInstanceListFactory(serverInstanceListDataSource);
}

Expand Down

0 comments on commit c7e2184

Please sign in to comment.