Don't open jfr recording stream when jfr metrics are not enabled (#8574)

This commit is contained in:
Lauri Tulmin 2023-05-26 12:12:40 +03:00 committed by GitHub
parent 5a5cac9b01
commit ba4eea2d82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 5 deletions

View File

@ -37,10 +37,14 @@ public final class RuntimeMetrics implements Closeable {
@SuppressWarnings("CatchingUnchecked") @SuppressWarnings("CatchingUnchecked")
RuntimeMetrics( RuntimeMetrics(
OpenTelemetry openTelemetry, Predicate<JfrFeature> featurePredicate, boolean disableJmx) { OpenTelemetry openTelemetry,
Predicate<JfrFeature> featurePredicate,
boolean disableJmx,
boolean disableJfr) {
this.openTelemetry = openTelemetry; this.openTelemetry = openTelemetry;
try { try {
jfrRuntimeMetrics = JfrRuntimeMetrics.build(openTelemetry, featurePredicate); jfrRuntimeMetrics =
disableJfr ? null : JfrRuntimeMetrics.build(openTelemetry, featurePredicate);
// Set up metrics gathered by JMX // Set up metrics gathered by JMX
if (!disableJmx) { if (!disableJmx) {

View File

@ -73,8 +73,8 @@ public final class RuntimeMetricsBuilder {
/** Build and start an {@link RuntimeMetrics} with the config from this builder. */ /** Build and start an {@link RuntimeMetrics} with the config from this builder. */
public RuntimeMetrics build() { public RuntimeMetrics build() {
Predicate<JfrFeature> featurePredicate = Predicate<JfrFeature> featurePredicate = jfrFeature -> enabledFeatureMap.get(jfrFeature);
jfrFeature -> enabledFeatureMap.getOrDefault(jfrFeature, jfrFeature.isDefaultEnabled()); boolean disableJfr = !enabledFeatureMap.keySet().stream().anyMatch(featurePredicate);
return new RuntimeMetrics(openTelemetry, featurePredicate, disableJmx); return new RuntimeMetrics(openTelemetry, featurePredicate, disableJmx, disableJfr);
} }
} }