Skip to content

Commit cf43722

Browse files
committed
less
1 parent 80e0f65 commit cf43722

File tree

3 files changed

+16
-99
lines changed

3 files changed

+16
-99
lines changed

instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
import static java.util.Collections.singleton;
99

1010
import com.datastax.driver.core.ExecutionInfo;
11-
import com.datastax.driver.core.Host;
1211
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
1312
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
14-
import java.net.InetAddress;
1513
import java.net.InetSocketAddress;
16-
import java.net.UnknownHostException;
1714
import java.util.Collection;
1815
import javax.annotation.Nullable;
1916

@@ -52,25 +49,7 @@ public Integer getServerPort(CassandraRequest request) {
5249
@Nullable
5350
@Override
5451
public InetSocketAddress getNetworkPeerInetSocketAddress(
55-
CassandraRequest request, @Nullable ExecutionInfo response) {
56-
if (response == null) {
57-
return null;
58-
}
59-
Host queriedHost = response.getQueriedHost();
60-
if (queriedHost == null) {
61-
return null;
62-
}
63-
InetSocketAddress address = queriedHost.getSocketAddress();
64-
if (address != null && address.getAddress() == null) {
65-
// Address is unresolved, need to resolve it explicitly
66-
try {
67-
InetAddress resolved = InetAddress.getByName(address.getHostString());
68-
return new InetSocketAddress(resolved, address.getPort());
69-
} catch (UnknownHostException e) {
70-
// If resolution fails, return the unresolved address anyway
71-
return address;
72-
}
73-
}
74-
return address;
52+
CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
53+
return executionInfo == null ? null : executionInfo.getQueriedHost().getSocketAddress();
7554
}
7655
}

instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@
99

1010
import com.datastax.oss.driver.api.core.CqlIdentifier;
1111
import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
12-
import com.datastax.oss.driver.api.core.metadata.EndPoint;
1312
import com.datastax.oss.driver.api.core.metadata.Node;
14-
import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint;
1513
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
1614
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
17-
import java.net.InetAddress;
1815
import java.net.InetSocketAddress;
19-
import java.net.UnknownHostException;
16+
import java.net.SocketAddress;
2017
import java.util.Collection;
2118
import javax.annotation.Nullable;
2219

@@ -55,29 +52,17 @@ public Integer getServerPort(CassandraRequest request) {
5552
@Nullable
5653
@Override
5754
public InetSocketAddress getNetworkPeerInetSocketAddress(
58-
CassandraRequest request, @Nullable ExecutionInfo response) {
59-
if (response == null) {
55+
CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
56+
if (executionInfo == null) {
6057
return null;
6158
}
62-
Node coordinator = response.getCoordinator();
59+
Node coordinator = executionInfo.getCoordinator();
6360
if (coordinator == null) {
6461
return null;
6562
}
66-
EndPoint endPoint = coordinator.getEndPoint();
67-
if (endPoint instanceof DefaultEndPoint) {
68-
InetSocketAddress address = ((DefaultEndPoint) endPoint).resolve();
69-
if (address != null && address.getAddress() == null) {
70-
// Address is unresolved, need to resolve it explicitly
71-
try {
72-
InetAddress resolved = InetAddress.getByName(address.getHostString());
73-
return new InetSocketAddress(resolved, address.getPort());
74-
} catch (UnknownHostException e) {
75-
// If resolution fails, return the unresolved address anyway
76-
return address;
77-
}
78-
}
79-
return address;
80-
}
81-
return null;
63+
// resolve() returns an existing InetSocketAddress, it does not do a dns resolve,
64+
// at least in the only current EndPoint implementation (DefaultEndPoint)
65+
SocketAddress address = coordinator.getEndPoint().resolve();
66+
return address instanceof InetSocketAddress ? (InetSocketAddress) address : null;
8267
}
8368
}

instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java

Lines changed: 6 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,16 @@
1212
import com.datastax.oss.driver.api.core.metadata.EndPoint;
1313
import com.datastax.oss.driver.api.core.metadata.Node;
1414
import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint;
15-
import com.datastax.oss.driver.internal.core.metadata.SniEndPoint;
1615
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
17-
import java.lang.reflect.Field;
18-
import java.net.InetAddress;
1916
import java.net.InetSocketAddress;
20-
import java.net.UnknownHostException;
2117
import java.util.Collection;
22-
import java.util.logging.Level;
23-
import java.util.logging.Logger;
2418
import javax.annotation.Nullable;
2519

2620
final class CassandraSqlAttributesGetter
2721
implements SqlClientAttributesGetter<CassandraRequest, ExecutionInfo> {
2822
// copied from DbIncubatingAttributes.DbSystemIncubatingValues
2923
private static final String CASSANDRA = "cassandra";
3024

31-
private static final Logger logger =
32-
Logger.getLogger(CassandraSqlAttributesGetter.class.getName());
33-
34-
private static final Field proxyAddressField = getProxyAddressField();
35-
3625
@Override
3726
public String getDbSystem(CassandraRequest request) {
3827
return CASSANDRA;
@@ -64,55 +53,19 @@ public Integer getServerPort(CassandraRequest request) {
6453
@Nullable
6554
@Override
6655
public InetSocketAddress getNetworkPeerInetSocketAddress(
67-
CassandraRequest request, @Nullable ExecutionInfo response) {
68-
if (response == null) {
56+
CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
57+
if (executionInfo == null) {
6958
return null;
7059
}
71-
Node coordinator = response.getCoordinator();
60+
Node coordinator = executionInfo.getCoordinator();
7261
if (coordinator == null) {
7362
return null;
7463
}
7564
EndPoint endPoint = coordinator.getEndPoint();
76-
InetSocketAddress address = null;
7765
if (endPoint instanceof DefaultEndPoint) {
78-
address = ((DefaultEndPoint) endPoint).resolve();
79-
} else if (endPoint instanceof SniEndPoint && proxyAddressField != null) {
80-
SniEndPoint sniEndPoint = (SniEndPoint) endPoint;
81-
Object object = null;
82-
try {
83-
object = proxyAddressField.get(sniEndPoint);
84-
} catch (Exception e) {
85-
logger.log(
86-
Level.FINE,
87-
"Error when accessing the private field proxyAddress of SniEndPoint using reflection.",
88-
e);
89-
}
90-
if (object instanceof InetSocketAddress) {
91-
address = (InetSocketAddress) object;
92-
}
93-
}
94-
95-
// Ensure address is resolved
96-
if (address != null && address.getAddress() == null) {
97-
try {
98-
InetAddress resolved = InetAddress.getByName(address.getHostString());
99-
return new InetSocketAddress(resolved, address.getPort());
100-
} catch (UnknownHostException e) {
101-
// If resolution fails, return the unresolved address anyway
102-
return address;
103-
}
104-
}
105-
return address;
106-
}
107-
108-
@Nullable
109-
private static Field getProxyAddressField() {
110-
try {
111-
Field field = SniEndPoint.class.getDeclaredField("proxyAddress");
112-
field.setAccessible(true);
113-
return field;
114-
} catch (Exception e) {
115-
return null;
66+
// resolve() returns an existing InetSocketAddress, it does not do a dns resolve,
67+
return (InetSocketAddress) endPoint.resolve();
11668
}
69+
return null;
11770
}
11871
}

0 commit comments

Comments
 (0)