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 34c5bbf713 Support customize collector sync period (#13140)
34c5bbf713 is described below

commit 34c5bbf7137a496b1fd1f5adb2f290e999be91ff
Author: Albumen Kevin <[email protected]>
AuthorDate: Thu Sep 28 11:09:06 2023 +0800

    Support customize collector sync period (#13140)
---
 .../org/apache/dubbo/common/constants/MetricsConstants.java |  2 ++
 .../main/java/org/apache/dubbo/config/MetricsConfig.java    | 13 +++++++++++++
 .../dubbo/metrics/report/AbstractMetricsReporter.java       |  7 +++++--
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/MetricsConstants.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/MetricsConstants.java
index 4c4437d427..e891fe9ad3 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/MetricsConstants.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/MetricsConstants.java
@@ -51,6 +51,8 @@ public interface MetricsConstants {
 
     String ENABLE_COLLECTOR_SYNC_KEY = "enable.collector.sync";
 
+    String COLLECTOR_SYNC_PERIOD_KEY = "collector.sync.period";
+
     String AGGREGATION_COLLECTOR_KEY = "aggregation";
 
     String AGGREGATION_ENABLED_KEY = "aggregation.enabled";
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 98d05209a5..d1cf0c1d43 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
@@ -71,6 +71,11 @@ public class MetricsConfig extends AbstractConfig {
      */
     private Boolean enableCollectorSync;
 
+    /**
+     * Collector sync period.
+     */
+    private Integer collectorSyncPeriod;
+
     /**
      * @deprecated After metrics config is refactored.
      * This parameter should no longer use and will be deleted in the future.
@@ -248,6 +253,14 @@ public class MetricsConfig extends AbstractConfig {
         this.enableCollectorSync = enableCollectorSync;
     }
 
+    public Integer getCollectorSyncPeriod() {
+        return collectorSyncPeriod;
+    }
+
+    public void setCollectorSyncPeriod(Integer collectorSyncPeriod) {
+        this.collectorSyncPeriod = collectorSyncPeriod;
+    }
+
     public Boolean getUseGlobalRegistry() {
         return useGlobalRegistry;
     }
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/report/AbstractMetricsReporter.java
 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/report/AbstractMetricsReporter.java
index 13c8cecdc4..70033771c5 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/report/AbstractMetricsReporter.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/report/AbstractMetricsReporter.java
@@ -53,6 +53,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_METRICS_COLLECTOR_EXCEPTION;
+import static 
org.apache.dubbo.common.constants.MetricsConstants.COLLECTOR_SYNC_PERIOD_KEY;
 import static 
org.apache.dubbo.common.constants.MetricsConstants.ENABLE_COLLECTOR_SYNC_KEY;
 import static 
org.apache.dubbo.common.constants.MetricsConstants.ENABLE_JVM_METRICS_KEY;
 
@@ -77,7 +78,7 @@ public abstract class AbstractMetricsReporter implements 
MetricsReporter {
     private ScheduledExecutorService collectorSyncJobExecutor = null;
 
     private static final int DEFAULT_SCHEDULE_INITIAL_DELAY = 5;
-    private static final int DEFAULT_SCHEDULE_PERIOD = 3;
+    private static final int DEFAULT_SCHEDULE_PERIOD = 60;
 
     protected AbstractMetricsReporter(URL url, ApplicationModel 
applicationModel) {
         this.url = url;
@@ -143,9 +144,11 @@ public abstract class AbstractMetricsReporter implements 
MetricsReporter {
     private void scheduleMetricsCollectorSyncJob() {
         boolean enableCollectorSync = 
url.getParameter(ENABLE_COLLECTOR_SYNC_KEY, true);
         if (enableCollectorSync) {
+            int collectSyncPeriod = 
url.getParameter(COLLECTOR_SYNC_PERIOD_KEY, DEFAULT_SCHEDULE_PERIOD);
+
             NamedThreadFactory threadFactory = new 
NamedThreadFactory("metrics-collector-sync-job", true);
             collectorSyncJobExecutor = Executors.newScheduledThreadPool(1, 
threadFactory);
-            collectorSyncJobExecutor.scheduleWithFixedDelay(this::refreshData, 
DEFAULT_SCHEDULE_INITIAL_DELAY, DEFAULT_SCHEDULE_PERIOD, TimeUnit.SECONDS);
+            collectorSyncJobExecutor.scheduleWithFixedDelay(this::refreshData, 
DEFAULT_SCHEDULE_INITIAL_DELAY, collectSyncPeriod, TimeUnit.SECONDS);
         }
     }
 

Reply via email to