diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-17 16:06:30 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-22 15:03:42 +0200 |
commit | 449dbcad01d0b18531b0a2707e933cbbe60733d8 (patch) | |
tree | ff16f3ab76ae63f35de6b549300a4a0ca514d7c3 /container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java | |
parent | a4621d00adcc2fd6ece64b0ecacff05d3d20e67b (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.java | 8 |
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) { } |