Skip to content

Commit

Permalink
Fix jmx-metrics on wildfly (#11151)
Browse files Browse the repository at this point in the history
  • Loading branch information
laurit committed Apr 30, 2024
1 parent 5737f1d commit 8de3f0e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,22 @@ public void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredSdk) {

if (config.getBoolean("otel.jmx.enabled", true)) {
JmxMetricInsight service =
JmxMetricInsight.createService(GlobalOpenTelemetry.get(), beanDiscoveryDelay(config));
JmxMetricInsight.createService(
GlobalOpenTelemetry.get(), beanDiscoveryDelay(config).toMillis());
MetricConfiguration conf = buildMetricConfiguration(config);
service.start(conf);
}
}

private static long beanDiscoveryDelay(ConfigProperties configProperties) {
Long discoveryDelay = configProperties.getLong("otel.jmx.discovery.delay");
private static Duration beanDiscoveryDelay(ConfigProperties configProperties) {
Duration discoveryDelay = configProperties.getDuration("otel.jmx.discovery.delay");
if (discoveryDelay != null) {
return discoveryDelay;
}

// If discovery delay has not been configured, have a peek at the metric export interval.
// It makes sense for both of these values to be similar.
return configProperties
.getDuration("otel.metric.export.interval", Duration.ofMinutes(1))
.toMillis();
return configProperties.getDuration("otel.metric.export.interval", Duration.ofMinutes(1));
}

private static String resourceFor(String platform) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,18 @@ 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(
() -> {
// 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.
// Issue 11143: This call initializes java.util.logging.LogManager. We should not call it
// before application has had a chance to configure custom log manager. This is needed for
// wildfly.
ManagementFactory.getPlatformMBeanServer();
},
discoveryDelay,
TimeUnit.MILLISECONDS);

exec.schedule(
new Runnable() {
Expand Down

0 comments on commit 8de3f0e

Please sign in to comment.