summaryrefslogtreecommitdiffstats
path: root/metrics
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-08-17 17:33:20 +0200
committergjoranv <gjoranv@gmail.com>2023-08-18 13:48:32 +0200
commit0b99d97907db8567dc8a4fde354b737452916794 (patch)
treea2eb9c54b1cea8e4862dab93494dd438402674d0 /metrics
parentbde146491d4c1df2a4734cbcf2235b941cde7e6c (diff)
Support adding a set of suffixes for a given metric.
Diffstat (limited to 'metrics')
-rw-r--r--metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java10
-rw-r--r--metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java13
2 files changed, 19 insertions, 4 deletions
diff --git a/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java b/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java
index d502109e24e..f334690a7ca 100644
--- a/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java
+++ b/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java
@@ -1,7 +1,11 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.metrics.set;
+import ai.vespa.metrics.Suffix;
+import ai.vespa.metrics.VespaMetrics;
+
import java.util.Collection;
+import java.util.EnumSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -102,6 +106,12 @@ public class MetricSet {
return metric(new Metric(metric));
}
+ /** Adds all given suffixes of the given metric to this set. */
+ public Builder metric(VespaMetrics metric, EnumSet<Suffix> suffixes) {
+ suffixes.forEach(suffix -> metrics.add(new Metric(metric.baseName() + "." + suffix.suffix())));
+ return this;
+ }
+
public Builder metric(Metric metric) {
metrics.add(metric);
return this;
diff --git a/metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java b/metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java
index d537f51e06b..788e9e9836c 100644
--- a/metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java
+++ b/metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java
@@ -6,6 +6,7 @@ import ai.vespa.metrics.set.MetricSet;
import com.google.common.collect.Sets;
import org.junit.jupiter.api.Test;
+import java.util.EnumSet;
import java.util.List;
import java.util.Map;
@@ -65,7 +66,8 @@ public class MetricSetTest {
void it_can_be_generated_from_builder() {
MetricSet metricSet = new MetricSet.Builder("test")
.metric("metric1")
- .metric(TestMetrics.ENUM_METRIC.last())
+ .metric(TestMetrics.ENUM_METRIC1.last())
+ .metric(TestMetrics.ENUM_METRIC2, EnumSet.of(Suffix.sum, Suffix.count))
.metric(new Metric("metric2"))
.metrics(List.of(new Metric("metric3")))
.metricSet(new MetricSet.Builder("child")
@@ -75,9 +77,11 @@ public class MetricSetTest {
.build();
Map<String, Metric> metrics = metricSet.getMetrics();
- assertEquals(6, metrics.size());
+ assertEquals(8, metrics.size());
assertNotNull(metrics.get("metric1"));
- assertNotNull(metrics.get("emum-metric.last"));
+ assertNotNull(metrics.get("emum-metric1.last"));
+ assertNotNull(metrics.get("emum-metric2.sum"));
+ assertNotNull(metrics.get("emum-metric2.count"));
assertNotNull(metrics.get("metric2"));
assertNotNull(metrics.get("metric3"));
assertNotNull(metrics.get("child_metric1"));
@@ -85,7 +89,8 @@ public class MetricSetTest {
}
enum TestMetrics implements VespaMetrics {
- ENUM_METRIC("emum-metric");
+ ENUM_METRIC1("emum-metric1"),
+ ENUM_METRIC2("emum-metric2");
private final String name;