Skip to content

Commit 5a46816

Browse files
committed
[#12434] Add Node Interpolation
1 parent a3024f4 commit 5a46816

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/service/MapServiceImpl.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap;
4141
import com.navercorp.pinpoint.web.security.ServerMapDataFilter;
4242
import com.navercorp.pinpoint.web.service.ServerInstanceDatasourceService;
43+
import com.navercorp.pinpoint.web.vo.Application;
4344
import com.navercorp.pinpoint.web.vo.SearchOption;
4445
import org.apache.logging.log4j.LogManager;
4546
import org.apache.logging.log4j.Logger;
@@ -126,7 +127,7 @@ public ApplicationMap selectApplicationMap(MapServiceOption option) {
126127
ApplicationMapBuilder builder = createApplicationMapBuilder(option);
127128
ApplicationMap map = builder.build(linkDataDuplexMap, buildTimeoutMillis);
128129
if (map.getNodes().isEmpty()) {
129-
map = builder.build(option.getSourceApplication(), buildTimeoutMillis);
130+
map = buildForNoRequest(option.getSourceApplication(), builder);
130131
}
131132
watch.stop();
132133
if (logger.isInfoEnabled()) {
@@ -138,19 +139,25 @@ public ApplicationMap selectApplicationMap(MapServiceOption option) {
138139
return map;
139140
}
140141

142+
private ApplicationMap buildForNoRequest(Application source, ApplicationMapBuilder builder) {
143+
// If no nodes are found, we still need to build the map with the source application.
144+
builder.includeServerInfo(newServerGroupListFactory(false));
145+
return builder.build(source, buildTimeoutMillis);
146+
}
147+
141148
private ApplicationMapBuilder createApplicationMapBuilder(MapServiceOption option) {
142149
ApplicationMapBuilder builder = applicationMapBuilderFactory.createApplicationMapBuilder(option.getTimeWindow());
143150

144-
final NodeHistogramFactory nodeHistogramFactory = newNodeHistogramFactory(option);
151+
final NodeHistogramFactory nodeHistogramFactory = newNodeHistogramFactory(option.isSimpleResponseHistogram());
145152
builder.includeNodeHistogram(nodeHistogramFactory);
146153

147-
final ServerGroupListFactory serverGroupListFactory = newServerGroupListFactory(option);
154+
final ServerGroupListFactory serverGroupListFactory = newServerGroupListFactory(option.isUseStatisticsAgentState());
148155
builder.includeServerInfo(serverGroupListFactory);
149156
return builder;
150157
}
151158

152-
private NodeHistogramFactory newNodeHistogramFactory(MapServiceOption option) {
153-
if (option.isSimpleResponseHistogram()) {
159+
private NodeHistogramFactory newNodeHistogramFactory(boolean isSimpleResponseHistogram) {
160+
if (isSimpleResponseHistogram) {
154161
WasNodeHistogramDataSource dataSource = new MapResponseSimplifiedNodeHistogramDataSource(mapResponseDao);
155162
return new SimplifiedNodeHistogramFactory(dataSource);
156163
} else {
@@ -159,9 +166,9 @@ private NodeHistogramFactory newNodeHistogramFactory(MapServiceOption option) {
159166
}
160167
}
161168

162-
private ServerGroupListFactory newServerGroupListFactory(MapServiceOption option) {
169+
private ServerGroupListFactory newServerGroupListFactory(boolean isUseStatisticsAgentState) {
163170
ServerGroupListDataSource serverGroupListDataSource = serverInstanceDatasourceService.getServerGroupListDataSource();
164-
if (option.isUseStatisticsAgentState()) {
171+
if (isUseStatisticsAgentState) {
165172
return new StatisticsServerGroupListFactory(serverGroupListDataSource);
166173
} else {
167174
return new DefaultServerGroupListFactory(serverGroupListDataSource);

0 commit comments

Comments
 (0)