aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main')
-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
8 files changed, 39 insertions, 64 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());
}
}