aboutsummaryrefslogtreecommitdiffstats
path: root/metrics
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-08-17 15:23:04 +0200
committergjoranv <gjoranv@gmail.com>2023-08-18 13:48:32 +0200
commitd1ec754bceb31c541619fde39ecb5c6e1bcccbfe (patch)
tree80f46e36511151238c8dace2d661326d7f584204 /metrics
parent5c51af58b98c987975e3db62d9ed09d72b8188d8 (diff)
Add Builder to MetricSet class
Diffstat (limited to 'metrics')
-rw-r--r--metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java34
1 files changed, 34 insertions, 0 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 b8409fb7663..d502109e24e 100644
--- a/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java
+++ b/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java
@@ -88,4 +88,38 @@ public class MetricSet {
return metricMap;
}
+
+ public static class Builder {
+ private final String id;
+ private final Set<Metric> metrics = new LinkedHashSet<>();
+ private final Set<MetricSet> children = new LinkedHashSet<>();
+
+ public Builder(String id) {
+ this.id = id;
+ }
+
+ public Builder metric(String metric) {
+ return metric(new Metric(metric));
+ }
+
+ public Builder metric(Metric metric) {
+ metrics.add(metric);
+ return this;
+ }
+
+ public Builder metrics(Collection<Metric> metrics) {
+ this.metrics.addAll(metrics);
+ return this;
+ }
+
+ public Builder metricSet(MetricSet child) {
+ children.add(child);
+ return this;
+ }
+
+ public MetricSet build() {
+ return new MetricSet(id, metrics, children);
+ }
+ }
+
}