diff --git a/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetrics.java b/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetrics.java index 0bdc3bdd1e..813c3ccff3 100644 --- a/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetrics.java +++ b/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetrics.java @@ -37,10 +37,14 @@ public final class RuntimeMetrics implements Closeable { @SuppressWarnings("CatchingUnchecked") RuntimeMetrics( - OpenTelemetry openTelemetry, Predicate featurePredicate, boolean disableJmx) { + OpenTelemetry openTelemetry, + Predicate featurePredicate, + boolean disableJmx, + boolean disableJfr) { this.openTelemetry = openTelemetry; try { - jfrRuntimeMetrics = JfrRuntimeMetrics.build(openTelemetry, featurePredicate); + jfrRuntimeMetrics = + disableJfr ? null : JfrRuntimeMetrics.build(openTelemetry, featurePredicate); // Set up metrics gathered by JMX if (!disableJmx) { diff --git a/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsBuilder.java b/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsBuilder.java index c582c32262..6eaede3ad7 100644 --- a/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsBuilder.java +++ b/instrumentation/runtime-metrics/runtime-metrics-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/RuntimeMetricsBuilder.java @@ -73,8 +73,8 @@ public final class RuntimeMetricsBuilder { /** Build and start an {@link RuntimeMetrics} with the config from this builder. */ public RuntimeMetrics build() { - Predicate featurePredicate = - jfrFeature -> enabledFeatureMap.getOrDefault(jfrFeature, jfrFeature.isDefaultEnabled()); - return new RuntimeMetrics(openTelemetry, featurePredicate, disableJmx); + Predicate featurePredicate = jfrFeature -> enabledFeatureMap.get(jfrFeature); + boolean disableJfr = !enabledFeatureMap.keySet().stream().anyMatch(featurePredicate); + return new RuntimeMetrics(openTelemetry, featurePredicate, disableJmx, disableJfr); } }