summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Aune <kkraune@users.noreply.github.com>2023-01-10 12:50:59 +0100
committerGitHub <noreply@github.com>2023-01-10 12:50:59 +0100
commit6f1bd511033c1a317eb414ddc52655f9cad8d00a (patch)
tree74bf3eea04a1b8a5391fa303c4c2403282b4ad64
parentc6191deb7c5fd1501c1d07b3cae0c8e8b9486434 (diff)
parent346baa816ebeec7b65275b904d244e64b7dfc4be (diff)
Merge pull request #25474 from vespa-engine/add-global-container-metric-enum
Add global container metric enum
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetrics.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java18
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java12
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java71
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/Suffix.java24
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/GarbageCollectionMetrics.java3
6 files changed, 122 insertions, 20 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetrics.java
index 6f4535bf4a1..dcd3c10c01b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetrics.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetrics.java
@@ -2,6 +2,8 @@
package com.yahoo.vespa.model.admin.monitoring;
+import com.yahoo.metrics.ContainerMetrics;
+
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -36,12 +38,12 @@ public class DefaultMetrics {
}
private static void addContainerMetrics(Set<Metric> metrics) {
- metrics.add(new Metric("http.status.1xx.rate"));
- metrics.add(new Metric("http.status.2xx.rate"));
- metrics.add(new Metric("http.status.3xx.rate"));
- metrics.add(new Metric("http.status.4xx.rate"));
- metrics.add(new Metric("http.status.5xx.rate"));
- metrics.add(new Metric("jdisc.gc.ms.average"));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_1XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_2XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_3XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_4XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_5XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.JDISC_GC_MS.average()));
metrics.add(new Metric("mem.heap.free.average"));
}
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 4d4670aeedc..2c4b81c6db8 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
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.admin.monitoring;
+import com.yahoo.metrics.ContainerMetrics;
+
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
@@ -197,9 +199,9 @@ public class VespaMetricSet {
metrics.add(new Metric("jdisc.gc.count.average"));
metrics.add(new Metric("jdisc.gc.count.max"));
metrics.add(new Metric("jdisc.gc.count.last"));
- metrics.add(new Metric("jdisc.gc.ms.average"));
- metrics.add(new Metric("jdisc.gc.ms.max"));
- metrics.add(new Metric("jdisc.gc.ms.last"));
+ metrics.add(new Metric(ContainerMetrics.JDISC_GC_MS.average()));
+ metrics.add(new Metric(ContainerMetrics.JDISC_GC_MS.max()));
+ metrics.add(new Metric(ContainerMetrics.JDISC_GC_MS.last()));
metrics.add(new Metric("jdisc.deactivated_containers.total.last"));
metrics.add(new Metric("jdisc.deactivated_containers.with_retained_refs.last"));
@@ -218,11 +220,11 @@ public class VespaMetricSet {
metrics.add(new Metric("jdisc.http.request.prematurely_closed.rate"));
addMetric(metrics, "jdisc.http.request.requests_per_connection", List.of("sum", "count", "min", "max", "average"));
- metrics.add(new Metric("http.status.1xx.rate"));
- metrics.add(new Metric("http.status.2xx.rate"));
- metrics.add(new Metric("http.status.3xx.rate"));
- metrics.add(new Metric("http.status.4xx.rate"));
- metrics.add(new Metric("http.status.5xx.rate"));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_1XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_2XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_3XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_4XX.rate()));
+ metrics.add(new Metric(ContainerMetrics.HTTP_STATUS_5XX.rate()));
metrics.add(new Metric("jdisc.http.request.uri_length.max"));
metrics.add(new Metric("jdisc.http.request.uri_length.sum"));
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java
index 29858644d56..7b1c12dd499 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.http.server.jetty;
+import com.yahoo.metrics.ContainerMetrics;
+
/**
* Name and dimensions for jdisc/container metrics
*
@@ -45,11 +47,11 @@ class MetricDefinitions {
static final String TOTAL_FAILED_LATENCY = "serverTotalFailedResponseLatency";
static final String TIME_TO_FIRST_BYTE = "serverTimeToFirstByte";
- static final String RESPONSES_1XX = "http.status.1xx";
- static final String RESPONSES_2XX = "http.status.2xx";
- static final String RESPONSES_3XX = "http.status.3xx";
- static final String RESPONSES_4XX = "http.status.4xx";
- static final String RESPONSES_5XX = "http.status.5xx";
+ static final String RESPONSES_1XX = ContainerMetrics.HTTP_STATUS_1XX.baseName();
+ static final String RESPONSES_2XX = ContainerMetrics.HTTP_STATUS_2XX.baseName();
+ static final String RESPONSES_3XX = ContainerMetrics.HTTP_STATUS_3XX.baseName();
+ static final String RESPONSES_4XX = ContainerMetrics.HTTP_STATUS_4XX.baseName();
+ static final String RESPONSES_5XX = ContainerMetrics.HTTP_STATUS_5XX.baseName();
static final String STARTED_MILLIS = "serverStartedMillis";
diff --git a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
new file mode 100644
index 00000000000..3df7454160c
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
@@ -0,0 +1,71 @@
+package com.yahoo.metrics;
+
+/**
+ * @author gjoranv
+ */
+public enum ContainerMetrics {
+
+ HTTP_STATUS_1XX("http.status.1xx", "Number of responses with a 1xx status"),
+ HTTP_STATUS_2XX("http.status.2xx", "Number of responses with a 2xx status"),
+ HTTP_STATUS_3XX("http.status.3xx", "Number of responses with a 3xx status"),
+ HTTP_STATUS_4XX("http.status.4xx", "Number of responses with a 4xx status"),
+ HTTP_STATUS_5XX("http.status.5xx", "Number of responses with a 5xx status"),
+ JDISC_GC_MS("jdisc.gc.ms", "Time [ms] spent in garbage collection");
+
+ private final String name;
+ private final String description;
+
+ ContainerMetrics(String name, String description) {
+ this.name = name;
+ this.description = description;
+ }
+
+ public String baseName() {
+ return name;
+ }
+
+ public String description() {
+ return description;
+ }
+
+ private String withSuffix(Suffix suffix) {
+ return baseName() + "." + suffix.suffix();
+ }
+
+ public String ninety_five_percentile() {
+ return withSuffix(Suffix.ninety_five_percentile);
+ }
+
+ public String ninety_nine_percentile() {
+ return withSuffix(Suffix.ninety_nine_percentile);
+ }
+
+ public String average() {
+ return withSuffix(Suffix.average);
+ }
+
+ public String count() {
+ return withSuffix(Suffix.count);
+ }
+
+ public String last() {
+ return withSuffix(Suffix.last);
+ }
+
+ public String max() {
+ return withSuffix(Suffix.max);
+ }
+
+ public String min() {
+ return withSuffix(Suffix.min);
+ }
+
+ public String rate() {
+ return withSuffix(Suffix.rate);
+ }
+
+ public String sum() {
+ return withSuffix(Suffix.sum);
+ }
+
+} \ No newline at end of file
diff --git a/container-core/src/main/java/com/yahoo/metrics/Suffix.java b/container-core/src/main/java/com/yahoo/metrics/Suffix.java
new file mode 100644
index 00000000000..16dfd428f6c
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/metrics/Suffix.java
@@ -0,0 +1,24 @@
+package com.yahoo.metrics;
+
+public enum Suffix {
+ ninety_five_percentile("95percentile"),
+ ninety_nine_percentile("99percentile"),
+ average("average"),
+ count("count"),
+ last("last"),
+ max("max"),
+ min("min"),
+ rate("rate"),
+ sum("sum");
+
+ private final String suffix;
+
+ Suffix(String suffix) {
+ this.suffix = suffix;
+ }
+
+ public String suffix() {
+ return suffix;
+ }
+
+}
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/GarbageCollectionMetrics.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/GarbageCollectionMetrics.java
index 879778487f5..28af6f7c56c 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/GarbageCollectionMetrics.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/GarbageCollectionMetrics.java
@@ -2,6 +2,7 @@
package com.yahoo.container.jdisc.metric;
import com.yahoo.jdisc.Metric;
+import com.yahoo.metrics.ContainerMetrics;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
@@ -19,7 +20,7 @@ import java.util.Map;
public class GarbageCollectionMetrics {
private static final String GC_COUNT = "jdisc.gc.count";
- private static final String GC_TIME = "jdisc.gc.ms";
+ private static final String GC_TIME = ContainerMetrics.JDISC_GC_MS.baseName();
private static final String DIMENSION_KEY = "gcName";
public static final Duration REPORTING_INTERVAL = Duration.ofSeconds(62);