diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java index a8fbcf50b02..698b01c306a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java @@ -1,26 +1,44 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.admin.monitoring; -import javax.annotation.concurrent.Immutable; +import ai.vespa.metricsproxy.core.VespaMetrics; +import ai.vespa.metricsproxy.http.ValuesFetcher; + import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; +import static com.yahoo.vespa.model.admin.monitoring.AutoscalingMetrics.autoscalingMetricSet; +import static com.yahoo.vespa.model.admin.monitoring.DefaultMetrics.defaultMetricSet; +import static com.yahoo.vespa.model.admin.monitoring.NetworkMetrics.networkMetricSet; +import static com.yahoo.vespa.model.admin.monitoring.SystemMetrics.systemMetricSet; +import static com.yahoo.vespa.model.admin.monitoring.VespaMetricSet.vespaMetricSet; import static java.util.Collections.unmodifiableList; /** - * Represents an arbitrary metric consumer + * A metric consumer is a set of metrics given an id that can be requested at runtime. * - * @author trygve + * @author Trygve Berdal * @author gjoranv */ -@Immutable +// TODO: This construct seems redundant when we have metrics sets public class MetricsConsumer { + // Pre-defined consumers + public static final MetricsConsumer vespa = + consumer(VespaMetrics.vespaMetricsConsumerId.id, vespaMetricSet, systemMetricSet, networkMetricSet); + public static final MetricsConsumer defaultConsumer = + consumer(ValuesFetcher.defaultMetricsConsumerId.id, defaultMetricSet, systemMetricSet); + // Referenced from com.yahoo.vespa.hosted.provision.autoscale.NodeMetricsFetcher + public static final MetricsConsumer autoscaling = + consumer("autoscaling", autoscalingMetricSet); + private final String id; private final MetricSet metricSet; + // TODO: This shouldn't be here private final List<CloudWatch> cloudWatches = new ArrayList<>(); /** @@ -32,16 +50,16 @@ public class MetricsConsumer { this.metricSet = Objects.requireNonNull(metricSet, "A consumer must have a non-null metric set."); } - public String getId() { + public String id() { return id; } - public MetricSet getMetricSet() { return metricSet; } + public MetricSet metricSet() { return metricSet; } /** - * @return Map of metric with metric name as key + * @return map of metric with metric name as key */ - public Map<String, Metric> getMetrics() { + public Map<String, Metric> metrics() { return metricSet.getMetrics(); } @@ -53,4 +71,8 @@ public class MetricsConsumer { return unmodifiableList(cloudWatches); } + private static MetricsConsumer consumer(String id, MetricSet ... metricSets) { + return new MetricsConsumer(id, new MetricSet(id + "-consumer-metrics", List.of(), Arrays.asList(metricSets))); + } + } |