From c22db81a8bd26fb1a1cd0e41b04cb0bbe421cec5 Mon Sep 17 00:00:00 2001 From: songxiaosheng Date: Fri, 19 May 2023 15:30:18 +0800 Subject: [PATCH] :bug: fix prometheus init failed when start (#12349) * :bug: fix prometheus init failed when start * :bug: fix prometheus init failed when start * :bug: fix prometheus init failed when start --- .../deploy/DefaultApplicationDeployer.java | 25 +++++++------- .../DefaultApplicationDeployerTest.java | 33 +++++++++++++++++++ .../collector/DefaultMetricsCollector.java | 14 ++++---- 3 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java index ef6306eac9..0e8fc3dd86 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java @@ -38,6 +38,7 @@ import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.threadpool.manager.ExecutorRepository; import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository; import org.apache.dubbo.common.utils.ArrayUtils; +import org.apache.dubbo.common.utils.ClassUtils; import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.ApplicationConfig; @@ -373,19 +374,9 @@ public class DefaultApplicationDeployer extends AbstractDeployer configOptional = configManager.getMetrics(); // TODO compatible with old usage of metrics, remove protocol check after new metrics is ready for use. - boolean importMetricsPrometheus; // Use package references instead of config checks - try { - Class.forName("io.micrometer.prometheus.PrometheusConfig"); - importMetricsPrometheus = true; - } catch (ClassNotFoundException e) { - importMetricsPrometheus = false; - } - - if (!importMetricsPrometheus) { - //use old metrics + if (!isSupportPrometheus()) { return; } - MetricsConfig metricsConfig = configOptional.orElse(new MetricsConfig(applicationModel)); if (StringUtils.isBlank(metricsConfig.getProtocol())) { metricsConfig.setProtocol(PROTOCOL_PROMETHEUS); @@ -399,6 +390,18 @@ public class DefaultApplicationDeployer extends AbstractDeployer protected void init(RtStatComposite rtStatComposite) { super.init(rtStatComposite); rtStatComposite.init(MetricsPlaceValue.of(CommonConstants.PROVIDER, MetricsLevel.METHOD), - MetricsPlaceValue.of(CommonConstants.CONSUMER, MetricsLevel.METHOD)); + MetricsPlaceValue.of(CommonConstants.CONSUMER, MetricsLevel.METHOD)); } }); super.setEventMulticaster(new DefaultSubDispatcher(this)); @@ -146,17 +146,17 @@ public class DefaultMetricsCollector extends CombMetricsCollector public List sample() { List samples = new ArrayList<>(); this.getCount(MetricsEvent.Type.APPLICATION_INFO).filter(e -> !e.isEmpty()) - .ifPresent(map -> map.forEach((k, v) -> - samples.add(new CounterMetricSample<>(APPLICATION_METRIC_INFO.getName(), - APPLICATION_METRIC_INFO.getDescription(), - k.getTags(), APPLICATION, v))) - ); + .ifPresent(map -> map.forEach((k, v) -> + samples.add(new CounterMetricSample<>(APPLICATION_METRIC_INFO.getName(), + APPLICATION_METRIC_INFO.getDescription(), + k.getTags(), APPLICATION, v))) + ); return samples; } @Override protected void countConfigure( - MetricsCountSampleConfigurer sampleConfigure) { + MetricsCountSampleConfigurer sampleConfigure) { sampleConfigure.configureMetrics(configure -> new ApplicationMetric(applicationModel)); } };