You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2024/05/22 03:10:25 UTC

(dubbo) branch 3.2 updated: fix: not initialize MetricsReporter if not support prometheus (#14225)

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 b12b23cbf0 fix: not initialize MetricsReporter  if not support prometheus (#14225)
b12b23cbf0 is described below

commit b12b23cbf0698dba96cb2e6b75e4ee272ed25523
Author: δΈ€ <78...@users.noreply.github.com>
AuthorDate: Wed May 22 11:10:19 2024 +0800

    fix: not initialize MetricsReporter  if not support prometheus (#14225)
    
    * fix: not initialize if not support prometheus
    
    * add method isImportPrometheus test
    
    ---------
    
    Co-authored-by: yuanhongbo <yu...@cai-inc.com>
---
 .../dubbo/config/deploy/DefaultApplicationDeployer.java      |  3 +++
 .../dubbo/config/deploy/DefaultApplicationDeployerTest.java  | 12 ++++++++++++
 2 files changed, 15 insertions(+)

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 f58c9c2b24..820cb1e4d7 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
@@ -382,6 +382,9 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
         Optional<MetricsConfig> configOptional = configManager.getMetrics();
         // If no specific metrics type is configured and there is no Prometheus dependency in the dependencies.
         MetricsConfig metricsConfig = configOptional.orElse(new MetricsConfig(applicationModel));
+        if (PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol()) && !isSupportPrometheus()) {
+            return;
+        }
         if (StringUtils.isBlank(metricsConfig.getProtocol())) {
             metricsConfig.setProtocol(isSupportPrometheus() ? PROTOCOL_PROMETHEUS : PROTOCOL_DEFAULT);
         }
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java
index e424fb34b2..1cd39c7da8 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java
@@ -17,10 +17,13 @@
 package org.apache.dubbo.config.deploy;
 
 import org.apache.dubbo.common.utils.Assert;
+import org.apache.dubbo.config.MetricsConfig;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
 import org.junit.jupiter.api.Test;
 
+import static org.apache.dubbo.common.constants.MetricsConstants.PROTOCOL_PROMETHEUS;
+
 class DefaultApplicationDeployerTest {
 
     @Test
@@ -29,4 +32,13 @@ class DefaultApplicationDeployerTest {
                 new DefaultApplicationDeployer(ApplicationModel.defaultModel()).isSupportPrometheus();
         Assert.assertTrue(supportPrometheus, "DefaultApplicationDeployer.isSupportPrometheus() should return true");
     }
+
+    @Test
+    void isImportPrometheus() {
+        MetricsConfig metricsConfig = new MetricsConfig();
+        metricsConfig.setProtocol("prometheus");
+        boolean importPrometheus = PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol())
+                && !DefaultApplicationDeployer.isSupportPrometheus();
+        Assert.assertTrue(!importPrometheus, " should return false");
+    }
 }