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")
RuntimeMetrics(
OpenTelemetry openTelemetry, Predicate<JfrFeature> featurePredicate, boolean disableJmx) {
OpenTelemetry openTelemetry,
Predicate<JfrFeature> 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) {

View File

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