diff options
author | gjoranv <gjoranv@gmail.com> | 2023-08-17 17:33:20 +0200 |
---|---|---|
committer | gjoranv <gjoranv@gmail.com> | 2023-08-18 13:48:32 +0200 |
commit | 0b99d97907db8567dc8a4fde354b737452916794 (patch) | |
tree | a2eb9c54b1cea8e4862dab93494dd438402674d0 /metrics | |
parent | bde146491d4c1df2a4734cbcf2235b941cde7e6c (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.java | 10 | ||||
-rw-r--r-- | metrics/src/test/java/ai/vespa/metrics/MetricSetTest.java | 13 |
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; |