From 0a4a2dc3d7e507e13754df074acb3ab20b5b7081 Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 12 Mar 2025 11:08:09 +0100 Subject: [PATCH 1/2] Make the OTel starter works with GraalVM native 22 and 23 --- .github/workflows/reusable-native-tests.yml | 7 ++++++- .../native-image.properties | 4 ---- .../native-image.properties | 2 -- .../AbstractOtelSpringStarterSmokeTest.java | 12 ++++++------ 4 files changed, 12 insertions(+), 13 deletions(-) delete mode 100644 instrumentation-api/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-instrumentation-api/native-image.properties delete mode 100644 instrumentation/logback/logback-appender-1.0/library/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-logback-appender-1.0/native-image.properties diff --git a/.github/workflows/reusable-native-tests.yml b/.github/workflows/reusable-native-tests.yml index 451e9cf8b9f5..b9ac37c548d1 100644 --- a/.github/workflows/reusable-native-tests.yml +++ b/.github/workflows/reusable-native-tests.yml @@ -17,6 +17,11 @@ jobs: graalvm-native-tests: if: "!inputs.skip-native-tests" runs-on: ubuntu-latest + strategy: + matrix: + test-java-version: + - 22 + - 23 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - id: read-java @@ -24,7 +29,7 @@ jobs: - uses: graalvm/setup-graalvm@01ed653ac833fe80569f1ef9f25585ba2811baab # v1.3.3.1 with: version: "latest" - java-version: "${{ steps.read-java.outputs.version }}" + java-version: ${{ matrix.test-java-version }} components: "native-image" - name: Running test env: diff --git a/instrumentation-api/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-instrumentation-api/native-image.properties b/instrumentation-api/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-instrumentation-api/native-image.properties deleted file mode 100644 index 83efd36a27e8..000000000000 --- a/instrumentation-api/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-instrumentation-api/native-image.properties +++ /dev/null @@ -1,4 +0,0 @@ -Args=\ - --initialize-at-build-time=io.opentelemetry.instrumentation.api.internal.cache.concurrentlinkedhashmap.ConcurrentLinkedHashMap \ - --initialize-at-build-time=io.opentelemetry.instrumentation.api.internal.cache.MapBackedCache \ - --initialize-at-build-time=io.opentelemetry.api.internal.InternalAttributeKeyImpl diff --git a/instrumentation/logback/logback-appender-1.0/library/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-logback-appender-1.0/native-image.properties b/instrumentation/logback/logback-appender-1.0/library/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-logback-appender-1.0/native-image.properties deleted file mode 100644 index e393b0676ffb..000000000000 --- a/instrumentation/logback/logback-appender-1.0/library/src/main/resources/META-INF/native-image/io.opentelemetry.instrumentation/opentelemetry-logback-appender-1.0/native-image.properties +++ /dev/null @@ -1,2 +0,0 @@ -Args=\ - --initialize-at-build-time=io.opentelemetry.instrumentation.logback.appender.v1_0.internal.LoggingEventMapper diff --git a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java index c4f9c6413c82..373edf9f1e93 100644 --- a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java +++ b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java @@ -214,12 +214,12 @@ void shouldSendTelemetry() { // JMX based metrics - test one per JMX bean List jmxMetrics = - new ArrayList<>( - Arrays.asList( - "jvm.thread.count", - "jvm.memory.used", - "jvm.system.cpu.load_1m", - "jvm.memory.init")); + new ArrayList<>(Arrays.asList("jvm.thread.count", "jvm.memory.used", "jvm.memory.init")); + + double javaVersion = Double.parseDouble(System.getProperty("java.specification.version")); + if (javaVersion < 23) { + jmxMetrics.add("jvm.system.cpu.load_1m"); + } boolean noNative = System.getProperty("org.graalvm.nativeimage.imagecode") == null; if (noNative) { From 4aae10f5167fdfa13a90ea99f64795ec4cede19a Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 12 Mar 2025 15:11:49 +0100 Subject: [PATCH 2/2] Add comment --- .../spring/smoketest/AbstractOtelSpringStarterSmokeTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java index 373edf9f1e93..2bdbfb5b5b30 100644 --- a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java +++ b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java @@ -217,6 +217,7 @@ void shouldSendTelemetry() { new ArrayList<>(Arrays.asList("jvm.thread.count", "jvm.memory.used", "jvm.memory.init")); double javaVersion = Double.parseDouble(System.getProperty("java.specification.version")); + // See https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/13503 if (javaVersion < 23) { jmxMetrics.add("jvm.system.cpu.load_1m"); }