Skip to content

Commit c070dc8

Browse files
authored
Fix jfr tests on openj9 (#12876)
1 parent ccedc40 commit c070dc8

File tree

5 files changed

+18
-8
lines changed

5 files changed

+18
-8
lines changed

instrumentation/runtime-telemetry/runtime-telemetry-java17/javaagent/src/test/java/io/opentelemetry/instrumentation/javaagent/runtimemetrics/java17/JfrRuntimeMetricsTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import jdk.jfr.FlightRecorder;
1011
import org.junit.jupiter.api.Assumptions;
1112
import org.junit.jupiter.api.BeforeAll;
1213
import org.junit.jupiter.api.Test;
@@ -20,10 +21,11 @@ class JfrRuntimeMetricsTest {
2021
@BeforeAll
2122
static void setUp() {
2223
try {
23-
Class.forName("jdk.jfr.consumer.RecordingStream");
24+
Class.forName("jdk.jfr.FlightRecorder");
2425
} catch (ClassNotFoundException exception) {
2526
Assumptions.abort("JFR not present");
2627
}
28+
Assumptions.assumeTrue(FlightRecorder.isAvailable(), "JFR not available");
2729
}
2830

2931
@Test

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetrics.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.logging.Logger;
1818
import javax.annotation.Nullable;
1919
import jdk.jfr.EventSettings;
20+
import jdk.jfr.FlightRecorder;
2021
import jdk.jfr.consumer.RecordingStream;
2122

2223
/** The entry point class for runtime metrics support using JFR and JMX. */
@@ -107,7 +108,7 @@ private JfrRuntimeMetrics(OpenTelemetry openTelemetry, Predicate<JfrFeature> fea
107108

108109
static JfrRuntimeMetrics build(
109110
OpenTelemetry openTelemetry, Predicate<JfrFeature> featurePredicate) {
110-
if (!hasJfrRecordingStream()) {
111+
if (!isJfrAvailable()) {
111112
return null;
112113
}
113114
return new JfrRuntimeMetrics(openTelemetry, featurePredicate);
@@ -134,13 +135,14 @@ CountDownLatch getStartUpLatch() {
134135
return startUpLatch;
135136
}
136137

137-
private static boolean hasJfrRecordingStream() {
138+
private static boolean isJfrAvailable() {
138139
try {
139-
Class.forName("jdk.jfr.consumer.RecordingStream");
140-
return true;
140+
Class.forName("jdk.jfr.FlightRecorder");
141141
} catch (ClassNotFoundException e) {
142142
return false;
143143
}
144+
145+
return FlightRecorder.isAvailable();
144146
}
145147
}
146148
}

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/test/java/io/opentelemetry/instrumentation/runtimemetrics/java17/JfrExtension.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.Collection;
1717
import java.util.concurrent.TimeUnit;
1818
import java.util.function.Consumer;
19+
import jdk.jfr.FlightRecorder;
1920
import org.junit.jupiter.api.Assumptions;
2021
import org.junit.jupiter.api.extension.AfterEachCallback;
2122
import org.junit.jupiter.api.extension.BeforeEachCallback;
@@ -36,10 +37,11 @@ public JfrExtension(Consumer<RuntimeMetricsBuilder> builderConsumer) {
3637
@Override
3738
public void beforeEach(ExtensionContext context) throws InterruptedException {
3839
try {
39-
Class.forName("jdk.jfr.consumer.RecordingStream");
40+
Class.forName("jdk.jfr.FlightRecorder");
4041
} catch (ClassNotFoundException exception) {
4142
Assumptions.abort("JFR not present");
4243
}
44+
Assumptions.assumeTrue(FlightRecorder.isAvailable(), "JFR not available");
4345

4446
metricReader = InMemoryMetricReader.create();
4547
meterProvider = SdkMeterProvider.builder().registerMetricReader(metricReader).build();

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/test/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsBuilderTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.opentelemetry.api.OpenTelemetry;
1111
import java.util.Arrays;
1212
import java.util.HashMap;
13+
import jdk.jfr.FlightRecorder;
1314
import org.junit.jupiter.api.Assumptions;
1415
import org.junit.jupiter.api.BeforeAll;
1516
import org.junit.jupiter.api.Test;
@@ -19,10 +20,11 @@ class RuntimeMetricsBuilderTest {
1920
@BeforeAll
2021
static void setup() {
2122
try {
22-
Class.forName("jdk.jfr.consumer.RecordingStream");
23+
Class.forName("jdk.jfr.FlightRecorder");
2324
} catch (ClassNotFoundException exception) {
2425
Assumptions.abort("JFR not present");
2526
}
27+
Assumptions.assumeTrue(FlightRecorder.isAvailable(), "JFR not available");
2628
}
2729

2830
@Test

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/test/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
1313
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
1414
import java.util.concurrent.atomic.AtomicBoolean;
15+
import jdk.jfr.FlightRecorder;
1516
import org.junit.jupiter.api.AfterEach;
1617
import org.junit.jupiter.api.Assumptions;
1718
import org.junit.jupiter.api.BeforeEach;
@@ -28,10 +29,11 @@ class RuntimeMetricsTest {
2829
@BeforeEach
2930
void setup() {
3031
try {
31-
Class.forName("jdk.jfr.consumer.RecordingStream");
32+
Class.forName("jdk.jfr.FlightRecorder");
3233
} catch (ClassNotFoundException exception) {
3334
Assumptions.abort("JFR not present");
3435
}
36+
Assumptions.assumeTrue(FlightRecorder.isAvailable(), "JFR not available");
3537

3638
reader = InMemoryMetricReader.createDelta();
3739
sdk =

0 commit comments

Comments
 (0)