diff options
author | Kristian Aune <kkraune@users.noreply.github.com> | 2023-01-11 11:19:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-11 11:19:49 +0100 |
commit | 46bfe2e07ca1b4d907ea1d9caaf829762bc15ace (patch) | |
tree | f7457c0f3f9eb080e7cf65983d5c8b86284e0d6e | |
parent | e420f57dc74c53fb64bb6bf60b5180676b070b50 (diff) | |
parent | 585e11b507f58b796945fa654a8d252447f05877 (diff) |
Merge pull request #25486 from vespa-engine/kkraune/jdisc-thread_pool-metrics
Move metric definitions to ContainerMetrics.java
4 files changed, 45 insertions, 20 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java index 090340352d3..cb42f877841 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java @@ -148,13 +148,13 @@ public class VespaMetricSet { { List<String> suffixes = List.of("sum", "count", "last", "min", "max"); - addMetric(metrics, "jdisc.thread_pool.unhandled_exceptions", suffixes); - addMetric(metrics, "jdisc.thread_pool.work_queue.capacity", suffixes); - addMetric(metrics, "jdisc.thread_pool.work_queue.size", suffixes); - addMetric(metrics, "jdisc.thread_pool.rejected_tasks", suffixes); - addMetric(metrics, "jdisc.thread_pool.size", suffixes); - addMetric(metrics, "jdisc.thread_pool.max_allowed_size", suffixes); - addMetric(metrics, "jdisc.thread_pool.active_threads", suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_UNHANDLED_EXCEPTIONS.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_CAPACITY.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_SIZE.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_REJECTED_TASKS.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_SIZE.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_MAX_ALLOWED_SIZE.baseName(), suffixes); + addMetric(metrics, ContainerMetrics.JDISC_THREAD_POOL_ACTIVE_THREADS.baseName(), suffixes); addMetric(metrics, ContainerMetrics.JETTY_THREADPOOL_MAX_THREADS.baseName(), suffixes); addMetric(metrics, ContainerMetrics.JETTY_THREADPOOL_MIN_THREADS.baseName(), suffixes); diff --git a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ThreadPoolMetric.java b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ThreadPoolMetric.java index 1c7a1cc4ebe..3f53b05dd6a 100644 --- a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ThreadPoolMetric.java +++ b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ThreadPoolMetric.java @@ -2,6 +2,7 @@ package com.yahoo.container.handler.threadpool; import com.yahoo.jdisc.Metric; +import com.yahoo.metrics.ContainerMetrics; import java.util.Map; @@ -24,28 +25,36 @@ class ThreadPoolMetric { void reportRejectRequest() { metric.add("serverRejectedRequests", 1L, defaultContext); - metric.add("jdisc.thread_pool.rejected_tasks", 1L, defaultContext); + metric.add(ContainerMetrics.JDISC_THREAD_POOL_REJECTED_TASKS.baseName(), 1L, defaultContext); } void reportThreadPoolSize(long size) { metric.set("serverThreadPoolSize", size, defaultContext); - metric.set("jdisc.thread_pool.size", size, defaultContext); + metric.set(ContainerMetrics.JDISC_THREAD_POOL_SIZE.baseName(), size, defaultContext); } - void reportMaxAllowedThreadPoolSize(long size) { metric.set("jdisc.thread_pool.max_allowed_size", size, defaultContext); } + void reportMaxAllowedThreadPoolSize(long size) { + metric.set(ContainerMetrics.JDISC_THREAD_POOL_MAX_ALLOWED_SIZE.baseName(), size, defaultContext); + } void reportActiveThreads(long threads) { metric.set("serverActiveThreads", threads, defaultContext); - metric.set("jdisc.thread_pool.active_threads", threads, defaultContext); + metric.set(ContainerMetrics.JDISC_THREAD_POOL_ACTIVE_THREADS.baseName(), threads, defaultContext); + } + + void reportWorkQueueCapacity(long capacity) { + metric.set(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_CAPACITY.baseName(), capacity, defaultContext); + } + + void reportWorkQueueSize(long size) { + metric.set(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_SIZE.baseName(), size, defaultContext); } - void reportWorkQueueCapacity(long capacity) { metric.set("jdisc.thread_pool.work_queue.capacity", capacity, defaultContext); } - void reportWorkQueueSize(long size) { metric.set("jdisc.thread_pool.work_queue.size", size, defaultContext); } void reportUnhandledException(Throwable t) { Metric.Context ctx = metric.createContext(Map.of( THREAD_POOL_NAME_DIMENSION, threadPoolName, "exception", t.getClass().getSimpleName())); - metric.set("jdisc.thread_pool.unhandled_exceptions", 1L, ctx); + metric.set(ContainerMetrics.JDISC_THREAD_POOL_UNHANDLED_EXCEPTIONS.baseName(), 1L, ctx); } } diff --git a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java index ec30b19fd00..ba160873c4f 100644 --- a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java +++ b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java @@ -12,6 +12,21 @@ public enum ContainerMetrics { HTTP_STATUS_5XX("http.status.5xx", Unit.RESPONSE, "Number of responses with a 5xx status"), JDISC_GC_MS("jdisc.gc.ms", Unit.MILLISECOND, "Time spent in garbage collection"), + JDISC_THREAD_POOL_UNHANDLED_EXCEPTIONS("jdisc.thread_pool.unhandled_exceptions", Unit.THREAD, + "Number of exceptions thrown by tasks"), + JDISC_THREAD_POOL_WORK_QUEUE_CAPACITY("jdisc.thread_pool.work_queue.capacity", Unit.THREAD, + "Capacity of the task queue"), + JDISC_THREAD_POOL_WORK_QUEUE_SIZE("jdisc.thread_pool.work_queue.size", Unit.THREAD, + "Size of the task queue"), + JDISC_THREAD_POOL_REJECTED_TASKS("jdisc.thread_pool.rejected_tasks", Unit.THREAD, + "Number of tasks rejected by the thread pool"), + JDISC_THREAD_POOL_SIZE("jdisc.thread_pool.size", Unit.THREAD, + "Size of the thread pool"), + JDISC_THREAD_POOL_MAX_ALLOWED_SIZE("jdisc.thread_pool.max_allowed_size", Unit.THREAD, + "The maximum allowed number of threads in the pool"), + JDISC_THREAD_POOL_ACTIVE_THREADS("jdisc.thread_pool.active_threads", Unit.THREAD, + "Number of threads that are active"), + JETTY_THREADPOOL_MAX_THREADS("jdisc.http.jetty.threadpool.thread.max", Unit.THREAD, "Configured maximum number of threads"), JETTY_THREADPOOL_MIN_THREADS("jdisc.http.jetty.threadpool.thread.min", Unit.THREAD, diff --git a/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java b/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java index 4639022d767..606f8052670 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java @@ -6,6 +6,7 @@ import com.yahoo.concurrent.Receiver; import com.yahoo.container.protect.ProcessTerminator; import com.yahoo.container.test.MetricMock; import com.yahoo.jdisc.Metric; +import com.yahoo.metrics.ContainerMetrics; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -81,10 +82,10 @@ public class ContainerThreadPoolImplTest { assertEquals(1200, executor.getQueue().remainingCapacity()); assertEquals(7, metrics.innvocations().size()); assertEquals(3L, metrics.innvocations().get("serverThreadPoolSize").val); - assertEquals(3L, metrics.innvocations().get("jdisc.thread_pool.max_allowed_size").val); + assertEquals(3L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_MAX_ALLOWED_SIZE.baseName()).val); assertEquals(0L, metrics.innvocations().get("serverActiveThreads").val); - assertEquals(1200L, metrics.innvocations().get("jdisc.thread_pool.work_queue.capacity").val); - assertEquals(0L, metrics.innvocations().get("jdisc.thread_pool.work_queue.size").val); + assertEquals(1200L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_CAPACITY.baseName()).val); + assertEquals(0L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_SIZE.baseName()).val); } @Test @@ -95,10 +96,10 @@ public class ContainerThreadPoolImplTest { assertEquals(0, executor.getQueue().remainingCapacity()); assertEquals(7, metrics.innvocations().size()); assertEquals(64L, metrics.innvocations().get("serverThreadPoolSize").val); - assertEquals(64L, metrics.innvocations().get("jdisc.thread_pool.max_allowed_size").val); + assertEquals(64L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_MAX_ALLOWED_SIZE.baseName()).val); assertEquals(0L, metrics.innvocations().get("serverActiveThreads").val); - assertEquals(64L, metrics.innvocations().get("jdisc.thread_pool.work_queue.capacity").val); - assertEquals(0L, metrics.innvocations().get("jdisc.thread_pool.work_queue.size").val); + assertEquals(64L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_CAPACITY.baseName()).val); + assertEquals(0L, metrics.innvocations().get(ContainerMetrics.JDISC_THREAD_POOL_WORK_QUEUE_SIZE.baseName()).val); } @Test |