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());
- }
+ }
}
}