diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-09-18 12:36:27 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-09-18 12:36:27 +0200 |
commit | 2480ea2140a14fe91722e9997eeae4d893bce3c8 (patch) | |
tree | 5c464ac96df5aa300a74d6cd0759d1b7402f3d5c | |
parent | c5ea74aa6d3617e7edc77a6390c8c7d7a1287216 (diff) |
Non-functional changes only
11 files changed, 48 insertions, 74 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 5c1b8cd1b7a..2c039118cb9 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 @@ -12,8 +12,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.vespaMetricsConsumerId; - /** * Helper class to generate config for metrics consumers. * @@ -30,7 +28,8 @@ class ConsumersConfigGenerator { // 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); - allConsumers.put(vespaMetricsConsumerId, combineConsumers(defaultConsumer, allConsumers.get(vespaMetricsConsumerId))); + allConsumers.put(MetricsConsumer.vespa.id(), + combineConsumers(defaultConsumer, allConsumers.get(MetricsConsumer.vespa.id()))); return allConsumers.values().stream() .map(ConsumersConfigGenerator::toConsumerBuilder) @@ -46,18 +45,18 @@ class ConsumersConfigGenerator { */ private static MetricsConsumer combineConsumers(MetricsConsumer original, MetricsConsumer overriding) { if (overriding == null) return original; - return addMetrics(original, overriding.getMetrics()); + return addMetrics(original, overriding.metrics()); } static MetricsConsumer addMetrics(MetricsConsumer original, Map<String, Metric> metrics) { if (metrics == null) return original; - Map<String, Metric> combinedMetrics = new LinkedHashMap<>(original.getMetrics()); + Map<String, Metric> combinedMetrics = new LinkedHashMap<>(original.metrics()); metrics.forEach((name, newMetric) -> - combinedMetrics.put(name, combineMetrics(original.getMetrics().get(name), newMetric))); + combinedMetrics.put(name, combineMetrics(original.metrics().get(name), newMetric))); - return new MetricsConsumer(original.getId(), - new MetricSet(original.getMetricSet().getId(), combinedMetrics.values())); + return new MetricsConsumer(original.id(), + new MetricSet(original.metricSet().getId(), combinedMetrics.values())); } private static Metric combineMetrics(Metric original, Metric newMetric) { @@ -65,8 +64,8 @@ class ConsumersConfigGenerator { } static Consumer.Builder toConsumerBuilder(MetricsConsumer consumer) { - Consumer.Builder builder = new Consumer.Builder().name(consumer.getId()); - consumer.getMetrics().values().forEach(metric -> builder.metric(toConsumerMetricBuilder(metric))); + Consumer.Builder builder = new Consumer.Builder().name(consumer.id()); + consumer.metrics().values().forEach(metric -> builder.metric(toConsumerMetricBuilder(metric))); return builder; } 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 bdd7e128233..fbf6dcfd5eb 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 @@ -56,8 +56,6 @@ import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerClus import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster.AppDimensionNames.LEGACY_APPLICATION; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster.AppDimensionNames.SYSTEM; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster.AppDimensionNames.TENANT; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.defaultMetricsConsumer; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.vespaMetricsConsumer; import static com.yahoo.vespa.model.admin.monitoring.MetricSet.empty; /** @@ -161,10 +159,10 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC @Override public void getConfig(ConsumersConfig.Builder builder) { - var amendedVespaConsumer = addMetrics(vespaMetricsConsumer(), getAdditionalDefaultMetrics().getMetrics()); + var amendedVespaConsumer = addMetrics(MetricsConsumer.vespa, getAdditionalDefaultMetrics().getMetrics()); builder.consumer.addAll(generateConsumers(amendedVespaConsumer, getUserMetricsConsumers())); - builder.consumer.add(toConsumerBuilder(defaultMetricsConsumer())); + builder.consumer.add(toConsumerBuilder(MetricsConsumer.defaultConsumer)); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java index 966c3f760ed..66a278b3fb6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java @@ -24,7 +24,7 @@ public class CloudWatch { public String region() { return region; } public String namespace() { return namespace; } - public String consumer() { return consumer.getId(); } + public String consumer() { return consumer.id(); } public Optional<HostedAuth> hostedAuth() {return Optional.ofNullable(hostedAuth); } public Optional<SharedCredentials> sharedCredentials() {return Optional.ofNullable(sharedCredentials); } 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 672723f65b2..6731e9b2581 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,12 +1,19 @@ // 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.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; /** @@ -16,12 +23,18 @@ import static java.util.Collections.unmodifiableList; * @author gjoranv */ // TODO: This construct seems redundant when we have metrics sets -@Immutable 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); + private final String id; private final MetricSet metricSet; + // TODO: This shouldn't be here private final List<CloudWatch> cloudWatches = new ArrayList<>(); /** @@ -33,16 +46,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 */ - public Map<String, Metric> getMetrics() { + public Map<String, Metric> metrics() { return metricSet.getMetrics(); } @@ -54,4 +67,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))); + } + } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumers.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumers.java deleted file mode 100644 index 7e99dcde2ae..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumers.java +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.admin.monitoring; - -import ai.vespa.metricsproxy.core.VespaMetrics; -import ai.vespa.metricsproxy.http.ValuesFetcher; - -import java.util.Arrays; -import java.util.List; - -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; - -/** - * Built-in metric consumers - * - * @author bratseth - */ -public class MetricsConsumers { - - public static final String defaultMetricsConsumerId = ValuesFetcher.defaultMetricsConsumerId.id; - public static final String vespaMetricsConsumerId = VespaMetrics.vespaMetricsConsumerId.id; - - public static MetricsConsumer defaultMetricsConsumer() { - return consumer("default-consumer-metrics", defaultMetricSet, systemMetricSet); - } - - public static MetricsConsumer vespaMetricsConsumer() { - return consumer("vespa-consumer-metrics", vespaMetricSet, systemMetricSet, networkMetricSet); - } - - private static MetricsConsumer consumer(String id, MetricSet ... metricSets) { - return new MetricsConsumer(vespaMetricsConsumerId, new MetricSet(id, List.of(), Arrays.asList(metricSets))); - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/Metrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/Metrics.java index 1f81f16a80b..6f9e9a08aa6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/Metrics.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/Metrics.java @@ -17,7 +17,7 @@ public class Metrics { private final Map<String, MetricsConsumer> consumers = new LinkedHashMap<>(); public void addConsumer(MetricsConsumer consumer) { - consumers.put(consumer.getId(), consumer); + consumers.put(consumer.id(), consumer); } public Map<String, MetricsConsumer> getConsumers() { 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 39f890fb9c3..919830d912f 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 @@ -14,8 +14,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.defaultMetricsConsumerId; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.vespaMetricsConsumerId; import static com.yahoo.vespa.model.admin.monitoring.DefaultVespaMetrics.defaultVespaMetricSet; import static com.yahoo.vespa.model.admin.monitoring.SystemMetrics.systemMetricSet; @@ -85,11 +83,11 @@ public class MetricsBuilder { } private void throwIfIllegalConsumerId(Metrics metrics, String consumerId) { - if (consumerId.equalsIgnoreCase(vespaMetricsConsumerId) && applicationType != ApplicationType.HOSTED_INFRASTRUCTURE) + if (consumerId.equalsIgnoreCase(MetricsConsumer.vespa.id()) && applicationType != ApplicationType.HOSTED_INFRASTRUCTURE) throw new IllegalArgumentException("'Vespa' is not allowed as metrics consumer id (case is ignored.)"); - if (consumerId.equalsIgnoreCase(defaultMetricsConsumerId)) - throw new IllegalArgumentException("'" + defaultMetricsConsumerId + "' is not allowed as metrics consumer id (case is ignored.)"); + if (consumerId.equalsIgnoreCase(MetricsConsumer.defaultConsumer.id())) + throw new IllegalArgumentException("'" + MetricsConsumer.defaultConsumer.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.)"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/CloudWatchValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/CloudWatchValidator.java index 462ac39fa84..025b7875677 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/CloudWatchValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/CloudWatchValidator.java @@ -31,7 +31,7 @@ public class CloudWatchValidator extends Validator { } private List<String> consumerIds(List<MetricsConsumer> offendingConsumers) { - return offendingConsumers.stream().map(MetricsConsumer::getId).collect(toList()); + return offendingConsumers.stream().map(MetricsConsumer::id).collect(toList()); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java index be7fc19a429..71dc1564277 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java @@ -87,7 +87,7 @@ public class DedicatedAdminV4Test { MetricsConsumer consumer = model.getAdmin().getUserMetrics().getConsumers().get("slingstone"); assertNotNull(consumer); - Metric metric = consumer.getMetrics().get("foobar.count"); + Metric metric = consumer.metrics().get("foobar.count"); assertNotNull(metric); assertEquals("foobar", metric.outputName); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java index 4b4b02c8b76..36eb30073b3 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java @@ -4,6 +4,7 @@ import ai.vespa.metricsproxy.core.ConsumersConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.admin.monitoring.Metric; import com.yahoo.vespa.model.admin.monitoring.MetricSet; +import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -16,13 +17,11 @@ import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.c import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getCustomConsumer; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getModel; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.servicesWithAdminOnly; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.defaultMetricsConsumerId; import static com.yahoo.vespa.model.admin.monitoring.DefaultMetrics.defaultMetricSet; import static com.yahoo.vespa.model.admin.monitoring.DefaultVespaMetrics.defaultVespaMetricSet; 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 com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.vespaMetricsConsumerId; import static java.util.Collections.singleton; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -48,7 +47,7 @@ public class MetricsConsumersTest { public void default_public_consumer_is_set_up_for_self_hosted() { ConsumersConfig config = consumersConfigFromXml(servicesWithAdminOnly(), self_hosted); assertEquals(2, config.consumer().size()); - assertEquals(config.consumer(1).name(), defaultMetricsConsumerId); + assertEquals(MetricsConsumer.defaultConsumer.id(), config.consumer(1).name()); int numMetricsForPublicDefaultConsumer = defaultMetricSet.getMetrics().size() + numSystemMetrics; assertEquals(numMetricsForPublicDefaultConsumer, config.consumer(1).metric().size()); @@ -58,14 +57,14 @@ public class MetricsConsumersTest { public void vespa_consumer_and_default_public_consumer_is_set_up_for_hosted() { ConsumersConfig config = consumersConfigFromXml(servicesWithAdminOnly(), hosted); assertEquals(2, config.consumer().size()); - assertEquals(config.consumer(0).name(), vespaMetricsConsumerId); - assertEquals(config.consumer(1).name(), defaultMetricsConsumerId); + assertEquals(MetricsConsumer.vespa.id(), config.consumer(0).name()); + assertEquals(MetricsConsumer.defaultConsumer.id(), config.consumer(1).name()); } @Test public void vespa_consumer_is_always_present_and_has_all_vespa_metrics_and_all_system_metrics() { ConsumersConfig config = consumersConfigFromXml(servicesWithAdminOnly(), self_hosted); - assertEquals(config.consumer(0).name(), vespaMetricsConsumerId); + assertEquals(MetricsConsumer.vespa.id(), config.consumer(0).name()); assertEquals(numMetricsForVespaConsumer, config.consumer(0).metric().size()); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java index 7439c09f2c8..b6037d2614e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java @@ -14,12 +14,11 @@ import ai.vespa.metricsproxy.service.VespaServicesConfig; import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.admin.monitoring.Metric; +import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; import com.yahoo.vespa.model.test.VespaModelTester; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.TestMode.hosted; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.TestMode.self_hosted; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.defaultMetricsConsumerId; -import static com.yahoo.vespa.model.admin.monitoring.MetricsConsumers.vespaMetricsConsumerId; /** * @author gjoranv @@ -76,7 +75,8 @@ class MetricsProxyModelTester { static ConsumersConfig.Consumer getCustomConsumer(String servicesXml) { ConsumersConfig config = consumersConfigFromXml(servicesXml, self_hosted); for (ConsumersConfig.Consumer consumer : config.consumer()) { - if (! consumer.name().equals(vespaMetricsConsumerId) && ! consumer.name().equals(defaultMetricsConsumerId)) + if (! consumer.name().equals(MetricsConsumer.vespa.id()) && + ! consumer.name().equals(MetricsConsumer.defaultConsumer.id())) return consumer; } throw new RuntimeException("Custom consumer not found!"); |