Skip to content

Commit 4dbf95d

Browse files
committed
[#noissue] Refactor LinkData
1 parent b283a7d commit 4dbf95d

28 files changed

+185
-216
lines changed

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.navercorp.pinpoint.batch.alarm.collector;
1818

19+
import com.navercorp.pinpoint.common.server.util.time.Range;
1920
import com.navercorp.pinpoint.web.alarm.DataCollectorCategory;
2021
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogram;
2122
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkCallData;
@@ -24,7 +25,6 @@
2425
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataMap;
2526
import com.navercorp.pinpoint.web.dao.MapStatisticsCallerDao;
2627
import com.navercorp.pinpoint.web.vo.Application;
27-
import com.navercorp.pinpoint.common.server.util.time.Range;
2828

2929
import java.util.HashMap;
3030
import java.util.Map;
@@ -62,7 +62,7 @@ public void collect() {
6262
LinkCallDataMap linkCallDataMap = linkData.getLinkCallDataMap();
6363

6464
for (LinkCallData linkCallData : linkCallDataMap.getLinkDataList()) {
65-
calleeStatMap.put(linkCallData.getTarget(), linkCallData);
65+
calleeStatMap.put(linkCallData.getTarget().getName(), linkCallData);
6666
}
6767
}
6868

batch/src/test/java/com/navercorp/pinpoint/batch/alarm/checker/ErrorCountToCalleCheckerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public LinkDataMap selectCaller(Application callerApplication, Range range) {
7575
timeHistogramList.add(timeHistogram);
7676
}
7777

78-
linkCallDataMap.addCallData(fromApplication.getName(), fromApplication.getServiceType(), toApplication.getName(), toApplication.getServiceType(), timeHistogramList);
78+
linkCallDataMap.addCallData(fromApplication, toApplication, timeHistogramList);
7979
LinkData linkData = new LinkData(fromApplication, toApplication);
8080
linkData.setLinkCallDataMap(linkCallDataMap);
8181
linkDataMap.addLinkData(linkData);

batch/src/test/java/com/navercorp/pinpoint/batch/alarm/checker/ErrorRateToCalleCheckerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public LinkDataMap selectCaller(Application callerApplication, Range range) {
7171
timeHistogramList.add(timeHistogram);
7272
}
7373

74-
linkCallDataMap.addCallData(fromApplication.getName(), fromApplication.getServiceType(), toApplication.getName(), toApplication.getServiceType(), timeHistogramList);
74+
linkCallDataMap.addCallData(fromApplication, toApplication, timeHistogramList);
7575
LinkData linkData = new LinkData(fromApplication, toApplication);
7676
linkData.setLinkCallDataMap(linkCallDataMap);
7777
linkDataMap.addLinkData(linkData);

batch/src/test/java/com/navercorp/pinpoint/batch/alarm/checker/SlowCountToCalleCheckerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public LinkDataMap selectCaller(Application callerApplication, Range range) {
6464
timeHistogramList.add(timeHistogram);
6565
}
6666

67-
linkCallDataMap.addCallData(fromApplication.getName(), fromApplication.getServiceType(), toApplication.getName(), toApplication.getServiceType(), timeHistogramList);
67+
linkCallDataMap.addCallData(fromApplication, toApplication, timeHistogramList);
6868
LinkData linkData = new LinkData(fromApplication, toApplication);
6969
linkData.setLinkCallDataMap(linkCallDataMap);
7070
linkDataMap.addLinkData(linkData);

batch/src/test/java/com/navercorp/pinpoint/batch/alarm/checker/SlowRateToCalleCheckerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public LinkDataMap selectCaller(Application callerApplication, Range range) {
6464
timeHistogramList.add(timeHistogram);
6565
}
6666

67-
linkCallDataMap.addCallData(fromApplication.getName(), fromApplication.getServiceType(), toApplication.getName(), toApplication.getServiceType(), timeHistogramList);
67+
linkCallDataMap.addCallData(fromApplication, toApplication, timeHistogramList);
6868
LinkData linkData = new LinkData(fromApplication, toApplication);
6969
linkData.setLinkCallDataMap(linkCallDataMap);
7070
linkDataMap.addLinkData(linkData);

batch/src/test/java/com/navercorp/pinpoint/batch/alarm/checker/TotalCountToCalleeCheckerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public LinkDataMap selectCaller(Application callerApplication, Range range) {
6464
timeHistogramList.add(timeHistogram);
6565
}
6666

67-
linkCallDataMap.addCallData(fromApplication.getName(), fromApplication.getServiceType(), toApplication.getName(), toApplication.getServiceType(), timeHistogramList);
67+
linkCallDataMap.addCallData(fromApplication, toApplication, timeHistogramList);
6868
LinkData linkData = new LinkData(fromApplication, toApplication);
6969
linkData.setLinkCallDataMap(linkCallDataMap);
7070
linkDataMap.addLinkData(linkData);

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/link/Link.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.navercorp.pinpoint.web.view.LinkSerializer;
3535
import com.navercorp.pinpoint.web.view.TimeViewModel;
3636
import com.navercorp.pinpoint.web.vo.Application;
37-
import com.navercorp.pinpoint.web.vo.LinkKey;
3837

3938
import java.util.Collection;
4039
import java.util.HashSet;
@@ -118,7 +117,7 @@ public Range getRange() {
118117
}
119118

120119
public LinkName getLinkName() {
121-
return LinkName.of(fromNode.getNodeName(), toNode.getNodeName());
120+
return LinkName.of(fromNode.getApplication(), toNode.getApplication());
122121
}
123122

124123
public TimeHistogramFormat getTimeHistogramFormat() {
@@ -226,21 +225,19 @@ public AgentResponseTimeViewModelList getSourceAgentTimeSeriesHistogram() {
226225
// we need Target (to)'s time since time in link is RPC-based
227226
AgentTimeHistogramBuilder builder = new AgentTimeHistogramBuilder(toNode.getApplication(), range);
228227
AgentTimeHistogram applicationTimeSeriesHistogram = builder.buildSource(sourceLinkCallDataMap);
229-
AgentResponseTimeViewModelList agentResponseTimeViewModelList = new AgentResponseTimeViewModelList(applicationTimeSeriesHistogram.createViewModel(timeHistogramFormat));
230-
return agentResponseTimeViewModelList;
228+
return new AgentResponseTimeViewModelList(applicationTimeSeriesHistogram.createViewModel(timeHistogramFormat));
231229
}
232230

233231
public AgentTimeHistogram getTargetAgentTimeHistogram() {
234232
AgentTimeHistogramBuilder builder = new AgentTimeHistogramBuilder(toNode.getApplication(), range);
235-
AgentTimeHistogram agentTimeHistogram = builder.buildSource(targetLinkCallDataMap);
236-
return agentTimeHistogram;
233+
return builder.buildSource(targetLinkCallDataMap);
237234
}
238235

239236
public Collection<Application> getSourceLinkTargetAgentList() {
240237
Set<Application> agentList = new HashSet<>();
241238
Collection<LinkCallData> linkDataList = sourceLinkCallDataMap.getLinkDataList();
242239
for (LinkCallData linkCallData : linkDataList) {
243-
agentList.add(new Application(linkCallData.getTarget(), linkCallData.getTargetServiceType()));
240+
agentList.add(linkCallData.getTarget());
244241
}
245242
return agentList;
246243
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*
2+
* Copyright 2014 NAVER Corp.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.navercorp.pinpoint.web.applicationmap.link;
18+
19+
import com.navercorp.pinpoint.common.trace.ServiceType;
20+
import com.navercorp.pinpoint.web.vo.Application;
21+
22+
import java.util.Objects;
23+
24+
/**
25+
* @author emeroad
26+
*/
27+
public final class LinkKey {
28+
private final Application from;
29+
private final Application to;
30+
31+
private int hash;
32+
33+
public LinkKey(Application from, Application to) {
34+
this.from = Objects.requireNonNull(from, "from");
35+
this.to = Objects.requireNonNull(to, "to");
36+
}
37+
38+
public static LinkKey of(String fromApplication, ServiceType fromServiceType, String toApplication, ServiceType toServiceType) {
39+
Application from = new Application(fromApplication, fromServiceType);
40+
Application to = new Application(toApplication, toServiceType);
41+
return new LinkKey(from, to);
42+
}
43+
44+
45+
public Application getFrom() {
46+
return from;
47+
}
48+
49+
public Application getTo() {
50+
return to;
51+
}
52+
53+
54+
@Override
55+
public boolean equals(Object o) {
56+
if (this == o) return true;
57+
if (o == null || getClass() != o.getClass()) return false;
58+
59+
LinkKey linkKey = (LinkKey) o;
60+
61+
if (!from.equals(linkKey.from)) return false;
62+
return to.equals(linkKey.to);
63+
}
64+
65+
@Override
66+
public int hashCode() {
67+
final int hash = this.hash;
68+
if (hash != 0) {
69+
return hash;
70+
}
71+
int result = from.hashCode();
72+
result = 31 * result + to.hashCode();
73+
this.hash = result;
74+
return result;
75+
}
76+
77+
@Override
78+
public String toString() {
79+
return "LinkKey{"
80+
+ from + " -> " + to +
81+
'}';
82+
}
83+
}

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/link/LinkList.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@
1818

1919
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
2020
import com.navercorp.pinpoint.web.vo.Application;
21-
import com.navercorp.pinpoint.web.vo.LinkKey;
2221

23-
import java.util.*;
22+
import java.util.ArrayList;
23+
import java.util.Collection;
24+
import java.util.HashMap;
25+
import java.util.List;
26+
import java.util.Map;
27+
import java.util.Objects;
2428

2529
/**
2630
* @author emeroad
@@ -53,7 +57,7 @@ public List<Link> findToLink(Application toApplication) {
5357
for (Link link : linkMap.values()) {
5458
Node toNode = link.getTo();
5559
// find all the callers of toApplication/destination
56-
if (toNode.getApplication().equals(toApplication) && toNode.getServiceType().equals(toApplication.getServiceType())) {
60+
if (toNode.getApplication().equals(toApplication)) {
5761
findList.add(link);
5862
}
5963
}
@@ -72,7 +76,7 @@ public List<Link> findFromLink(Application fromApplication) {
7276
for (Link link : linkMap.values()) {
7377
Node fromNode = link.getFrom();
7478

75-
if (fromNode.getApplication().equals(fromApplication) && fromNode.getServiceType().equals(fromApplication.getServiceType())) {
79+
if (fromNode.getApplication().equals(fromApplication)) {
7680
findList.add(link);
7781
}
7882
}

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/link/LinkListFactory.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@
1616

1717
package com.navercorp.pinpoint.web.applicationmap.link;
1818

19+
import com.navercorp.pinpoint.common.server.util.time.Range;
1920
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
2021
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeList;
2122
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkData;
2223
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap;
2324
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataMap;
2425
import com.navercorp.pinpoint.web.vo.Application;
25-
import com.navercorp.pinpoint.web.vo.LinkKey;
26-
import com.navercorp.pinpoint.common.server.util.time.Range;
27-
import org.apache.logging.log4j.Logger;
2826
import org.apache.logging.log4j.LogManager;
27+
import org.apache.logging.log4j.Logger;
2928

3029
/**
3130
* @author HyunGil Jeong

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/link/LinkName.java

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,35 @@
22

33
import com.fasterxml.jackson.annotation.JsonValue;
44
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeName;
5+
import com.navercorp.pinpoint.web.vo.Application;
56

67
import java.util.Objects;
78

89
/**
910
* @author Woonduk Kang(emeroad)
1011
*/
1112
public class LinkName {
12-
private static final String LINK_DELIMITER = "~";
13+
public static final String LINK_DELIMITER = "~";
1314

14-
private final NodeName from;
15-
private final NodeName to;
15+
private final Application from;
16+
private final Application to;
1617

17-
public static LinkName of(NodeName from, NodeName to) {
18-
Objects.requireNonNull(from, "from");
19-
Objects.requireNonNull(to, "to");
18+
public static LinkName of(Application from, Application to) {
2019
return new LinkName(from, to);
2120
}
2221

23-
public LinkName(NodeName from, NodeName to) {
22+
public LinkName(Application from, Application to) {
2423
this.from = Objects.requireNonNull(from, "from");
2524
this.to = Objects.requireNonNull(to, "to");
2625
}
2726

2827
@JsonValue
2928
public String getName() {
30-
return from + LINK_DELIMITER + to;
29+
return toNodeName(from) + LINK_DELIMITER + toNodeName(to);
30+
}
31+
32+
private String toNodeName(Application node) {
33+
return NodeName.toNodeName(node.getName(), node.getServiceType());
3134
}
3235

3336

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/nodes/NodeName.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* @author Woonduk Kang(emeroad)
1111
*/
1212
public class NodeName {
13-
private static final String NODE_DELIMITER = "^";
13+
public static final String NODE_DELIMITER = "^";
1414

1515
private final String name;
1616
private final ServiceType serviceType;
@@ -27,6 +27,10 @@ public NodeName(String name, ServiceType serviceType) {
2727

2828
@JsonValue
2929
public String getName() {
30+
return toNodeName(name, serviceType);
31+
}
32+
33+
public static String toNodeName(String name, ServiceType serviceType) {
3034
return name + NODE_DELIMITER + serviceType.getDesc();
3135
}
3236

web/src/main/java/com/navercorp/pinpoint/web/applicationmap/rawdata/AgentHistogramList.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@
2121
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogram;
2222
import com.navercorp.pinpoint.web.vo.Application;
2323
import com.navercorp.pinpoint.web.vo.ResponseTime;
24-
25-
import org.apache.logging.log4j.Logger;
2624
import org.apache.logging.log4j.LogManager;
25+
import org.apache.logging.log4j.Logger;
2726

28-
import java.util.*;
27+
import java.util.Collection;
28+
import java.util.HashMap;
29+
import java.util.List;
30+
import java.util.Map;
31+
import java.util.Objects;
2932

3033
/**
3134
* @author emeroad
@@ -83,8 +86,7 @@ public void addAgentHistogram(String agentName, ServiceType serviceType, TimeHis
8386
private AgentHistogram getAgentHistogram(Application agentId) {
8487
Objects.requireNonNull(agentId, "agentId");
8588

86-
AgentHistogram agentHistogram = agentHistogramMap.computeIfAbsent(agentId, k -> new AgentHistogram(agentId));
87-
return agentHistogram;
89+
return agentHistogramMap.computeIfAbsent(agentId, k -> new AgentHistogram(agentId));
8890
}
8991

9092
public Histogram mergeHistogram(ServiceType serviceType) {

0 commit comments

Comments
 (0)