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 a804501d26 add switch configuration for thread pool indicator burying 
point) (#11788) (#11923)
a804501d26 is described below

commit a804501d267a2e4c9d3d2775e8c456f441426d57
Author: robin977 <[email protected]>
AuthorDate: Wed Mar 29 10:14:43 2023 +0800

    add switch configuration for thread pool indicator burying point) (#11788) 
(#11923)
    
    * adding the reject task indicator for thread pool burying point(#11706)
    
    * adding the reject task indicator for thread pool burying point(#11706)
    
    * dd switch configuration for thread pool indicator burying point (#11788)
    
    * revert code (add switch configuration for thread pool indicator burying 
point) (#11788)
    
    * Revert "revert code (add switch configuration for thread pool indicator 
burying point) (#11788)"
    
    This reverts commit 3370acc63fc5e4edc382c5ef280d147e6d8f53db.
    
    * add switch configuration for thread pool indicator burying point (#11788)
    
    * add switch configuration for thread pool indicator burying point (#11788)
    
    * add switch configuration for thread pool indicator burying point (#11788)
    
    * add metrics on by default (#11788)
    
    ---------
    
    Co-authored-by: robin <[email protected]>
---
 .../main/java/org/apache/dubbo/config/MetricsConfig.java   | 14 +++++++++++++-
 .../dubbo/config/deploy/DefaultApplicationDeployer.java    |  5 ++++-
 .../src/main/resources/META-INF/dubbo.xsd                  | 10 ++++++++--
 .../dubbo/metrics/collector/DefaultMetricsCollector.java   |  9 +++++++++
 .../prometheus/PrometheusMetricsThreadPoolTest.java        |  6 +++++-
 5 files changed, 39 insertions(+), 5 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/MetricsConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/MetricsConfig.java
index d915f53d6b..7d0273039b 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/MetricsConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/MetricsConfig.java
@@ -41,6 +41,11 @@ public class MetricsConfig extends AbstractConfig {
      */
     private Boolean enableJvmMetrics;
 
+    /**
+     * Enable threadpool metrics when collecting.
+     */
+    private Boolean enableThreadpoolMetrics;
+
     /**
      * Enable registry metrics.
      */
@@ -175,5 +180,12 @@ public class MetricsConfig extends AbstractConfig {
     public void setEnableMetadataMetrics(Boolean enableMetadataMetrics) {
         this.enableMetadataMetrics = enableMetadataMetrics;
     }
-}
 
+    public Boolean getEnableThreadpoolMetrics() {
+        return enableThreadpoolMetrics;
+    }
+
+    public void setEnableThreadpoolMetrics(Boolean enableThreadpoolMetrics) {
+        this.enableThreadpoolMetrics = enableThreadpoolMetrics;
+    }
+}
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 5481b9def2..047a093c55 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
@@ -368,6 +368,7 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
         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());
@@ -1121,7 +1122,9 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
 
     private void startMetricsCollector() {
         DefaultMetricsCollector collector = 
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
-        collector.registryDefaultSample();
+        if(Objects.nonNull(collector) && 
collector.isThreadpoolCollectEnabled()) {
+            collector.registryDefaultSample();
+        }
     }
 
     private void completeStartFuture(boolean success) {
diff --git 
a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd 
b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
index e1f272f402..922cc94281 100644
--- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
+++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
@@ -1058,13 +1058,19 @@
             </xsd:annotation>
         </xsd:attribute>
 
-        <xsd:attribute name="enable-registry-metrics" type="xsd:boolean" 
default="false">
+        <xsd:attribute name="enable-threadpool-metrics" type="xsd:boolean" 
default="true">
+            <xsd:annotation>
+                <xsd:documentation><![CDATA[ Enable threadpool metrics when 
collecting. ]]></xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+
+        <xsd:attribute name="enable-registry-metrics" type="xsd:boolean" 
default="true">
             <xsd:annotation>
                 <xsd:documentation><![CDATA[ Enable registry metrics when 
collecting. ]]></xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
 
-        <xsd:attribute name="enable-metadata-metrics" type="xsd:boolean" 
default="false">
+        <xsd:attribute name="enable-metadata-metrics" type="xsd:boolean" 
default="true">
             <xsd:annotation>
                 <xsd:documentation><![CDATA[ Enable metadata metrics when 
collecting. ]]></xsd:documentation>
             </xsd:annotation>
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/DefaultMetricsCollector.java
 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/DefaultMetricsCollector.java
index 56a0d5f9db..9123f3936d 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/DefaultMetricsCollector.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/DefaultMetricsCollector.java
@@ -41,6 +41,7 @@ public class DefaultMetricsCollector implements 
MetricsCollector {
 
     private boolean collectEnabled = false;
 
+    private volatile boolean threadpoolCollectEnabled=false;
     private final SimpleMetricsEventMulticaster eventMulticaster;
     private final MethodMetricsSampler methodSampler = new 
MethodMetricsSampler(this);
     private final ThreadPoolMetricsSampler threadPoolSampler = new 
ThreadPoolMetricsSampler(this);
@@ -82,6 +83,14 @@ public class DefaultMetricsCollector implements 
MetricsCollector {
         return collectEnabled;
     }
 
+    public boolean isThreadpoolCollectEnabled() {
+        return threadpoolCollectEnabled;
+    }
+
+    public void setThreadpoolCollectEnabled(boolean threadpoolCollectEnabled) {
+        this.threadpoolCollectEnabled = threadpoolCollectEnabled;
+    }
+
     public MethodMetricsSampler getMethodSampler() {
         return this.methodSampler;
     }
diff --git 
a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java
 
b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java
index bb242ae35c..db36ee8da9 100644
--- 
a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java
@@ -93,6 +93,7 @@ public class PrometheusMetricsThreadPoolTest {
         metricsConfig.setPrometheus(prometheusConfig);
         metricsConfig.setEnableJvmMetrics(false);
         metricsCollector.setCollectEnabled(true);
+        metricsConfig.setEnableThreadpoolMetrics(true);
         metricsCollector.collectApplication(applicationModel);
         PrometheusMetricsReporter reporter = new 
PrometheusMetricsReporter(metricsConfig.toUrl(), applicationModel);
         reporter.init();
@@ -102,7 +103,9 @@ public class PrometheusMetricsThreadPoolTest {
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
         }
-        metricsCollector.registryDefaultSample();
+        if(metricsConfig.getEnableThreadpoolMetrics()) {
+            metricsCollector.registryDefaultSample();
+        }
         try (CloseableHttpClient client = HttpClients.createDefault()) {
             HttpGet request = new HttpGet("http://localhost:"; + port + 
"/metrics");
             CloseableHttpResponse response = client.execute(request);
@@ -117,6 +120,7 @@ public class PrometheusMetricsThreadPoolTest {
         }
     }
 
+
     private void exportHttpServer(PrometheusMetricsReporter reporter, int 
port) {
         try {
             HttpServer prometheusExporterHttpServer = HttpServer.create(new 
InetSocketAddress(port), 0);

Reply via email to