Skip to content

Commit 7189ad2

Browse files
committed
[pinpoint-apm#3075] Add target service type as part of USER node name
1 parent e81ed79 commit 7189ad2

File tree

4 files changed

+39
-26
lines changed

4 files changed

+39
-26
lines changed

‎web/src/main/java/com/navercorp/pinpoint/web/controller/BusinessTransactionController.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public TransactionInfoViewModel transactionInfo(@RequestParam("traceId") String
9999
final CallTreeIterator callTreeIterator = spanResult.getCallTree();
100100

101101
// application map
102-
ApplicationMap map = filteredMapService.selectApplicationMap(transactionId);
102+
ApplicationMap map = filteredMapService.selectApplicationMap(transactionId, viewVersion);
103103
RecordSet recordSet = this.transactionInfoService.createRecordSet(callTreeIterator, focusTimestamp, agentId, spanId);
104104

105105
TransactionInfoViewModel result = new TransactionInfoViewModel(transactionId, map.getNodes(), map.getLinks(), recordSet, spanResult.getCompleteTypeString(), logLinkEnable, logButtonName, logPageUrl, disableButtonMessage);

‎web/src/main/java/com/navercorp/pinpoint/web/controller/FilteredMapController.java‎

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,10 @@ public FilterMapWrap getFilteredServerMapData(
8080
@RequestParam("originTo") long originTo,
8181
@RequestParam(value = "filter", required = false) String filterText,
8282
@RequestParam(value = "hint", required = false) String filterHint,
83-
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit) {
83+
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit,
84+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
8485
String serviceTypeName = registry.findServiceType(serviceTypeCode).getName();
85-
return getFilteredServerMapData(applicationName, serviceTypeName, from, to, originTo, filterText, filterHint, limit);
86+
return getFilteredServerMapData(applicationName, serviceTypeName, from, to, originTo, filterText, filterHint, limit, viewVersion);
8687
}
8788

8889
/**
@@ -106,7 +107,8 @@ public FilterMapWrap getFilteredServerMapData(
106107
@RequestParam("originTo") long originTo,
107108
@RequestParam(value = "filter", required = false) String filterText,
108109
@RequestParam(value = "hint", required = false) String filterHint,
109-
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit) {
110+
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit,
111+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
110112
limit = LimitUtils.checkRange(limit);
111113
final Filter filter = filterBuilder.build(filterText, filterHint);
112114
final Range range = new Range(from, to);
@@ -118,7 +120,7 @@ public FilterMapWrap getFilteredServerMapData(
118120
// needed to figure out already scanned ranged
119121
final Range scannerRange = new Range(lastScanTime, to);
120122
logger.debug("originalRange:{} scannerRange:{} ", originalRange, scannerRange);
121-
ApplicationMap map = filteredMapService.selectApplicationMap(limitedScanResult.getScanData(), originalRange, scannerRange, filter);
123+
ApplicationMap map = filteredMapService.selectApplicationMap(limitedScanResult.getScanData(), originalRange, scannerRange, filter, viewVersion);
122124

123125
if (logger.isDebugEnabled()) {
124126
logger.debug("getFilteredServerMapData range scan(limit:{}) range:{} lastFetchedTimestamp:{}", limit, range.prettyToString(), DateUtils.longToDateStr(lastScanTime));
@@ -141,9 +143,10 @@ public FilterMapWrap getFilteredServerMapDataMadeOfDotGroup(
141143
@RequestParam("yGroupUnit") int yGroupUnit,
142144
@RequestParam(value = "filter", required = false) String filterText,
143145
@RequestParam(value = "hint", required = false) String filterHint,
144-
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit) {
146+
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit,
147+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
145148
String serviceTypeName = registry.findServiceType(serviceTypeCode).getName();
146-
return getFilteredServerMapDataMadeOfDotGroup(applicationName, serviceTypeName, from, to, originTo, xGroupUnit, yGroupUnit, filterText, filterHint, limit);
149+
return getFilteredServerMapDataMadeOfDotGroup(applicationName, serviceTypeName, from, to, originTo, xGroupUnit, yGroupUnit, filterText, filterHint, limit, viewVersion);
147150
}
148151

149152

@@ -159,7 +162,8 @@ public FilterMapWrap getFilteredServerMapDataMadeOfDotGroup(
159162
@RequestParam("yGroupUnit") int yGroupUnit,
160163
@RequestParam(value = "filter", required = false) String filterText,
161164
@RequestParam(value = "hint", required = false) String filterHint,
162-
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit) {
165+
@RequestParam(value = "limit", required = false, defaultValue = "10000") int limit,
166+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
163167
if (xGroupUnit <= 0) {
164168
throw new IllegalArgumentException("xGroupUnit(" + xGroupUnit + ") must be positive number");
165169
}
@@ -178,7 +182,7 @@ public FilterMapWrap getFilteredServerMapDataMadeOfDotGroup(
178182
// needed to figure out already scanned ranged
179183
final Range scannerRange = new Range(lastScanTime, to);
180184
logger.debug("originalRange:{} scannerRange:{} ", originalRange, scannerRange);
181-
ApplicationMap map = filteredMapService.selectApplicationMapWithScatterData(limitedScanResult.getScanData(), originalRange, scannerRange, xGroupUnit, yGroupUnit, filter);
185+
ApplicationMap map = filteredMapService.selectApplicationMapWithScatterData(limitedScanResult.getScanData(), originalRange, scannerRange, xGroupUnit, yGroupUnit, filter, viewVersion);
182186

183187
if (logger.isDebugEnabled()) {
184188
logger.debug("getFilteredServerMapData range scan(limit:{}) range:{} lastFetchedTimestamp:{}", limit, range.prettyToString(), DateUtils.longToDateStr(lastScanTime));
@@ -207,9 +211,10 @@ public FilterMapWrap getLastFilteredServerMapData(
207211
@RequestParam("period") long period,
208212
@RequestParam(value = "filter", required = false) String filterText,
209213
@RequestParam(value = "hint", required = false) String filterHint,
210-
@RequestParam(value = "limit", required = false, defaultValue = "1000000") int limit) {
214+
@RequestParam(value = "limit", required = false, defaultValue = "1000000") int limit,
215+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
211216
String serviceTypeName = this.registry.findServiceType(serviceTypeCode).getName();
212-
return getLastFilteredServerMapData(applicationName, serviceTypeName, period, filterText, filterHint, limit);
217+
return getLastFilteredServerMapData(applicationName, serviceTypeName, period, filterText, filterHint, limit, viewVersion);
213218
}
214219

215220
/**
@@ -230,14 +235,15 @@ public FilterMapWrap getLastFilteredServerMapData(
230235
@RequestParam("period") long period,
231236
@RequestParam(value = "filter", required = false) String filterText,
232237
@RequestParam(value = "hint", required = false) String filterHint,
233-
@RequestParam(value = "limit", required = false, defaultValue = "1000000") int limit) {
238+
@RequestParam(value = "limit", required = false, defaultValue = "1000000") int limit,
239+
@RequestParam(value = "v", required = false, defaultValue = "0") int viewVersion) {
234240
limit = LimitUtils.checkRange(limit);
235241

236242
long to = TimeUtils.getDelayLastTime();
237243
long from = to - period;
238244
// TODO: since realtime query is enabled for now, calling parameters are fixed as "..., to, to, ..."
239245
// may need additional @RequestParam("originTo")
240-
return getFilteredServerMapData(applicationName, serviceTypeName, from, to, to, filterText, filterHint, limit);
246+
return getFilteredServerMapData(applicationName, serviceTypeName, from, to, to, filterText, filterHint, limit, viewVersion);
241247
}
242248

243249

‎web/src/main/java/com/navercorp/pinpoint/web/service/FilteredMapService.java‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ public interface FilteredMapService {
4141

4242
LoadFactor linkStatistics(Range range, List<TransactionId> traceIdSet, Application sourceApplication, Application destinationApplication, Filter filter);
4343

44-
ApplicationMap selectApplicationMap(List<TransactionId> traceIdList, Range originalRange, Range scanRange, Filter filter);
44+
ApplicationMap selectApplicationMap(List<TransactionId> traceIdList, Range originalRange, Range scanRange, Filter filter, int version);
4545

46-
ApplicationMap selectApplicationMap(TransactionId transactionId);
46+
ApplicationMap selectApplicationMap(TransactionId transactionId, int version);
4747

48-
ApplicationMap selectApplicationMapWithScatterData(List<TransactionId> traceIdList, Range originalRange, Range scanRange, int xGroupUnit, int yGroupUnit, Filter filter);
48+
ApplicationMap selectApplicationMapWithScatterData(List<TransactionId> traceIdList, Range originalRange, Range scanRange, int xGroupUnit, int yGroupUnit, Filter filter, int version);
4949

5050
}

‎web/src/main/java/com/navercorp/pinpoint/web/service/FilteredMapServiceImpl.java‎

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -208,22 +208,22 @@ private List<List<SpanBo>> filterList2(List<List<SpanBo>> transactionList, Filte
208208
}
209209

210210
@Override
211-
public ApplicationMap selectApplicationMap(TransactionId transactionId) {
211+
public ApplicationMap selectApplicationMap(TransactionId transactionId, int version) {
212212
if (transactionId == null) {
213213
throw new NullPointerException("transactionId must not be null");
214214
}
215215
List<TransactionId> transactionIdList = new ArrayList<>();
216216
transactionIdList.add(transactionId);
217217
// FIXME from,to -1
218218
Range range = new Range(-1, -1);
219-
return selectApplicationMap(transactionIdList, range, range, Filter.NONE);
219+
return selectApplicationMap(transactionIdList, range, range, Filter.NONE, version);
220220
}
221221

222222
/**
223223
* filtered application map
224224
*/
225225
@Override
226-
public ApplicationMap selectApplicationMap(List<TransactionId> transactionIdList, Range originalRange, Range scanRange, Filter filter) {
226+
public ApplicationMap selectApplicationMap(List<TransactionId> transactionIdList, Range originalRange, Range scanRange, Filter filter, int version) {
227227
if (transactionIdList == null) {
228228
throw new NullPointerException("transactionIdList must not be null");
229229
}
@@ -237,7 +237,7 @@ public ApplicationMap selectApplicationMap(List<TransactionId> transactionIdList
237237
final List<List<SpanBo>> filterList = selectFilteredSpan(transactionIdList, filter);
238238

239239
DotExtractor dotExtractor = createDotExtractor(scanRange, filterList);
240-
ApplicationMap map = createMap(originalRange, scanRange, filterList);
240+
ApplicationMap map = createMap(originalRange, scanRange, filterList, version);
241241

242242
ApplicationMapWithScatterScanResult applicationMapWithScatterScanResult = new ApplicationMapWithScatterScanResult(map, dotExtractor.getApplicationScatterScanResult());
243243

@@ -248,7 +248,7 @@ public ApplicationMap selectApplicationMap(List<TransactionId> transactionIdList
248248
}
249249

250250
@Override
251-
public ApplicationMap selectApplicationMapWithScatterData(List<TransactionId> transactionIdList, Range originalRange, Range scanRange, int xGroupUnit, int yGroupUnit, Filter filter) {
251+
public ApplicationMap selectApplicationMapWithScatterData(List<TransactionId> transactionIdList, Range originalRange, Range scanRange, int xGroupUnit, int yGroupUnit, Filter filter, int version) {
252252
if (transactionIdList == null) {
253253
throw new NullPointerException("transactionIdList must not be null");
254254
}
@@ -262,7 +262,7 @@ public ApplicationMap selectApplicationMapWithScatterData(List<TransactionId> tr
262262
final List<List<SpanBo>> filterList = selectFilteredSpan(transactionIdList, filter);
263263

264264
DotExtractor dotExtractor = createDotExtractor(scanRange, filterList);
265-
ApplicationMap map = createMap(originalRange, scanRange, filterList);
265+
ApplicationMap map = createMap(originalRange, scanRange, filterList, version);
266266

267267
ApplicationMapWithScatterData applicationMapWithScatterData = new ApplicationMapWithScatterData(map, dotExtractor.getApplicationScatterData(originalRange.getFrom(), originalRange.getTo(), xGroupUnit, yGroupUnit));
268268

@@ -300,7 +300,7 @@ private DotExtractor createDotExtractor(Range scanRange, List<List<SpanBo>> filt
300300
return dotExtractor;
301301
}
302302

303-
private ApplicationMap createMap(Range range, Range scanRange, List<List<SpanBo>> filterList) {
303+
private ApplicationMap createMap(Range range, Range scanRange, List<List<SpanBo>> filterList, int version) {
304304

305305
// TODO inject TimeWindow from elsewhere
306306
final TimeWindow window = new TimeWindow(range, TimeWindowDownSampler.SAMPLER);
@@ -316,7 +316,7 @@ private ApplicationMap createMap(Range range, Range scanRange, List<List<SpanBo>
316316
final Map<Long, SpanBo> transactionSpanMap = checkDuplicatedSpanId(transaction);
317317

318318
for (SpanBo span : transaction) {
319-
final Application parentApplication = createParentApplication(span, transactionSpanMap);
319+
final Application parentApplication = createParentApplication(span, transactionSpanMap, version);
320320
final Application spanApplication = this.applicationFactory.createApplication(span.getApplicationId(), span.getApplicationServiceType());
321321

322322
// records the Span's response time statistics
@@ -447,7 +447,7 @@ private void addNodeFromSpanEvent(SpanBo span, TimeWindow window, LinkDataDuplex
447447
}
448448
}
449449

450-
private Application createParentApplication(SpanBo span, Map<Long, SpanBo> transactionSpanMap) {
450+
private Application createParentApplication(SpanBo span, Map<Long, SpanBo> transactionSpanMap, int version) {
451451
final SpanBo parentSpan = transactionSpanMap.get(span.getParentSpanId());
452452
if (span.isRoot() || parentSpan == null) {
453453
ServiceType spanServiceType = this.registry.findServiceType(span.getServiceType());
@@ -456,7 +456,14 @@ private Application createParentApplication(SpanBo span, Map<Long, SpanBo> trans
456456
ServiceType serviceType = spanServiceType;
457457
return this.applicationFactory.createApplication(applicationName, serviceType);
458458
} else {
459-
String applicationName = span.getApplicationId();
459+
String applicationName;
460+
// FIXME magic number, remove after front end UI changes and simply use the newer one
461+
if (version >= 4) {
462+
ServiceType applicationServiceType = this.registry.findServiceType(span.getApplicationServiceType());
463+
applicationName = span.getApplicationId() + "_" + applicationServiceType;
464+
} else {
465+
applicationName = span.getApplicationId();
466+
}
460467
ServiceType serviceType = ServiceType.USER;
461468
return this.applicationFactory.createApplication(applicationName, serviceType);
462469
}

0 commit comments

Comments
 (0)