diff --git a/instrumentation/jmx-metrics/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java b/instrumentation/jmx-metrics/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java index fa44f293cc..8b0fd636be 100644 --- a/instrumentation/jmx-metrics/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java +++ b/instrumentation/jmx-metrics/library/src/main/java/io/opentelemetry/instrumentation/jmx/engine/BeanFinder.java @@ -5,6 +5,7 @@ package io.opentelemetry.instrumentation.jmx.engine; +import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -38,6 +39,13 @@ class BeanFinder { void discoverBeans(MetricConfiguration conf) { this.conf = conf; + if (!conf.isEmpty()) { + // Issue 9336: Corner case: PlatformMBeanServer will remain unitialized until a direct + // reference to it is made. This call makes sure that the PlatformMBeanServer will be in + // the set of MBeanServers reported by MBeanServerFactory. + ManagementFactory.getPlatformMBeanServer(); + } + exec.schedule( new Runnable() { @Override