Skip to content

Commit 6b1fb82

Browse files
otelbot[bot]trask
andauthored
Module cleanup (run 25289183017) (#18538)
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
1 parent d5fa4f5 commit 6b1fb82

10 files changed

Lines changed: 39 additions & 24 deletions

File tree

.github/agents/knowledge/gradle-conventions.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,20 +266,27 @@ These system properties support the metadata collection pipeline. They are not r
266266
test correctness and are being added as a separate migration — **do not add them during
267267
review**. Only verify correctness when they are already present.
268268

269+
Do not add `collectMetadata` or `metadataConfig` to `javaagent-unit-tests` projects. These are
270+
unit tests, and metadata collection should not run there.
271+
269272
| Property | Type | Value |
270273
| --- | --- | --- |
271274
| `collectMetadata` | System property | Pass-through of `otelProps.collectMetadata`; defaults to `false` |
272275
| `metadataConfig` | System property | A single `key=value` string describing the non-default configuration active during this test run |
273276

274277
When already present, verify:
275278

279+
- `metadataConfig` is only used in files that also configure `collectMetadata`. A lone
280+
`metadataConfig` does not enable collection and should be removed, not added as a partial
281+
metadata migration.
276282
- `collectMetadata` is in `tasks.test` for single-test-task modules, or in
277283
`withType<Test>().configureEach` for modules that explicitly register additional `Test`
278284
tasks via `by registering(Test::class)` (`latestDepTest` does not count) — never on
279285
individual tasks. Do not use
280286
`withType<Test>().configureEach { ... }` in single-test-task modules.
281-
- `metadataConfig` is on each non-default task. It may also appear on the default `test`
282-
task when that task itself runs with non-default `jvmArgs` (e.g., an experimental flag
283-
enabled module-wide via `withType<Test>().configureEach { jvmArgs(...) }`); in that case
284-
the `metadataConfig` value should describe those non-default jvmArgs.
287+
- `metadataConfig` is on each non-default task that participates in metadata collection. It may
288+
also appear on the default `test` task when that task participates in metadata collection and
289+
itself runs with non-default `jvmArgs` (e.g., an experimental flag enabled module-wide via
290+
`withType<Test>().configureEach { jvmArgs(...) }`); in that case the `metadataConfig` value
291+
should describe those non-default jvmArgs.
285292
- The `metadataConfig` value matches at least one of the jvmArgs configured in the task

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77

88
import com.datastax.oss.driver.api.core.CqlSession;
99
import java.util.function.Function;
10+
import javax.annotation.Nullable;
1011

1112
public class CompletionStageFunction implements Function<Object, Object> {
1213

1314
@Override
14-
public Object apply(Object session) {
15+
@Nullable
16+
public Object apply(@Nullable Object session) {
1517
if (session == null) {
1618
return null;
1719
}

instrumentation/cassandra/cassandra-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212

1313
class CassandraTest extends AbstractCassandraTest {
1414

15+
@RegisterExtension
16+
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
17+
1518
@Override
1619
protected String getInstrumentationName() {
1720
return "io.opentelemetry.cassandra-4.0";
1821
}
1922

20-
@RegisterExtension
21-
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
22-
2323
@Override
2424
protected InstrumentationExtension testing() {
2525
return testing;

instrumentation/cassandra/cassandra-4.4/library/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ dependencies {
1818
tasks {
1919
withType<Test>().configureEach {
2020
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
21+
systemProperty("collectMetadata", otelProps.collectMetadata)
2122
}
2223

2324
val testStableSemconv by registering(Test::class) {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ final class CassandraAttributesExtractor
6262
private static final AttributeKey<Long> CASSANDRA_SPECULATIVE_EXECUTION_COUNT =
6363
AttributeKey.longKey("cassandra.speculative_execution.count");
6464

65-
private static final Field proxyAddressField = getProxyAddressField();
65+
private static final Field PROXY_ADDRESS_FIELD = getProxyAddressField();
6666

6767
@Override
6868
public void onStart(
@@ -161,11 +161,11 @@ private static void updateServerAddressAndPort(AttributesBuilder attributes, Nod
161161
InetSocketAddress address = ((DefaultEndPoint) endPoint).resolve();
162162
attributes.put(SERVER_ADDRESS, address.getHostString());
163163
attributes.put(SERVER_PORT, address.getPort());
164-
} else if (endPoint instanceof SniEndPoint && proxyAddressField != null) {
164+
} else if (endPoint instanceof SniEndPoint && PROXY_ADDRESS_FIELD != null) {
165165
SniEndPoint sniEndPoint = (SniEndPoint) endPoint;
166166
Object object = null;
167167
try {
168-
object = proxyAddressField.get(sniEndPoint);
168+
object = PROXY_ADDRESS_FIELD.get(sniEndPoint);
169169
} catch (Exception e) {
170170
logger.log(
171171
FINE,

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55

66
package io.opentelemetry.instrumentation.cassandra.v4_4;
77

8+
import static java.util.Objects.requireNonNull;
9+
810
import com.datastax.oss.driver.api.core.CqlSession;
911
import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
1012
import io.opentelemetry.api.OpenTelemetry;
1113
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1214

1315
/** Entrypoint for instrumenting cassandra sessions. */
14-
public class CassandraTelemetry {
16+
public final class CassandraTelemetry {
1517
private final TracingCqlSession tracingCqlSession;
1618

1719
/** Returns a new {@link CassandraTelemetry} configured with the given {@link OpenTelemetry}. */
@@ -27,7 +29,7 @@ public static CassandraTelemetryBuilder builder(OpenTelemetry openTelemetry) {
2729
return new CassandraTelemetryBuilder(openTelemetry);
2830
}
2931

30-
protected CassandraTelemetry(Instrumenter<CassandraRequest, ExecutionInfo> instrumenter) {
32+
CassandraTelemetry(Instrumenter<CassandraRequest, ExecutionInfo> instrumenter) {
3133
this.tracingCqlSession = new TracingCqlSession(instrumenter);
3234
}
3335

@@ -38,6 +40,6 @@ protected CassandraTelemetry(Instrumenter<CassandraRequest, ExecutionInfo> instr
3840
* @return a {@link TracingCqlSession}.
3941
*/
4042
public CqlSession wrap(CqlSession session) {
41-
return tracingCqlSession.wrapSession(session);
43+
return tracingCqlSession.wrapSession(requireNonNull(session, "session"));
4244
}
4345
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1717

1818
/** A builder of {@link CassandraTelemetry}. */
19-
public class CassandraTelemetryBuilder {
19+
public final class CassandraTelemetryBuilder {
2020

2121
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.cassandra-4.4";
2222
// copied from DbIncubatingAttributes
@@ -27,7 +27,7 @@ public class CassandraTelemetryBuilder {
2727

2828
private boolean querySanitizationEnabled = true;
2929

30-
protected CassandraTelemetryBuilder(OpenTelemetry openTelemetry) {
30+
CassandraTelemetryBuilder(OpenTelemetry openTelemetry) {
3131
this.openTelemetry = openTelemetry;
3232
}
3333

@@ -52,7 +52,7 @@ public CassandraTelemetry build() {
5252
}
5353

5454
@SuppressWarnings("deprecation") // to support old database semantic conventions
55-
protected Instrumenter<CassandraRequest, ExecutionInfo> createInstrumenter(
55+
private static Instrumenter<CassandraRequest, ExecutionInfo> createInstrumenter(
5656
OpenTelemetry openTelemetry, boolean querySanitizationEnabled) {
5757
CassandraSqlAttributesGetter attributesGetter = new CassandraSqlAttributesGetter();
5858

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ final class TracingCqlSession {
3636
}
3737

3838
CqlSession wrapSession(CqlSession session) {
39-
if (session == null) {
40-
return null;
41-
}
42-
4339
List<Class<?>> interfaces = new ArrayList<>();
4440
Class<?> clazz = session.getClass();
4541
while (clazz != Object.class) {

instrumentation/cassandra/cassandra-4.4/library/src/test/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
class CassandraTest extends AbstractCassandra44Test {
1515

16+
@RegisterExtension
17+
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
18+
1619
@Override
1720
protected String getInstrumentationName() {
1821
return "io.opentelemetry.cassandra-4.4";
1922
}
2023

21-
@RegisterExtension
22-
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
23-
2424
@Override
2525
protected InstrumentationExtension testing() {
2626
return testing;

instrumentation/cassandra/cassandra-4.4/metadata.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ semantic_conventions:
77
- DATABASE_CLIENT_METRICS
88
library_link: https://github.com/apache/cassandra-java-driver
99
configurations:
10+
- name: otel.instrumentation.cassandra.query-sanitization.enabled
11+
declarative_name: java.cassandra.query_sanitization.enabled
12+
description: >
13+
Enables query sanitization for Cassandra queries. Takes precedence over
14+
otel.instrumentation.common.db.query-sanitization.enabled.
15+
type: boolean
16+
default: true
1017
- name: otel.instrumentation.common.db.query-sanitization.enabled
1118
declarative_name: java.common.db.query_sanitization.enabled
1219
description: Enables query sanitization for database queries.

0 commit comments

Comments
 (0)