aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-12-13 11:25:41 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2021-12-13 11:25:41 +0100
commitece63062c810ab03161c735934c7f124ab353372 (patch)
treec5ba1f7d974ac5a1fb7c87ff86f83bf50fcdc353 /metrics-proxy
parent49dd2469b58193513332f5e93133f882eea87001 (diff)
Move utilitity methods to correct class and make static.
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java69
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java3
2 files changed, 35 insertions, 37 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java
index 44eca2f57b4..9af0d0f5171 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java
@@ -118,7 +118,7 @@ public class VespaMetrics {
* In order to include a metric, it must exist in the given map of metric to consumers.
* Each returned metric will contain a collection of consumers that it should be routed to.
*/
- private class GetServiceMetricsConsumer implements MetricsParser.Consumer {
+ private static class GetServiceMetricsConsumer implements MetricsParser.Consumer {
private final MetricAggregator aggregator;
private final Map<ConfiguredMetric, Set<ConsumerId>> consumersByMetric;
GetServiceMetricsConsumer(Map<ConfiguredMetric, Set<ConsumerId>> consumersByMetric, MetricAggregator aggregator) {
@@ -132,44 +132,41 @@ public class VespaMetrics {
configuredMetric -> aggregator.aggregate(
metricWithConfigProperties(candidate, configuredMetric, consumersByMetric)));
}
- }
-
- private Map<DimensionId, String> extractDimensions(Map<DimensionId, String> dimensions, List<Dimension> configuredDimensions) {
- if ( ! configuredDimensions.isEmpty()) {
- Map<DimensionId, String> dims = new HashMap<>(dimensions);
- configuredDimensions.forEach(d -> dims.put(d.key(), d.value()));
- dimensions = Collections.unmodifiableMap(dims);
+ private static Metric metricWithConfigProperties(Metric candidate,
+ ConfiguredMetric configuredMetric,
+ Map<ConfiguredMetric, Set<ConsumerId>> consumersByMetric) {
+ Metric metric = candidate.clone();
+ metric.setDimensions(extractDimensions(candidate.getDimensions(), configuredMetric.dimension()));
+ metric.setConsumers(extractConsumers(consumersByMetric.get(configuredMetric)));
+
+ if (configuredMetric.outputname() != null && !configuredMetric.outputname().id.isEmpty())
+ metric.setName(configuredMetric.outputname());
+ return metric;
}
- return dimensions;
- }
-
- private Set<ConsumerId> extractConsumers(Set<ConsumerId> configuredConsumers) {
- Set<ConsumerId> consumers = Collections.emptySet();
- if (configuredConsumers != null) {
- consumers = configuredConsumers;
+ private static Map<DimensionId, String> extractDimensions(Map<DimensionId, String> dimensions, List<Dimension> configuredDimensions) {
+ if ( ! configuredDimensions.isEmpty()) {
+ Map<DimensionId, String> dims = new HashMap<>(dimensions);
+ configuredDimensions.forEach(d -> dims.put(d.key(), d.value()));
+ dimensions = Collections.unmodifiableMap(dims);
+ }
+ return dimensions;
}
- return consumers;
- }
-
- private Metric metricWithConfigProperties(Metric candidate,
- ConfiguredMetric configuredMetric,
- Map<ConfiguredMetric, Set<ConsumerId>> consumersByMetric) {
- Metric metric = candidate.clone();
- metric.setDimensions(extractDimensions(candidate.getDimensions(), configuredMetric.dimension()));
- metric.setConsumers(extractConsumers(consumersByMetric.get(configuredMetric)));
- if (configuredMetric.outputname() != null && !configuredMetric.outputname().id.isEmpty())
- metric.setName(configuredMetric.outputname());
- return metric;
- }
-
- /**
- * Returns all configured metrics (for any consumer) that have the given id as 'name'.
- */
- private static Set<ConfiguredMetric> getConfiguredMetrics(MetricId id, Set<ConfiguredMetric> configuredMetrics) {
- return configuredMetrics.stream()
- .filter(m -> m.id().equals(id))
- .collect(Collectors.toSet());
+ private static Set<ConsumerId> extractConsumers(Set<ConsumerId> configuredConsumers) {
+ Set<ConsumerId> consumers = Collections.emptySet();
+ if (configuredConsumers != null) {
+ consumers = configuredConsumers;
+ }
+ return consumers;
+ }
+ /**
+ * Returns all configured metrics (for any consumer) that have the given id as 'name'.
+ */
+ private static Set<ConfiguredMetric> getConfiguredMetrics(MetricId id, Set<ConfiguredMetric> configuredMetrics) {
+ return configuredMetrics.stream()
+ .filter(m -> m.id().equals(id))
+ .collect(Collectors.toSet());
+ }
}
private Optional<MetricsPacket.Builder> getSystemMetrics(VespaService service) {
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
index 079633b28a1..8157ecb72fd 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
@@ -145,6 +145,7 @@ public class MetricsParser {
}
JsonNode aggregates = metric.get("values");
+ String prefix = name + ".";
for (Iterator<?> it = aggregates.fieldNames(); it.hasNext(); ) {
String aggregator = (String) it.next();
JsonNode aggregatorValue = aggregates.get(aggregator);
@@ -155,7 +156,7 @@ public class MetricsParser {
if (value == null) {
throw new IllegalArgumentException("Value for aggregator '" + aggregator + "' is not a number");
}
- String metricName = new StringBuilder().append(name).append(".").append(aggregator).toString();
+ String metricName = prefix + aggregator;
consumer.consume(new Metric(MetricId.toMetricId(metricName), value, timestamp, dim, description));
}
}