diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-09-09 11:56:20 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-09-09 11:56:20 +0200 |
commit | 63b42ada65ef4c9ca7903660c9ce265fadc67359 (patch) | |
tree | 50e35e98e1bbd05c285270b3fc5423ffb4d7588f /config-model/src/main/java/com | |
parent | 0bd1f4da69f10cfe5f4de2585a7973240e9b42f5 (diff) |
Add vespa-cloud metric consumer
Diffstat (limited to 'config-model/src/main/java/com')
4 files changed, 12 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/ConsumersConfigGenerator.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/ConsumersConfigGenerator.java index b0ed04f3013..f7effbc3bc7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/ConsumersConfigGenerator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/ConsumersConfigGenerator.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.model.admin.metricsproxy; import ai.vespa.metricsproxy.core.ConsumersConfig.Consumer; +import com.yahoo.config.provision.SystemName; import com.yahoo.vespa.model.admin.monitoring.Metric; import com.yahoo.vespa.model.admin.monitoring.MetricSet; import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; @@ -24,7 +25,8 @@ class ConsumersConfigGenerator { * @return a list of consumer builders (a mapping from consumer to its metrics) */ static List<Consumer.Builder> generateConsumers(MetricsConsumer defaultConsumer, - Map<String, MetricsConsumer> userConsumers) { + Map<String, MetricsConsumer> userConsumers, + SystemName systemName) { // Normally, the user given consumers should not contain VESPA_CONSUMER_ID, // but it's allowed for some internally used applications. var allConsumers = new LinkedHashMap<>(userConsumers); @@ -32,6 +34,9 @@ class ConsumersConfigGenerator { combineConsumers(defaultConsumer, allConsumers.get(MetricsConsumer.vespa.id()))); allConsumers.put(MetricsConsumer.autoscaling.id(), MetricsConsumer.autoscaling); + if (systemName.isPublic()) + allConsumers.put(MetricsConsumer.vespaCloud.id(), MetricsConsumer.vespaCloud); + return allConsumers.values().stream() .map(ConsumersConfigGenerator::toConsumerBuilder) .collect(Collectors.toList()); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index e504bee0a30..0b2d0936235 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -158,7 +158,7 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC @Override public void getConfig(ConsumersConfig.Builder builder) { var amendedVespaConsumer = addMetrics(MetricsConsumer.vespa, getAdditionalDefaultMetrics().getMetrics()); - builder.consumer.addAll(generateConsumers(amendedVespaConsumer, getUserMetricsConsumers())); + builder.consumer.addAll(generateConsumers(amendedVespaConsumer, getUserMetricsConsumers(), getZone().system())); builder.consumer.add(toConsumerBuilder(MetricsConsumer.defaultConsumer)); } 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 6344e462e0f..b513c5d3021 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 @@ -35,6 +35,8 @@ public class MetricsConsumer { // Referenced from com.yahoo.vespa.hosted.provision.autoscale.NodeMetricsFetcher public static final MetricsConsumer autoscaling = consumer("autoscaling", autoscalingMetricSet); + public static final MetricsConsumer vespaCloud = + consumer("vespa-cloud", vespaMetricSet, systemMetricSet, networkMetricSet); private final String id; private final MetricSet metricSet; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java index 3efc50a7445..ac56143732d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java @@ -92,6 +92,9 @@ public class MetricsBuilder { if (consumerId.equalsIgnoreCase(MetricsConsumer.autoscaling.id())) throw new IllegalArgumentException("'" + MetricsConsumer.autoscaling.id() + " is not allowed as metrics consumer id (case is ignored.)"); + if (consumerId.equalsIgnoreCase(MetricsConsumer.vespaCloud.id())) + throw new IllegalArgumentException("'" + MetricsConsumer.vespaCloud.id() + " is not allowed as metrics consumer id (case is ignored.)"); + if (metrics.hasConsumerIgnoreCase(consumerId)) throw new IllegalArgumentException("'" + consumerId + "' is used as id for two metrics consumers (case is ignored.)"); } |