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-06-03 17:07:55 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-06-03 17:10:39 +0200
commiteb07ffe8bd6cd9bce0db51f78826d88adb968a07 (patch)
tree2159aec55d5dfd318ea04304c0220280119366d8 /container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java
parent3166f8a263d9a64773a4edf2aa31f0229b5c8568 (diff)
Add thread pool name as dimension to metric values
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.java22
1 files changed, 7 insertions, 15 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 f7b0a22120a..1144d1ebbf6 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
@@ -3,7 +3,6 @@ package com.yahoo.container.handler.threadpool;
import com.google.common.util.concurrent.ForwardingExecutorService;
import com.yahoo.container.protect.ProcessTerminator;
-import com.yahoo.jdisc.Metric;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
@@ -22,7 +21,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
class ExecutorServiceWrapper extends ForwardingExecutorService {
private final WorkerCompletionTimingThreadPoolExecutor wrapped;
- private final Metric metric;
+ private final ThreadPoolMetric metric;
private final ProcessTerminator processTerminator;
private final long maxThreadExecutionTimeMillis;
private final Thread metricReporter;
@@ -30,16 +29,15 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
ExecutorServiceWrapper(
WorkerCompletionTimingThreadPoolExecutor wrapped,
- Metric metric, ProcessTerminator processTerminator,
+ ThreadPoolMetric metric, ProcessTerminator processTerminator,
long maxThreadExecutionTimeMillis) {
this.wrapped = wrapped;
this.metric = metric;
this.processTerminator = processTerminator;
this.maxThreadExecutionTimeMillis = maxThreadExecutionTimeMillis;
- metric.set(MetricNames.THREAD_POOL_SIZE, wrapped.getPoolSize(), null);
- metric.set(MetricNames.ACTIVE_THREADS, wrapped.getActiveCount(), null);
- metric.add(MetricNames.REJECTED_REQUEST, 0, null);
+ metric.reportThreadPoolSize(wrapped.getPoolSize());
+ metric.reportActiveThreads(wrapped.getActiveCount());
metricReporter = new Thread(this::reportMetrics);
metricReporter.setDaemon(true);
metricReporter.start();
@@ -48,8 +46,8 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
private final void reportMetrics() {
try {
while (!closed.get()) {
- metric.set(MetricNames.THREAD_POOL_SIZE, wrapped.getPoolSize(), null);
- metric.set(MetricNames.ACTIVE_THREADS, wrapped.getActiveCount(), null);
+ metric.reportThreadPoolSize(wrapped.getPoolSize());
+ metric.reportActiveThreads(wrapped.getActiveCount());
Thread.sleep(100);
}
} catch (InterruptedException e) { }
@@ -72,7 +70,7 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
try {
super.execute(command);
} catch (RejectedExecutionException e) {
- metric.add(MetricNames.REJECTED_REQUEST, 1, null);
+ metric.reportRejectRequest();
long timeSinceLastReturnedThreadMillis = System.currentTimeMillis() - wrapped.lastThreadAssignmentTimeMillis;
if (timeSinceLastReturnedThreadMillis > maxThreadExecutionTimeMillis)
processTerminator.logAndDie("No worker threads have been available for " +
@@ -84,11 +82,5 @@ class ExecutorServiceWrapper extends ForwardingExecutorService {
@Override
protected ExecutorService delegate() { return wrapped; }
- private static final class MetricNames {
- private static final String REJECTED_REQUEST = "serverRejectedRequests";
- private static final String THREAD_POOL_SIZE = "serverThreadPoolSize";
- private static final String ACTIVE_THREADS = "serverActiveThreads";
- }
-
}