This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new 0d430985a3 Metrics collection is enabled by default (#11955)
0d430985a3 is described below

commit 0d430985a3efe88438e49ad3f935983f8bb59499
Author: wxbty <[email protected]>
AuthorDate: Wed Mar 29 20:33:46 2023 +0800

    Metrics collection is enabled by default (#11955)
    
    * default enable
    
    * fix ci
    
    * add Prometheus judge
    
    * fix
    
    * revert default
    
    ---------
    
    Co-authored-by: x-shadow-man <[email protected]>
---
 .../config/deploy/DefaultApplicationDeployer.java  | 37 +++++++++++++++-------
 .../collector/AggregateMetricsCollector.java       |  4 +--
 2 files changed, 28 insertions(+), 13 deletions(-)

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 047a093c55..4220ba5fec 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
@@ -363,18 +363,33 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
     private void initMetricsReporter() {
         DefaultMetricsCollector collector =
             
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
-        MetricsConfig metricsConfig = configManager.getMetrics().orElse(null);
+        Optional<MetricsConfig> configOptional = configManager.getMetrics();
+
         // TODO compatible with old usage of metrics, remove protocol check 
after new metrics is ready for use.
-        if (metricsConfig != null && 
PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol())) {
-            collector.setCollectEnabled(true);
-            collector.collectApplication(applicationModel);
-            
collector.setThreadpoolCollectEnabled(Optional.ofNullable(metricsConfig.getEnableThreadpoolMetrics()).orElse(true));
-            String protocol = metricsConfig.getProtocol();
-            MetricsReporterFactory metricsReporterFactory = 
getExtensionLoader(MetricsReporterFactory.class).getAdaptiveExtension();
-            MetricsReporter metricsReporter = 
metricsReporterFactory.createMetricsReporter(metricsConfig.toUrl());
-            metricsReporter.init();
-            applicationModel.getBeanFactory().registerBean(metricsReporter);
+        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
+            return;
+        }
+
+        MetricsConfig metricsConfig = configOptional.orElse(new 
MetricsConfig(applicationModel));
+        if (StringUtils.isBlank(metricsConfig.getProtocol())) {
+            metricsConfig.setProtocol(PROTOCOL_PROMETHEUS);
         }
+        collector.setCollectEnabled(true);
+        collector.collectApplication(applicationModel);
+        
collector.setThreadpoolCollectEnabled(Optional.ofNullable(metricsConfig.getEnableThreadpoolMetrics()).orElse(true));
+        MetricsReporterFactory metricsReporterFactory = 
getExtensionLoader(MetricsReporterFactory.class).getAdaptiveExtension();
+        MetricsReporter metricsReporter = 
metricsReporterFactory.createMetricsReporter(metricsConfig.toUrl());
+        metricsReporter.init();
+        applicationModel.getBeanFactory().registerBean(metricsReporter);
     }
 
 
@@ -1122,7 +1137,7 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
 
     private void startMetricsCollector() {
         DefaultMetricsCollector collector = 
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
-        if(Objects.nonNull(collector) && 
collector.isThreadpoolCollectEnabled()) {
+        if (Objects.nonNull(collector) && 
collector.isThreadpoolCollectEnabled()) {
             collector.registryDefaultSample();
         }
     }
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
index 513420a9b1..0207a06941 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
@@ -66,7 +66,7 @@ public class AggregateMetricsCollector implements 
MetricsCollector, MetricsListe
         this.applicationModel = applicationModel;
         ConfigManager configManager = 
applicationModel.getApplicationConfigManager();
         MetricsConfig config = configManager.getMetrics().orElse(null);
-        if (config != null && config.getAggregation() != null && 
Boolean.TRUE.equals(config.getAggregation().getEnabled())) {
+        if (config != null && config.getAggregation() != null && 
(config.getAggregation().getEnabled() == null || 
Boolean.TRUE.equals(config.getAggregation().getEnabled()))) {
             // only registered when aggregation is enabled.
             registerListener();
 
@@ -94,7 +94,7 @@ public class AggregateMetricsCollector implements 
MetricsCollector, MetricsListe
 
 
     private void onRequestEvent(MethodEvent event) {
-        MethodMetric metric =  event.getMethodMetric();
+        MethodMetric metric = event.getMethodMetric();
 
         String type = event.getType();
 

Reply via email to