Don't open jfr recording stream when jfr metrics are not enabled (#8574)
This commit is contained in:
parent
5a5cac9b01
commit
ba4eea2d82
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue