summaryrefslogtreecommitdiffstats
path: root/metrics
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-08-18 13:34:03 +0200
committergjoranv <gjoranv@gmail.com>2023-08-18 13:51:53 +0200
commit95c2e6060d431e9b281d7d69242d4779a267baa3 (patch)
treea0f578dd80e072f27793dd7bce55d93be3f01a7c /metrics
parent0e1b7684688e3a867f30dc1c5ebe901e0ca7b5b6 (diff)
Introduce BasicMetricSets and use it from Default and Vespa sets.
Diffstat (limited to 'metrics')
-rw-r--r--metrics/src/main/java/ai/vespa/metrics/set/BasicMetricSets.java23
-rw-r--r--metrics/src/main/java/ai/vespa/metrics/set/DefaultMetrics.java6
-rw-r--r--metrics/src/main/java/ai/vespa/metrics/set/VespaMetricSet.java19
3 files changed, 33 insertions, 15 deletions
diff --git a/metrics/src/main/java/ai/vespa/metrics/set/BasicMetricSets.java b/metrics/src/main/java/ai/vespa/metrics/set/BasicMetricSets.java
new file mode 100644
index 00000000000..f167e654e6f
--- /dev/null
+++ b/metrics/src/main/java/ai/vespa/metrics/set/BasicMetricSets.java
@@ -0,0 +1,23 @@
+package ai.vespa.metrics.set;
+
+import ai.vespa.metrics.ContainerMetrics;
+
+/**
+ * Defines metric sets that are meant to be used as building blocks for other metric sets.
+ *
+ * @author gjoranv
+ */
+public class BasicMetricSets {
+
+ static MetricSet containerHttpStatusMetrics() {
+ return new MetricSet.Builder("basic-container-http-status")
+ .metric(ContainerMetrics.HTTP_STATUS_1XX.rate())
+
+ .metric(ContainerMetrics.HTTP_STATUS_2XX.rate())
+ .metric(ContainerMetrics.HTTP_STATUS_3XX.rate())
+ .metric(ContainerMetrics.HTTP_STATUS_4XX.rate())
+ .metric(ContainerMetrics.HTTP_STATUS_5XX.rate())
+ .build();
+ }
+
+}
diff --git a/metrics/src/main/java/ai/vespa/metrics/set/DefaultMetrics.java b/metrics/src/main/java/ai/vespa/metrics/set/DefaultMetrics.java
index 0a19b69c852..6ef23b790cd 100644
--- a/metrics/src/main/java/ai/vespa/metrics/set/DefaultMetrics.java
+++ b/metrics/src/main/java/ai/vespa/metrics/set/DefaultMetrics.java
@@ -39,6 +39,7 @@ public class DefaultMetrics {
return new MetricSet(defaultMetricSetId,
List.of(),
List.of(defaultVespaMetricSet,
+ BasicMetricSets.containerHttpStatusMetrics(),
getContainerMetrics(),
getSearchChainMetrics(),
getDocprocMetrics(),
@@ -53,11 +54,6 @@ public class DefaultMetrics {
private static MetricSet getContainerMetrics() {
return new MetricSet.Builder("default-container")
- .metric(ContainerMetrics.HTTP_STATUS_1XX.rate())
- .metric(ContainerMetrics.HTTP_STATUS_2XX.rate())
- .metric(ContainerMetrics.HTTP_STATUS_3XX.rate())
- .metric(ContainerMetrics.HTTP_STATUS_4XX.rate())
- .metric(ContainerMetrics.HTTP_STATUS_5XX.rate())
.metric(ContainerMetrics.JDISC_GC_MS, EnumSet.of(max, average))
.metric(ContainerMetrics.MEM_HEAP_FREE.average())
.metric(ContainerMetrics.FEED_LATENCY, EnumSet.of(sum, count))
diff --git a/metrics/src/main/java/ai/vespa/metrics/set/VespaMetricSet.java b/metrics/src/main/java/ai/vespa/metrics/set/VespaMetricSet.java
index bc8567b8bf5..18c5a637eb9 100644
--- a/metrics/src/main/java/ai/vespa/metrics/set/VespaMetricSet.java
+++ b/metrics/src/main/java/ai/vespa/metrics/set/VespaMetricSet.java
@@ -17,6 +17,7 @@ import ai.vespa.metrics.VespaMetrics;
import java.util.Collections;
import java.util.EnumSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import static ai.vespa.metrics.Suffix.average;
@@ -29,7 +30,6 @@ import static ai.vespa.metrics.Suffix.ninety_nine_percentile;
import static ai.vespa.metrics.Suffix.rate;
import static ai.vespa.metrics.Suffix.sum;
import static ai.vespa.metrics.set.DefaultVespaMetrics.defaultVespaMetricSet;
-import static java.util.Collections.singleton;
/**
* Encapsulates vespa service metrics.
@@ -38,9 +38,14 @@ import static java.util.Collections.singleton;
*/
public class VespaMetricSet {
- public static final MetricSet vespaMetricSet = new MetricSet("vespa",
- getVespaMetrics(),
- singleton(defaultVespaMetricSet));
+ public static final MetricSet vespaMetricSet = createMetricSet();
+
+ private static MetricSet createMetricSet() {
+ return new MetricSet("vespa",
+ getVespaMetrics(),
+ List.of(defaultVespaMetricSet,
+ BasicMetricSets.containerHttpStatusMetrics()));
+ }
private static Set<Metric> getVespaMetrics() {
Set<Metric> metrics = new LinkedHashSet<>();
@@ -187,12 +192,6 @@ public class VespaMetricSet {
addMetric(metrics, ContainerMetrics.ATHENZ_TENANT_CERT_EXPIRY_SECONDS, EnumSet.of(max, last)); // TODO: Vespa 9: Remove last
addMetric(metrics, ContainerMetrics.CONTAINER_IAM_ROLE_EXPIRY_SECONDS.baseName());
- addMetric(metrics, ContainerMetrics.HTTP_STATUS_1XX.rate());
- addMetric(metrics, ContainerMetrics.HTTP_STATUS_2XX.rate());
- addMetric(metrics, ContainerMetrics.HTTP_STATUS_3XX.rate());
- addMetric(metrics, ContainerMetrics.HTTP_STATUS_4XX.rate());
- addMetric(metrics, ContainerMetrics.HTTP_STATUS_5XX.rate());
-
addMetric(metrics, ContainerMetrics.JDISC_HTTP_REQUEST_PREMATURELY_CLOSED.rate());
addMetric(metrics, ContainerMetrics.JDISC_HTTP_REQUEST_REQUESTS_PER_CONNECTION, EnumSet.of(sum, count, min, max, average));
addMetric(metrics, ContainerMetrics.JDISC_HTTP_REQUEST_URI_LENGTH, EnumSet.of(sum, count, max));