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 14f2d79693 Fixed the issue where core thread metrics were in 
effect(#11704) (#11752)
14f2d79693 is described below

commit 14f2d79693bd9ee229fe9806ec4675bf9b76b2c0
Author: robin977 <[email protected]>
AuthorDate: Fri Mar 10 15:21:25 2023 +0800

    Fixed the issue where core thread metrics were in effect(#11704) (#11752)
    
    * Fixed the issue where core thread metrics were in effect
    
    * Fixed the issue where core thread metrics were in effect(#11704)
    
    * fix: add core thread metrics name (#11704)
    
    * fix: remove useless dependencies (#11704)
    
    ---------
    
    Co-authored-by: robin <[email protected]>
---
 .../manager/DefaultExecutorRepository.java           |  1 -
 .../main/java/org/apache/dubbo/config/Constants.java |  2 +-
 .../config/deploy/DefaultApplicationDeployer.java    |  6 ++++++
 .../metrics/collector/DefaultMetricsCollector.java   |  4 ++++
 .../collector/sample/ThreadPoolMetricsSampler.java   | 20 ++++++++++++++------
 5 files changed, 25 insertions(+), 8 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java
index fd2c9aacb2..e35617e44c 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java
@@ -108,7 +108,6 @@ public class DefaultExecutorRepository implements 
ExecutorRepository, ExtensionA
             executor = createExecutor(url);
             executors.put(executorCacheKey, executor);
         }
-
         dataStore.put(executorKey, executorCacheKey, executor);
         return executor;
     }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java
index 4615444bea..cd65fc4119 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java
@@ -149,5 +149,5 @@ public interface Constants {
 
     String SERVER_THREAD_POOL_NAME = "DubboServerHandler";
 
-
+    String CLIENT_THREAD_POOL_NAME = "DubboClientHandler";
 }
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 f605c6d09e..919265bd5a 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
@@ -1088,6 +1088,7 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
                 return;
             }
             setStarted();
+            startMetricsCollector();
             if (logger.isInfoEnabled()) {
                 logger.info(getIdentifier() + " is ready.");
             }
@@ -1105,6 +1106,11 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
         }
     }
 
+    private void startMetricsCollector(){
+        DefaultMetricsCollector collector = 
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
+        collector.registryDefaultSample();
+    }
+
     private void completeStartFuture(boolean success) {
         if (startFuture != null) {
             startFuture.complete(success);
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 ae3d378c88..059e4abca7 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
@@ -95,6 +95,10 @@ public class DefaultMetricsCollector implements 
MetricsCollector {
         applicationSampler.inc(applicationName, 
MetricsEvent.Type.APPLICATION_INFO);
     }
 
+    public void registryDefaultSample(){
+        this.threadPoolSampler.registryDefaultSampleThreadPoolExecutor();
+    }
+
     @Override
     public List<MetricSample> collect() {
         List<MetricSample> list = new ArrayList<>();
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java
 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java
index b83e111706..87e3c7d4d2 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java
@@ -37,9 +37,12 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import static 
org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY;
 import static 
org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;
 
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_METRICS_COLLECTOR_EXCEPTION;
+import static org.apache.dubbo.config.Constants.CLIENT_THREAD_POOL_NAME;
+import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_NAME;
 import static org.apache.dubbo.metrics.model.MetricsCategory.THREAD_POOL;
 
 public class ThreadPoolMetricsSampler implements MetricsSampler {
@@ -53,7 +56,6 @@ public class ThreadPoolMetricsSampler implements 
MetricsSampler {
 
     public ThreadPoolMetricsSampler(DefaultMetricsCollector collector) {
         this.collector = collector;
-        this.registryDefaultSampleThreadPoolExecutor();
     }
 
     public void addExecutors(String name, ExecutorService executorService) {
@@ -87,7 +89,7 @@ public class ThreadPoolMetricsSampler implements 
MetricsSampler {
         return list;
     }
 
-    private void registryDefaultSampleThreadPoolExecutor() {
+    public void registryDefaultSampleThreadPoolExecutor() {
         ApplicationModel applicationModel = collector.getApplicationModel();
         if (applicationModel == null) {
             return;
@@ -103,20 +105,26 @@ public class ThreadPoolMetricsSampler implements 
MetricsSampler {
         if (this.dataStore == null) {
             this.dataStore = 
collector.getApplicationModel().getExtensionLoader(DataStore.class).getDefaultExtension();
         }
+
         if (dataStore != null) {
             Map<String, Object> executors = 
dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY);
             for (Map.Entry<String, Object> entry : executors.entrySet()) {
                 ExecutorService executor = (ExecutorService) entry.getValue();
                 if (executor instanceof ThreadPoolExecutor) {
-                    this.addExecutors(entry.getKey(), executor);
+                    this.addExecutors( SERVER_THREAD_POOL_NAME + "-" + 
entry.getKey(), executor);
+                }
+            }
+            executors = 
dataStore.get(CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY);
+            for (Map.Entry<String, Object> entry : executors.entrySet()) {
+                ExecutorService executor = (ExecutorService) entry.getValue();
+                if (executor instanceof ThreadPoolExecutor) {
+                    this.addExecutors(CLIENT_THREAD_POOL_NAME + "-" + 
entry.getKey(), executor);
                 }
             }
         }
         if (this.frameworkExecutorRepository != null) {
             this.addExecutors("sharedExecutor", 
frameworkExecutorRepository.getSharedExecutor());
-            this.addExecutors("mappingRefreshingExecutor", 
frameworkExecutorRepository.getMappingRefreshingExecutor());
-            this.addExecutors("poolRouterExecutor", 
frameworkExecutorRepository.getPoolRouterExecutor());
-        }
+           }
     }
 
 }

Reply via email to