summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-09-18 12:36:27 +0200
committerJon Bratseth <bratseth@gmail.com>2020-09-18 12:36:27 +0200
commit2480ea2140a14fe91722e9997eeae4d893bce3c8 (patch)
tree5c464ac96df5aa300a74d6cd0759d1b7402f3d5c
parentc5ea74aa6d3617e7edc77a6390c8c7d7a1287216 (diff)
Non-functional changes only
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/ConsumersConfigGenerator.java19
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumer.java27
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricsConsumers.java37
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/Metrics.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/CloudWatchValidator.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java11
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java6
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!");