Skip to content

Commit 44e8ec5

Browse files
committed
[#noissue] Refactor ApplicationResponse
1 parent 93856d1 commit 44e8ec5

File tree

10 files changed

+83
-83
lines changed

10 files changed

+83
-83
lines changed

batch/src/main/java/com/navercorp/pinpoint/batch/alarm/collector/ResponseTimeDataCollector.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,12 @@
1919
import com.navercorp.pinpoint.common.timeseries.time.Range;
2020
import com.navercorp.pinpoint.common.timeseries.window.TimeWindow;
2121
import com.navercorp.pinpoint.web.alarm.DataCollectorCategory;
22+
import com.navercorp.pinpoint.web.applicationmap.dao.ApplicationResponse;
2223
import com.navercorp.pinpoint.web.applicationmap.dao.MapResponseDao;
2324
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogram;
2425
import com.navercorp.pinpoint.web.vo.Application;
25-
import com.navercorp.pinpoint.web.vo.ResponseTime;
2626

2727
import java.util.Collection;
28-
import java.util.List;
2928
import java.util.Objects;
3029
import java.util.concurrent.atomic.AtomicBoolean;
3130

@@ -67,11 +66,10 @@ public void collect() {
6766

6867
Range range = Range.between(timeSlotEndTime - slotInterval, timeSlotEndTime);
6968
TimeWindow timeWindow = new TimeWindow(range);
70-
List<ResponseTime> responseTimes = responseDao.selectResponseTime(application, timeWindow);
7169

72-
for (ResponseTime responseTime : responseTimes) {
73-
sum(responseTime.getAgentResponseHistogramList());
74-
}
70+
ApplicationResponse applicationResponse = responseDao.selectApplicationResponse(application, timeWindow);
71+
sum(applicationResponse.getApplicationHistograms());
72+
7573

7674
setSlowRate();
7775
setErrorRate();

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/appender/histogram/datasource/MapApplicationResponseNodeHistogramDataSource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
import com.navercorp.pinpoint.common.timeseries.time.Range;
2020
import com.navercorp.pinpoint.common.timeseries.window.TimeWindow;
21+
import com.navercorp.pinpoint.web.applicationmap.dao.ApplicationResponse;
2122
import com.navercorp.pinpoint.web.applicationmap.dao.MapResponseDao;
22-
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationHistogram;
2323
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationTimeHistogram;
2424
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationTimeHistogramBuilder;
2525
import com.navercorp.pinpoint.web.applicationmap.histogram.Histogram;
@@ -45,9 +45,9 @@ public MapApplicationResponseNodeHistogramDataSource(MapResponseDao mapResponseD
4545

4646
@Override
4747
public NodeHistogram createNodeHistogram(Application application, TimeWindow timeWindow) {
48-
ApplicationHistogram applicationHistogram = mapResponseDao.selectApplicationResponseTime(application, timeWindow);
48+
ApplicationResponse applicationResponse = mapResponseDao.selectApplicationResponse(application, timeWindow);
4949

50-
ApplicationTimeHistogram applicationTimeHistogram = buildApplicationTimeHistogram(application, timeWindow, applicationHistogram);
50+
ApplicationTimeHistogram applicationTimeHistogram = buildApplicationTimeHistogram(application, timeWindow, applicationResponse);
5151

5252
Range windowRange = timeWindow.getWindowRange();
5353
NodeHistogram.Builder builder = NodeHistogram.newBuilder(application, windowRange);
@@ -56,13 +56,13 @@ public NodeHistogram createNodeHistogram(Application application, TimeWindow tim
5656
Histogram appHistogram = getHistogram(application, applicationTimeHistogram);
5757
builder.setApplicationHistogram(appHistogram);
5858

59-
Map<String, Histogram> agentMap = getAgentIdMap(application, applicationHistogram.getAgentIds());
59+
Map<String, Histogram> agentMap = getAgentIdMap(application, applicationResponse.getAgentIds());
6060
builder.setAgentHistogramMap(agentMap);
6161
return builder.build();
6262
}
6363

64-
private ApplicationTimeHistogram buildApplicationTimeHistogram(Application application, TimeWindow timeWindow, ApplicationHistogram applicationHistogram) {
65-
List<TimeHistogram> histogram = applicationHistogram.getApplicationHistograms();
64+
private ApplicationTimeHistogram buildApplicationTimeHistogram(Application application, TimeWindow timeWindow, ApplicationResponse applicationResponse) {
65+
List<TimeHistogram> histogram = applicationResponse.getApplicationHistograms();
6666

6767
ApplicationTimeHistogramBuilder builder = new ApplicationTimeHistogramBuilder(application, timeWindow);
6868
return builder.buildFromTimeHistogram(histogram);

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/config/MapHbaseConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.navercorp.pinpoint.common.hbase.util.ScanMetricReporter;
3232
import com.navercorp.pinpoint.common.server.executor.ExecutorCustomizer;
3333
import com.navercorp.pinpoint.common.server.executor.ExecutorProperties;
34+
import com.navercorp.pinpoint.web.applicationmap.dao.ApplicationResponse;
3435
import com.navercorp.pinpoint.web.applicationmap.dao.MapInLinkDao;
3536
import com.navercorp.pinpoint.web.applicationmap.dao.MapOutLinkDao;
3637
import com.navercorp.pinpoint.web.applicationmap.dao.MapResponseDao;
@@ -40,7 +41,6 @@
4041
import com.navercorp.pinpoint.web.applicationmap.dao.hbase.MapScanFactory;
4142
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.ResultExtractorFactory;
4243
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.RowMapperFactory;
43-
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationHistogram;
4444
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataMap;
4545
import com.navercorp.pinpoint.web.vo.RangeFactory;
4646
import com.navercorp.pinpoint.web.vo.ResponseTime;
@@ -138,7 +138,7 @@ public MapResponseDao mapResponseDao(@Qualifier("mapHbaseTemplate")
138138
@Qualifier("responseTimeResultExtractor")
139139
ResultExtractorFactory<List<ResponseTime>> resultExtractFactory,
140140
@Qualifier("applicationResponseTimeResultExtractor")
141-
ResultExtractorFactory<ApplicationHistogram> applicationHistogramResultExtractor,
141+
ResultExtractorFactory<ApplicationResponse> applicationHistogramResultExtractor,
142142
MapScanFactory mapScanFactory,
143143
@Qualifier("mapSelfRowKeyDistributor")
144144
RowKeyDistributorByHashPrefix rowKeyDistributor) {

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/config/MapMapperConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
import com.navercorp.pinpoint.loader.service.ServiceTypeRegistryService;
5+
import com.navercorp.pinpoint.web.applicationmap.dao.ApplicationResponse;
56
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.ApplicationResponseTimeResultExtractor;
67
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.InLinkMapper;
78
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.LinkFilter;
@@ -10,7 +11,6 @@
1011
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.ResponseTimeResultExtractor;
1112
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.ResultExtractorFactory;
1213
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.RowMapperFactory;
13-
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationHistogram;
1414
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataMap;
1515
import com.navercorp.pinpoint.web.component.ApplicationFactory;
1616
import com.navercorp.pinpoint.web.vo.ResponseTime;
@@ -54,8 +54,8 @@ public ResultExtractorFactory<List<ResponseTime>> responseTimeResultExtractor(Se
5454
}
5555

5656
@Bean
57-
public ResultExtractorFactory<ApplicationHistogram> applicationResponseTimeResultExtractor(ServiceTypeRegistryService registry,
58-
@Qualifier("mapSelfRowKeyDistributor")
57+
public ResultExtractorFactory<ApplicationResponse> applicationResponseTimeResultExtractor(ServiceTypeRegistryService registry,
58+
@Qualifier("mapSelfRowKeyDistributor")
5959
RowKeyDistributorByHashPrefix rowKeyDistributor) {
6060
return (windowFunction) -> new ApplicationResponseTimeResultExtractor(registry, rowKeyDistributor, windowFunction);
6161
}

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/histogram/ApplicationHistogram.java renamed to web/src/main/java/com/navercorp/pinpoint/web/applicationmap/dao/ApplicationResponse.java

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.navercorp.pinpoint.web.applicationmap.histogram;
17+
package com.navercorp.pinpoint.web.applicationmap.dao;
1818

1919
import com.navercorp.pinpoint.common.trace.ServiceType;
20+
import com.navercorp.pinpoint.web.applicationmap.histogram.Histogram;
21+
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogram;
22+
import com.navercorp.pinpoint.web.vo.Application;
2023

2124
import java.util.ArrayList;
2225
import java.util.Comparator;
@@ -30,32 +33,24 @@
3033
/**
3134
* @author emeroad
3235
*/
33-
public class ApplicationHistogram {
36+
public class ApplicationResponse {
3437
// rowKey
35-
private final String applicationName;
36-
private final ServiceType applicationServiceType;
38+
private final Application application;
3739
// agentId is the key
3840
private final List<TimeHistogram> histograms;
3941
private final Set<String> agentIdMap;
4042

4143

42-
ApplicationHistogram(String applicationName,
43-
ServiceType applicationServiceType,
44-
List<TimeHistogram> histograms,
45-
Set<String> agentIdMap) {
46-
this.applicationName = Objects.requireNonNull(applicationName, "applicationName");
47-
this.applicationServiceType = Objects.requireNonNull(applicationServiceType, "applicationServiceType");
44+
ApplicationResponse(Application application,
45+
List<TimeHistogram> histograms,
46+
Set<String> agentIdMap) {
47+
this.application = Objects.requireNonNull(application, "application");
4848
this.histograms = Objects.requireNonNull(histograms, "histograms");
4949
this.agentIdMap = Objects.requireNonNull(agentIdMap, "agentIdMap");
5050
}
5151

52-
53-
public String getApplicationName() {
54-
return applicationName;
55-
}
56-
57-
public int getApplicationServiceType() {
58-
return applicationServiceType.getCode();
52+
public Application getApplication() {
53+
return application;
5954
}
6055

6156
public Set<String> getAgentIds() {
@@ -67,18 +62,23 @@ public List<TimeHistogram> getApplicationHistograms() {
6762
return histograms;
6863
}
6964

65+
public Histogram getApplicationHistogram() {
66+
Histogram histogram = new Histogram(application.getServiceType());
67+
histogram.addAll(histograms);
68+
return histogram;
69+
}
70+
7071
@Override
7172
public String toString() {
7273
return "ApplicationHistogram{" +
73-
"applicationName='" + applicationName + '\'' +
74-
", applicationServiceType=" + applicationServiceType +
74+
"application='" + application + '\'' +
7575
", histograms=" + histograms +
7676
", agentIdMap=" + agentIdMap +
7777
'}';
7878
}
7979

80-
public static Builder newBuilder(String applicationName, ServiceType applicationServiceType) {
81-
return new Builder(applicationName, applicationServiceType);
80+
public static Builder newBuilder(Application application) {
81+
return new Builder(application);
8282
}
8383

8484
public static class Builder {
@@ -87,22 +87,24 @@ public static class Builder {
8787
// agentId is the key
8888
private final Set<String> agentIdMap;
8989

90-
private final String applicationName;
91-
private final ServiceType applicationServiceType;
90+
private final Application application;
9291

93-
Builder(String applicationName, ServiceType applicationServiceType) {
94-
this.applicationName = Objects.requireNonNull(applicationName, "applicationName");
95-
this.applicationServiceType = Objects.requireNonNull(applicationServiceType, "applicationServiceType");
92+
Builder(Application application) {
93+
this.application = Objects.requireNonNull(application, "application");
9694
this.histogramMap = new HashMap<>();
9795
this.agentIdMap = new HashSet<>();
9896
}
9997

98+
public Application getApplication() {
99+
return application;
100+
}
101+
100102
public String getApplicationName() {
101-
return applicationName;
103+
return application.getName();
102104
}
103105

104106
public ServiceType getApplicationServiceType() {
105-
return applicationServiceType;
107+
return application.getServiceType();
106108
}
107109

108110
public void addResponseTime(String agentId, long timeStamp, short slotNumber, long count) {
@@ -112,7 +114,7 @@ public void addResponseTime(String agentId, long timeStamp, short slotNumber, lo
112114
}
113115

114116
private TimeHistogram getTimeHistogram(long timeStamp) {
115-
return this.histogramMap.computeIfAbsent(timeStamp, k -> new TimeHistogram(applicationServiceType, timeStamp));
117+
return this.histogramMap.computeIfAbsent(timeStamp, k -> new TimeHistogram(application.getServiceType(), timeStamp));
116118
}
117119

118120

@@ -134,10 +136,10 @@ public void addResponseTime(String agentId, long timestamp, int elapsedTime, boo
134136
histogram.addCallCountByElapsedTime(elapsedTime, error);
135137
}
136138

137-
public ApplicationHistogram build() {
139+
public ApplicationResponse build() {
138140
List<TimeHistogram> list = new ArrayList<>(this.histogramMap.values());
139141
list.sort(Comparator.comparing(TimeHistogram::getTimeStamp));
140-
return new ApplicationHistogram(applicationName, applicationServiceType, list, this.agentIdMap);
142+
return new ApplicationResponse(application, list, this.agentIdMap);
141143
}
142144
}
143145
}

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/dao/MapResponseDao.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.navercorp.pinpoint.web.applicationmap.dao;
1818

1919
import com.navercorp.pinpoint.common.timeseries.window.TimeWindow;
20-
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationHistogram;
2120
import com.navercorp.pinpoint.web.vo.Application;
2221
import com.navercorp.pinpoint.web.vo.ResponseTime;
2322

@@ -32,7 +31,7 @@
3231
public interface MapResponseDao {
3332
List<ResponseTime> selectResponseTime(Application application, TimeWindow timeWindow);
3433

35-
default ApplicationHistogram selectApplicationResponseTime(Application application, TimeWindow timeWindow) {
34+
default ApplicationResponse selectApplicationResponse(Application application, TimeWindow timeWindow) {
3635
return null;
3736
}
3837
}

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/dao/hbase/HbaseMapResponseTimeDao.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
import com.navercorp.pinpoint.common.hbase.TableNameProvider;
2424
import com.navercorp.pinpoint.common.timeseries.time.Range;
2525
import com.navercorp.pinpoint.common.timeseries.window.TimeWindow;
26+
import com.navercorp.pinpoint.web.applicationmap.dao.ApplicationResponse;
2627
import com.navercorp.pinpoint.web.applicationmap.dao.MapResponseDao;
2728
import com.navercorp.pinpoint.web.applicationmap.dao.mapper.ResultExtractorFactory;
28-
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationHistogram;
2929
import com.navercorp.pinpoint.web.vo.Application;
3030
import com.navercorp.pinpoint.web.vo.ResponseTime;
3131
import com.sematext.hbase.wd.RowKeyDistributorByHashPrefix;
@@ -59,12 +59,12 @@ public class HbaseMapResponseTimeDao implements MapResponseDao {
5959
private final MapScanFactory scanFactory;
6060

6161
private final RowKeyDistributorByHashPrefix rowKeyDistributor;
62-
private final ResultExtractorFactory<ApplicationHistogram> applicationHistogramResultExtractor;
62+
private final ResultExtractorFactory<ApplicationResponse> applicationHistogramResultExtractor;
6363

6464
public HbaseMapResponseTimeDao(HbaseOperations hbaseOperations,
6565
TableNameProvider tableNameProvider,
6666
ResultExtractorFactory<List<ResponseTime>> resultExtractMapperFactory,
67-
ResultExtractorFactory<ApplicationHistogram> applicationHistogramResultExtractor,
67+
ResultExtractorFactory<ApplicationResponse> applicationHistogramResultExtractor,
6868
MapScanFactory scanFactory,
6969
RowKeyDistributorByHashPrefix rowKeyDistributor) {
7070
this.hbaseOperations = Objects.requireNonNull(hbaseOperations, "hbaseOperations");
@@ -101,7 +101,7 @@ public List<ResponseTime> selectResponseTime(Application application, TimeWindow
101101
}
102102

103103
@Override
104-
public ApplicationHistogram selectApplicationResponseTime(Application application, TimeWindow timeWindow) {
104+
public ApplicationResponse selectApplicationResponse(Application application, TimeWindow timeWindow) {
105105
Objects.requireNonNull(application, "application");
106106

107107
if (logger.isDebugEnabled()) {
@@ -111,13 +111,13 @@ public ApplicationHistogram selectApplicationResponseTime(Application applicatio
111111
Range windowRange = timeWindow.getWindowRange();
112112
Scan scan = scanFactory.createScan("MapSelfScan", application, windowRange, DESCRIPTOR.getName());
113113

114-
ResultsExtractor<ApplicationHistogram> mapper = applicationHistogramResultExtractor.newMapper(timeWindow);
114+
ResultsExtractor<ApplicationResponse> mapper = applicationHistogramResultExtractor.newMapper(timeWindow);
115115
TableName mapStatisticsSelfTableName = tableNameProvider.getTableName(DESCRIPTOR.getTable());
116116

117-
ApplicationHistogram histogram = hbaseOperations.findParallel(mapStatisticsSelfTableName, scan, rowKeyDistributor,
117+
ApplicationResponse histogram = hbaseOperations.findParallel(mapStatisticsSelfTableName, scan, rowKeyDistributor,
118118
mapper, MAP_STATISTICS_SELF_VER2_NUM_PARTITIONS);
119119
if (histogram == null) {
120-
return ApplicationHistogram.newBuilder(application.getName(), application.getServiceType()).build();
120+
return ApplicationResponse.newBuilder(application).build();
121121
}
122122
return histogram;
123123
}

0 commit comments

Comments
 (0)