Skip to content

Commit fc60341

Browse files
committed
[pinpoint-apm#9932] Remove thrift dependency of Tools module
1 parent 1e5504f commit fc60341

File tree

12 files changed

+182
-370
lines changed

12 files changed

+182
-370
lines changed

tools/pom.xml

+2-47
Original file line numberDiff line numberDiff line change
@@ -14,56 +14,11 @@
1414
<packaging>jar</packaging>
1515

1616
<dependencies>
17-
<dependency>
18-
<groupId>com.navercorp.pinpoint</groupId>
19-
<artifactId>pinpoint-bootstrap-core</artifactId>
20-
<version>${project.version}</version>
21-
</dependency>
22-
<dependency>
23-
<groupId>com.navercorp.pinpoint</groupId>
24-
<artifactId>pinpoint-thrift</artifactId>
25-
<version>${project.version}</version>
26-
</dependency>
27-
<dependency>
28-
<groupId>org.apache.thrift</groupId>
29-
<artifactId>libthrift</artifactId>
30-
</dependency>
31-
<!-- Logging dependencies -->
32-
<dependency>
33-
<groupId>org.slf4j</groupId>
34-
<artifactId>slf4j-api</artifactId>
35-
</dependency>
36-
<dependency>
37-
<groupId>org.apache.logging.log4j</groupId>
38-
<artifactId>log4j-slf4j-impl</artifactId>
39-
</dependency>
40-
<dependency>
41-
<groupId>org.apache.logging.log4j</groupId>
42-
<artifactId>log4j-core</artifactId>
43-
</dependency>
17+
4418
</dependencies>
4519

4620
<build>
47-
<plugins>
48-
<!-- any other plugins -->
49-
<plugin>
50-
<artifactId>maven-assembly-plugin</artifactId>
51-
<executions>
52-
<execution>
53-
<phase>package</phase>
54-
<goals>
55-
<goal>single</goal>
56-
</goals>
57-
</execution>
58-
</executions>
59-
<configuration>
60-
<descriptorRefs>
61-
<descriptorRef>jar-with-dependencies</descriptorRef>
62-
</descriptorRefs>
63-
<appendAssemblyId>false</appendAssemblyId>
64-
</configuration>
65-
</plugin>
66-
</plugins>
21+
6722
</build>
6823

6924
</project>

tools/src/main/java/com/navercorp/pinpoint/tools/NetworkAvailabilityChecker.java

+45-108
Original file line numberDiff line numberDiff line change
@@ -16,125 +16,96 @@
1616

1717
package com.navercorp.pinpoint.tools;
1818

19-
import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig;
20-
import com.navercorp.pinpoint.bootstrap.config.ProfilerConfigLoader;
21-
import com.navercorp.pinpoint.bootstrap.config.Profiles;
22-
import com.navercorp.pinpoint.common.util.PropertyUtils;
23-
import com.navercorp.pinpoint.thrift.io.HeaderTBaseSerializer;
24-
import com.navercorp.pinpoint.thrift.io.HeaderTBaseSerializerFactory;
25-
import com.navercorp.pinpoint.thrift.io.NetworkAvailabilityCheckPacket;
2619
import com.navercorp.pinpoint.tools.network.NetworkChecker;
2720
import com.navercorp.pinpoint.tools.network.TCPChecker;
28-
import com.navercorp.pinpoint.tools.network.UDPChecker;
2921
import com.navercorp.pinpoint.tools.network.grpc.GrpcTransportConfig;
30-
import com.navercorp.pinpoint.tools.network.thrift.ThriftTransportConfig;
31-
import org.apache.thrift.TException;
22+
import com.navercorp.pinpoint.tools.utils.Logger;
3223

33-
import java.io.File;
3424
import java.io.IOException;
25+
import java.io.InputStream;
26+
import java.nio.file.Files;
27+
import java.nio.file.Path;
3528
import java.nio.file.Paths;
36-
import java.util.Arrays;
3729
import java.util.Properties;
3830

3931
/**
4032
* @author netspider
4133
*/
4234
public class NetworkAvailabilityChecker {
4335

44-
private static final String SEPARATOR = File.separator;
36+
public static final String ACTIVE_PROFILE_KEY = "pinpoint.profiler.profiles.active";
37+
public static final String CONFIG_FILE_NAME = "pinpoint-root.config";
38+
public static final String PROFILE_CONFIG_FILE_NAME = "pinpoint.config";
39+
40+
private static final Logger logger = new Logger();
4541

4642
public static void main(String[] args) {
4743
if (args.length != 1) {
48-
System.out.println("usage : " + NetworkAvailabilityChecker.class.getSimpleName() + " AGENT_CONFIG_FILE");
44+
logger.info("usage : " + NetworkAvailabilityChecker.class.getSimpleName() + " AGENT_CONFIG_FILE");
4945
return;
5046
}
5147

5248
String configPath = args[0];
49+
Path filePath = Paths.get(configPath);
5350

5451
final Properties defaultProperties = new Properties();
55-
loadFileProperties(defaultProperties, configPath);
52+
loadFileProperties(defaultProperties, filePath);
5653

57-
File file = new File(configPath);
58-
String path = file.getAbsoluteFile().getParent();
54+
Path path = filePath.toAbsolutePath().getParent();
5955

60-
if (configPath.contains(Profiles.CONFIG_FILE_NAME)) {
56+
if (configPath.contains(CONFIG_FILE_NAME)) {
6157
// 2. load profile
6258
final String activeProfile = getActiveProfile(defaultProperties);
63-
System.out.println("Active profile : " + activeProfile);
59+
logger.info("Active profile : " + activeProfile);
6460

6561
if (activeProfile == null) {
66-
System.out.println("Could not find activeProfile : null");
62+
logger.info("Could not find activeProfile : null");
6763
return;
6864
}
6965

70-
final File activeProfileConfigFile = new File(path, "profiles" + SEPARATOR + activeProfile + SEPARATOR + Profiles.PROFILE_CONFIG_FILE_NAME);
71-
loadFileProperties(defaultProperties, activeProfileConfigFile.getAbsolutePath());
72-
}
73-
74-
final ProfilerConfig profilerConfig = ProfilerConfigLoader.load(defaultProperties);
75-
if (profilerConfig.getTransportModule().toString().equals("GRPC")) {
76-
77-
System.out.println("Transport Module set to GRPC");
78-
79-
GrpcTransportConfig grpcTransportConfig = new GrpcTransportConfig();
80-
grpcTransportConfig.read(defaultProperties);
66+
final Path activeProfileConfigFile = Paths.get(path.toString(), "profiles", activeProfile, PROFILE_CONFIG_FILE_NAME);
8167

82-
try {
83-
checkGRPCBase(grpcTransportConfig);
84-
} catch (Exception e) {
85-
e.printStackTrace();
86-
}
68+
loadFileProperties(defaultProperties, activeProfileConfigFile.toAbsolutePath());
69+
}
8770

88-
try {
89-
checkGRPCMeta(grpcTransportConfig);
90-
} catch (Exception e) {
91-
e.printStackTrace();
92-
}
71+
logger.info("Transport Module set to GRPC");
9372

94-
try {
95-
checkGRPCStat(grpcTransportConfig);
96-
} catch (Exception e) {
97-
e.printStackTrace();
98-
}
73+
GrpcTransportConfig grpcTransportConfig = new GrpcTransportConfig(defaultProperties);
9974

100-
try {
101-
checkGRPCSpan(grpcTransportConfig);
102-
} catch (Exception e) {
103-
e.printStackTrace();
104-
}
105-
106-
} else {
75+
try {
76+
checkGRPCBase(grpcTransportConfig);
77+
} catch (Exception e) {
78+
e.printStackTrace();
79+
}
10780

108-
System.out.println("Transport Module set to THRIFT");
109-
ThriftTransportConfig thriftTransportConfig = new ThriftTransportConfig();
110-
thriftTransportConfig.read(defaultProperties);
111-
try {
112-
checkUDPStat(thriftTransportConfig);
113-
} catch (Exception e) {
114-
e.printStackTrace();
115-
}
81+
try {
82+
checkGRPCMeta(grpcTransportConfig);
83+
} catch (Exception e) {
84+
e.printStackTrace();
85+
}
11686

117-
try {
118-
checkUDPSpan(thriftTransportConfig);
119-
} catch (Exception e) {
120-
e.printStackTrace();
121-
}
87+
try {
88+
checkGRPCStat(grpcTransportConfig);
89+
} catch (Exception e) {
90+
e.printStackTrace();
91+
}
12292

123-
try {
124-
checkTCP(thriftTransportConfig);
125-
} catch (Exception e) {
126-
e.printStackTrace();
127-
}
93+
try {
94+
checkGRPCSpan(grpcTransportConfig);
95+
} catch (Exception e) {
96+
e.printStackTrace();
12897
}
98+
12999
}
130100

131101
private static String getActiveProfile(Properties defaultProperties) {
132-
return defaultProperties.getProperty(Profiles.ACTIVE_PROFILE_KEY, "release");
102+
return defaultProperties.getProperty(ACTIVE_PROFILE_KEY, "release");
133103
}
134104

135-
private static void loadFileProperties(Properties properties, String filePath) {
105+
private static void loadFileProperties(Properties properties, Path filePath) {
136106
try {
137-
PropertyUtils.loadProperty(properties, Paths.get(filePath));
107+
InputStream inputStream = Files.newInputStream(filePath);
108+
properties.load(inputStream);
138109
} catch (IOException e) {
139110
throw new IllegalStateException(String.format("%s load fail Caused by:%s", filePath, e.getMessage()), e);
140111
}
@@ -172,38 +143,4 @@ private static void checkGRPCSpan(GrpcTransportConfig grpcTransportConfig) throw
172143
checker.check();
173144
}
174145

175-
private static void checkUDPStat(ThriftTransportConfig profilerConfig) throws Exception {
176-
String ip = profilerConfig.getCollectorStatServerIp();
177-
int port = profilerConfig.getCollectorStatServerPort();
178-
179-
NetworkChecker checker = new UDPChecker("UDP-STAT", ip, port);
180-
checker.check(getNetworkCheckPayload(), getNetworkCheckResponsePayload());
181-
}
182-
183-
184-
private static void checkUDPSpan(ThriftTransportConfig profilerConfig) throws Exception {
185-
String ip = profilerConfig.getCollectorSpanServerIp();
186-
int port = profilerConfig.getCollectorSpanServerPort();
187-
188-
NetworkChecker checker = new UDPChecker("UDP-SPAN", ip, port);
189-
checker.check(getNetworkCheckPayload(), getNetworkCheckResponsePayload());
190-
}
191-
192-
private static void checkTCP(ThriftTransportConfig profilerConfig) throws Exception {
193-
String ip = profilerConfig.getCollectorTcpServerIp();
194-
int port = profilerConfig.getCollectorTcpServerPort();
195-
196-
NetworkChecker checker = new TCPChecker("TCP", ip, port);
197-
checker.check();
198-
}
199-
200-
private static byte[] getNetworkCheckPayload() throws TException {
201-
HeaderTBaseSerializer serializer = new HeaderTBaseSerializerFactory(65535).createSerializer();
202-
return serializer.serialize(new NetworkAvailabilityCheckPacket());
203-
}
204-
205-
private static byte[] getNetworkCheckResponsePayload() {
206-
return Arrays.copyOf(NetworkAvailabilityCheckPacket.DATA_OK, NetworkAvailabilityCheckPacket.DATA_OK.length);
207-
}
208-
209146
}

tools/src/main/java/com/navercorp/pinpoint/tools/network/AbstractNetworkChecker.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.navercorp.pinpoint.tools.network;
22

33
import com.navercorp.pinpoint.tools.utils.HostResolver;
4+
import com.navercorp.pinpoint.tools.utils.Logger;
45

56
import java.io.IOException;
67
import java.net.InetAddress;
@@ -16,6 +17,8 @@ public abstract class AbstractNetworkChecker implements NetworkChecker {
1617
private static final String WHITE_SPACE = " "; // 4space
1718
private static final String LINE_SEPARATOR = System.lineSeparator();
1819

20+
private final Logger logger = new Logger();
21+
1922
private final String testName;
2023

2124
private final InetSocketAddress hostAddress;
@@ -43,8 +46,7 @@ public void check() throws IOException {
4346
report.append(createReport(ipAddress, check));
4447
}
4548

46-
System.out.println(report);
47-
49+
logger.info(report);
4850
}
4951

5052
@Override
@@ -59,7 +61,7 @@ public void check(byte[] requestData, byte[] expectedResponseData) throws IOExce
5961
report.append(createReport(ipAddress, check));
6062
}
6163

62-
System.out.println(report);
64+
logger.info(report);
6365
}
6466

6567
private String getHostName(InetSocketAddress hostAddress) {
@@ -70,10 +72,9 @@ private String createReport(InetSocketAddress socketAddress, boolean check) {
7072
String ip = getIp(socketAddress, socketAddress.getHostName());
7173
int port = socketAddress.getPort();
7274

73-
StringBuilder report = new StringBuilder();
74-
report.append(WHITE_SPACE).append("=> ").append(ip).append(":").append(port);
75-
report.append(" [").append(check ? "SUCCESS" : "FAIL").append("]").append(LINE_SEPARATOR);
76-
return report.toString();
75+
String report = WHITE_SPACE + "=> " + ip + ":" + port +
76+
" [" + (check ? "SUCCESS" : "FAIL") + "]" + LINE_SEPARATOR;
77+
return report;
7778
}
7879

7980
protected String getIp(InetSocketAddress socketAddress, String defaultValue) {

tools/src/main/java/com/navercorp/pinpoint/tools/network/TCPChecker.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.navercorp.pinpoint.tools.network;
22

33
import com.navercorp.pinpoint.tools.utils.IOUtils;
4+
import com.navercorp.pinpoint.tools.utils.Logger;
45

56
import java.io.IOException;
67
import java.io.InputStream;
@@ -15,6 +16,8 @@
1516
*/
1617
public class TCPChecker extends AbstractNetworkChecker {
1718

19+
private static final Logger logger = new Logger();
20+
1821
public TCPChecker(String testName, String hostName, int port) throws UnknownHostException {
1922
this(testName, new InetSocketAddress(hostName, port));
2023
}
@@ -29,7 +32,7 @@ protected boolean check(InetSocketAddress address) throws IOException {
2932
try (Socket socket = createSocket(address)) {
3033
return socket.isConnected();
3134
} catch (IOException e) {
32-
e.printStackTrace();
35+
logger.info(e);
3336
}
3437
return false;
3538
}
@@ -43,17 +46,16 @@ protected boolean check(InetSocketAddress address, byte[] requestData, byte[] ex
4346

4447
return Arrays.equals(expectedResponseData, responseData);
4548
} catch (IOException e) {
46-
e.printStackTrace();
49+
logger.info(e);
4750
}
4851
return false;
4952
}
5053

5154
private Socket createSocket(InetSocketAddress socketAddress) throws IOException {
52-
try (Socket socket = new Socket()) {
53-
socket.setSoTimeout(3000);
54-
socket.connect(socketAddress);
55-
return socket;
56-
}
55+
Socket socket = new Socket();
56+
socket.setSoTimeout(3000);
57+
socket.connect(socketAddress);
58+
return socket;
5759
}
5860

5961
private void write(Socket socket, byte[] requestData) throws IOException {

0 commit comments

Comments
 (0)