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 collect() { List 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 executors = dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY); for (Map.Entry 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 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()); - } + } } }