aboutsummaryrefslogtreecommitdiffstats
path: root/metrics
diff options
context:
space:
mode:
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);
+ }
+ }
+
}