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>2020-09-17 16:06:30 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-09-22 15:03:42 +0200
commit449dbcad01d0b18531b0a2707e933cbbe60733d8 (patch)
treeff16f3ab76ae63f35de6b549300a4a0ca514d7c3 /container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
parenta4621d00adcc2fd6ece64b0ecacff05d3d20e67b (diff)
Add metrics for the threadpool's work queue
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.java8
1 files changed, 5 insertions, 3 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 3b2b5697e5c..771c1da82b6 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
@@ -24,17 +24,19 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
private final ThreadPoolMetric metric;
private final ProcessTerminator processTerminator;
private final long maxThreadExecutionTimeMillis;
+ private final int queueCapacity;
private final Thread metricReporter;
private final AtomicBoolean closed = new AtomicBoolean(false);
ExecutorServiceWrapper(
WorkerCompletionTimingThreadPoolExecutor wrapped,
ThreadPoolMetric metric, ProcessTerminator processTerminator,
- long maxThreadExecutionTimeMillis, String name) {
+ long maxThreadExecutionTimeMillis, String name, int queueCapacity) {
this.wrapped = wrapped;
this.metric = metric;
this.processTerminator = processTerminator;
this.maxThreadExecutionTimeMillis = maxThreadExecutionTimeMillis;
+ this.queueCapacity = queueCapacity;
metric.reportThreadPoolSize(wrapped.getPoolSize());
metric.reportActiveThreads(wrapped.getActiveCount());
@@ -44,13 +46,13 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
metricReporter.start();
}
- int queuedTasks() { return wrapped.getQueue().size(); }
-
private void reportMetrics() {
try {
while (!closed.get()) {
metric.reportThreadPoolSize(wrapped.getPoolSize());
metric.reportActiveThreads(wrapped.getActiveCount());
+ metric.reportWorkQueueSize(wrapped.getQueue().size());
+ metric.reportWorkQueueCapacity(queueCapacity);
Thread.sleep(100);
}
} catch (InterruptedException e) { }