Skip to content

Commit bd97110

Browse files
trasklaurit
andauthored
Validate javaagent suppression keys (#12955)
Co-authored-by: Lauri Tulmin <[email protected]>
1 parent 58e89c2 commit bd97110

File tree

26 files changed

+105
-23
lines changed

26 files changed

+105
-23
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/bin/bash -e
2+
3+
# shellcheck disable=SC2044
4+
for file in $(find instrumentation -name "*Module.java"); do
5+
6+
if ! grep -q "extends InstrumentationModule" "$file"; then
7+
continue
8+
fi
9+
10+
if [[ "$file" != *"/javaagent/src/"* ]]; then
11+
continue
12+
fi
13+
14+
# shellcheck disable=SC2001
15+
module_name=$(echo "$file" | sed 's#.*/\([^/]*\)/javaagent/src/.*#\1#')
16+
# shellcheck disable=SC2001
17+
simple_module_name=$(echo "$module_name" | sed 's/-[0-9.]*$//')
18+
19+
if [[ "$simple_module_name" == *jaxrs* ]]; then
20+
# TODO these need some work still
21+
continue
22+
fi
23+
if [[ "$simple_module_name" == *jaxws* ]]; then
24+
# TODO these need some work still
25+
continue
26+
fi
27+
if [[ "$simple_module_name" == jdbc ]]; then
28+
# TODO split jdbc-datasource out into separate instrumentation?
29+
continue
30+
fi
31+
if [[ "$simple_module_name" == kafka-clients ]]; then
32+
# TODO split kafka client metrics out into separate instrumentation?
33+
continue
34+
fi
35+
if [[ "$simple_module_name" == quarkus-resteasy-reactive ]]; then
36+
# TODO module is missing a base version
37+
continue
38+
fi
39+
40+
if [ "$module_name" == "$simple_module_name" ]; then
41+
expected="super\(\n? *\"$simple_module_name\""
42+
else
43+
expected="super\(\n? *\"$simple_module_name\",\n? *\"$module_name\""
44+
fi
45+
46+
echo "$module_name"
47+
48+
matches=$(perl -0 -ne "print if /$expected/" "$file" | wc -l)
49+
if [ "$matches" == 0 ]; then
50+
echo "Expected to find $expected in $file"
51+
exit 1
52+
fi
53+
54+
done

.github/workflows/build-common.yml

+7
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ jobs:
119119
exit 1
120120
fi
121121
122+
check-javaagent-suppression-keys:
123+
runs-on: ubuntu-latest
124+
steps:
125+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
126+
127+
- run: .github/scripts/check-javaagent-suppression-keys.sh
128+
122129
check-latest-dep-test-overrides:
123130
runs-on: ubuntu-latest
124131
steps:

CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## Unreleased
44

5+
### Migration notes
6+
7+
- Some Java agent instrumentation suppression keys have been renamed to match their module names:
8+
- `elasticsearch-rest-6.0` --> `elasticsearch-rest-6.4`
9+
- `internal-application-logging` --> `internal-application-logger`
10+
- `javalin-5` -> `javalin-5.0`
11+
- `pulsar-2.8.0` -> `pulsar-2.8`
12+
513
## Version 2.11.0 (2024-12-23)
614

715
### Migration notes
@@ -89,6 +97,7 @@ In preparation for stabilizing HTTP library instrumentation soon:
8997
([#12883](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/12883))
9098
- Add close to fix CWE-404
9199
([#12908](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/12908))
100+
>>>>>>> upstream/main
92101
93102
## Version 2.10.0 (2024-11-13)
94103

instrumentation/akka/akka-actor-fork-join-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaActorForkJoinInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@AutoService(InstrumentationModule.class)
1616
public class AkkaActorForkJoinInstrumentationModule extends InstrumentationModule {
1717
public AkkaActorForkJoinInstrumentationModule() {
18-
super("akka-actor", "akka-actor-fork-join", "akka-actor-fork-join-2.5");
18+
super("akka-actor-fork-join", "akka-actor-fork-join-2.5", "akka-actor");
1919
}
2020

2121
@Override

instrumentation/armeria/armeria-grpc-1.14/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/armeria/grpc/v1_14/ArmeriaGrpcInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@AutoService(InstrumentationModule.class)
1616
public class ArmeriaGrpcInstrumentationModule extends InstrumentationModule {
1717
public ArmeriaGrpcInstrumentationModule() {
18-
super("armeria", "armeria-1.14", "armeria-grpc-1.14");
18+
super("armeria-grpc", "armeria-grpc-1.14", "armeria", "armeria-1.14");
1919
}
2020

2121
@Override

instrumentation/clickhouse-client-0.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/ClickHouseInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class ClickHouseInstrumentationModule extends InstrumentationModule {
1717

1818
public ClickHouseInstrumentationModule() {
19-
super("clickhouse", "clickhouse-client-0.5");
19+
super("clickhouse-client", "clickhouse-client-0.5", "clickhouse");
2020
}
2121

2222
@Override

instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v6_4/ElasticsearchRest6InstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@AutoService(InstrumentationModule.class)
1919
public class ElasticsearchRest6InstrumentationModule extends InstrumentationModule {
2020
public ElasticsearchRest6InstrumentationModule() {
21-
super("elasticsearch-rest", "elasticsearch-rest-6.0", "elasticsearch");
21+
super("elasticsearch-rest", "elasticsearch-rest-6.4", "elasticsearch");
2222
}
2323

2424
@Override

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/TwitterUtilCoreInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class TwitterUtilCoreInstrumentationModule extends InstrumentationModule
1818
implements ExperimentalInstrumentationModule {
1919

2020
public TwitterUtilCoreInstrumentationModule() {
21-
super("twitter-util-core");
21+
super("finagle-http", "finagle-http-23.11", "twitter-util-core");
2222
}
2323

2424
@Override

instrumentation/internal/internal-application-logger/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/logging/ApplicationLoggingInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
public class ApplicationLoggingInstrumentationModule extends InstrumentationModule {
1818

1919
public ApplicationLoggingInstrumentationModule() {
20-
super("internal-application-logging");
20+
super("internal-application-logger");
2121
}
2222

2323
@Override

instrumentation/javalin-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javalin/v5_0/JavalinInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
public class JavalinInstrumentationModule extends InstrumentationModule {
2020

2121
public JavalinInstrumentationModule() {
22-
super("javalin", "javalin-5");
22+
super("javalin", "javalin-5.0");
2323
}
2424

2525
@Override

instrumentation/kotlinx-coroutines/kotlinx-coroutines-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/KotlinCoroutinesInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class KotlinCoroutinesInstrumentationModule extends InstrumentationModule
1818
implements ExperimentalInstrumentationModule {
1919

2020
public KotlinCoroutinesInstrumentationModule() {
21-
super("kotlinx-coroutines");
21+
super("kotlinx-coroutines", "kotlinx-coroutines-1.0");
2222
}
2323

2424
@Override

instrumentation/kotlinx-coroutines/kotlinx-coroutines-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/instrumentationannotations/AnnotationInstrumentationModule.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ public class AnnotationInstrumentationModule extends InstrumentationModule {
2020

2121
public AnnotationInstrumentationModule() {
2222
super(
23-
"kotlinx-coroutines-opentelemetry-instrumentation-annotations",
2423
"kotlinx-coroutines",
24+
"kotlinx-coroutines-1.0",
25+
"kotlinx-coroutines-opentelemetry-instrumentation-annotations",
2526
"opentelemetry-instrumentation-annotations");
2627
}
2728

instrumentation/kotlinx-coroutines/kotlinx-coroutines-flow-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kotlinxcoroutines/flow/KotlinCoroutinesFlowInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class KotlinCoroutinesFlowInstrumentationModule extends InstrumentationModule {
1717

1818
public KotlinCoroutinesFlowInstrumentationModule() {
19-
super("kotlinx-coroutines", "kotlinx-coroutines-flow");
19+
super("kotlinx-coroutines-flow", "kotlinx-coroutines-flow-1.3", "kotlinx-coroutines");
2020
}
2121

2222
@Override

instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/KtorClientInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
public class KtorClientInstrumentationModule extends InstrumentationModule {
1919

2020
public KtorClientInstrumentationModule() {
21-
super("ktor", "ktor-client", "ktor-2.0", "ktor-client-2.0");
21+
super("ktor", "ktor-2.0", "ktor-client", "ktor-client-2.0");
2222
}
2323

2424
@Override

instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/KtorServerInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class KtorServerInstrumentationModule extends InstrumentationModule {
1717

1818
public KtorServerInstrumentationModule() {
19-
super("ktor", "ktor-server", "ktor-2.0", "ktor-server-2.0");
19+
super("ktor", "ktor-2.0", "ktor-server", "ktor-server-2.0");
2020
}
2121

2222
@Override

instrumentation/ktor/ktor-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v3_0/KtorClientInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
public class KtorClientInstrumentationModule extends InstrumentationModule {
1919

2020
public KtorClientInstrumentationModule() {
21-
super("ktor", "ktor-client", "ktor-3.0", "ktor-client-3.0");
21+
super("ktor", "ktor-3.0", "ktor-client", "ktor-client-3.0");
2222
}
2323

2424
@Override

instrumentation/ktor/ktor-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v3_0/KtorServerInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class KtorServerInstrumentationModule extends InstrumentationModule {
1717

1818
public KtorServerInstrumentationModule() {
19-
super("ktor", "ktor-server", "ktor-3.0", "ktor-server-3.0");
19+
super("ktor", "ktor-3.0", "ktor-server", "ktor-server-3.0");
2020
}
2121

2222
@Override

instrumentation/opentelemetry-extension-annotations-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extensionannotations/WithSpanInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
public class WithSpanInstrumentationModule extends InstrumentationModule {
2121

2222
public WithSpanInstrumentationModule() {
23-
super("opentelemetry-extension-annotations");
23+
super("opentelemetry-extension-annotations", "opentelemetry-extension-annotations-1.0");
2424
}
2525

2626
@Override

instrumentation/opentelemetry-extension-kotlin-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/extensionkotlin/ContextExtensionInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class ContextExtensionInstrumentationModule extends InstrumentationModule
1818
implements ExperimentalInstrumentationModule {
1919

2020
public ContextExtensionInstrumentationModule() {
21-
super("opentelemetry-extension-kotlin");
21+
super("opentelemetry-extension-kotlin", "opentelemetry-extension-kotlin-1.0");
2222
}
2323

2424
@Override

instrumentation/opentelemetry-instrumentation-annotations-1.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/instrumentationannotations/AnnotationInstrumentationModule.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
public class AnnotationInstrumentationModule extends InstrumentationModule {
2525

2626
public AnnotationInstrumentationModule() {
27-
super("opentelemetry-instrumentation-annotations", "annotations");
27+
super(
28+
"opentelemetry-instrumentation-annotations",
29+
"opentelemetry-instrumentation-annotations-1.16",
30+
"annotations");
2831
}
2932

3033
@Override

instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@AutoService(InstrumentationModule.class)
1515
public class PulsarInstrumentationModule extends InstrumentationModule {
1616
public PulsarInstrumentationModule() {
17-
super("pulsar", "pulsar-2.8.0");
17+
super("pulsar", "pulsar-2.8");
1818
}
1919

2020
@Override

instrumentation/spring/spring-cloud-gateway/spring-cloud-gateway-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/gateway/v2_0/GatewayInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class GatewayInstrumentationModule extends InstrumentationModule
1818
implements ExperimentalInstrumentationModule {
1919

2020
public GatewayInstrumentationModule() {
21-
super("spring-cloud-gateway");
21+
super("spring-cloud-gateway", "spring-cloud-gateway-2.0");
2222
}
2323

2424
@Override

instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/servlet/SpringSecurityConfigServletInstrumentationModule.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
public class SpringSecurityConfigServletInstrumentationModule extends InstrumentationModule
2323
implements ExperimentalInstrumentationModule {
2424
public SpringSecurityConfigServletInstrumentationModule() {
25-
super("spring-security-config-servlet", "spring-security-config-servlet-6.0");
25+
super(
26+
"spring-security-config",
27+
"spring-security-config-6.0",
28+
"spring-security-config-servlet",
29+
"spring-security-config-servlet-6.0");
2630
}
2731

2832
@Override

instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/webflux/SpringSecurityConfigWebFluxInstrumentationModule.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
public class SpringSecurityConfigWebFluxInstrumentationModule extends InstrumentationModule {
2020

2121
public SpringSecurityConfigWebFluxInstrumentationModule() {
22-
super("spring-security-config-webflux", "spring-security-config-webflux-6.0");
22+
super(
23+
"spring-security-config",
24+
"spring-security-config-6.0",
25+
"spring-security-config-webflux",
26+
"spring-security-config-webflux-6.0");
2327
}
2428

2529
@Override

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/reactornetty/ReactorNettyInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class ReactorNettyInstrumentationModule extends InstrumentationModule
1717
implements ExperimentalInstrumentationModule {
1818

1919
public ReactorNettyInstrumentationModule() {
20-
super("reactor-netty", "reactor-netty-server");
20+
super("spring-webflux", "spring-webflux-5.0", "reactor-netty", "reactor-netty-server");
2121
}
2222

2323
@Override

instrumentation/zio/zio-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/zio/v2_0/ZioInstrumentationModule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class ZioInstrumentationModule extends InstrumentationModule {
1717

1818
public ZioInstrumentationModule() {
19-
super("zio");
19+
super("zio", "zio-2.0");
2020
}
2121

2222
@Override

0 commit comments

Comments
 (0)