aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-04-20 09:19:18 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-04-20 09:19:22 +0200
commitec190d515b8cfae3b5640315095f3fc558487c11 (patch)
tree16e426cb9fa35eb8845b71b76bdc9b1612176aed /container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
parent4aa2d5bdecc22607b66ba5988a9812e2a3028e1f (diff)
Introduce new metrics for container threadpool
Add the new metrics to improve observability of container threadpools. These will be included in the updated container tuning docs.
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java6
1 files changed, 2 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
index 99f49f10526..6dd6b2d122e 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
@@ -43,9 +43,6 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
this.queueCapacity = threadPoolIsOnlyQ
? wrapped.getMaximumPoolSize()
: maxQueueCapacity;
-
- metric.reportThreadPoolSize(wrapped.getPoolSize());
- metric.reportActiveThreads(wrapped.getActiveCount());
reportMetrics();
metricReporter = new Thread(this::reportMetricsRegularly);
metricReporter.setName(name + "-threadpool-metric-reporter");
@@ -55,6 +52,7 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
private void reportMetrics() {
int activeThreads = wrapped.getActiveCount();
metric.reportThreadPoolSize(wrapped.getPoolSize());
+ metric.reportMaxAllowedThreadPoolSize(wrapped.getMaximumPoolSize());
metric.reportActiveThreads(activeThreads);
int queueSize = threadPoolIsOnlyQ ? activeThreads : wrapped.getQueue().size();
metric.reportWorkQueueSize(queueSize);
@@ -81,7 +79,6 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
@Override
public void shutdown() {
- super.shutdown();
synchronized (closed) {
closed.set(true);
closed.notify();
@@ -89,6 +86,7 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
try {
metricReporter.join();
} catch (InterruptedException e) {}
+ super.shutdown();
}
/**