From ece63062c810ab03161c735934c7f124ab353372 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 13 Dec 2021 11:25:41 +0100 Subject: Move utilitity methods to correct class and make static. --- .../ai/vespa/metricsproxy/core/VespaMetrics.java | 69 +++++++++++----------- .../vespa/metricsproxy/service/MetricsParser.java | 3 +- 2 files changed, 35 insertions(+), 37 deletions(-) (limited to 'metrics-proxy') 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> consumersByMetric; GetServiceMetricsConsumer(Map> consumersByMetric, MetricAggregator aggregator) { @@ -132,44 +132,41 @@ public class VespaMetrics { configuredMetric -> aggregator.aggregate( metricWithConfigProperties(candidate, configuredMetric, consumersByMetric))); } - } - - private Map extractDimensions(Map dimensions, List configuredDimensions) { - if ( ! configuredDimensions.isEmpty()) { - Map 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> 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 extractConsumers(Set configuredConsumers) { - Set consumers = Collections.emptySet(); - if (configuredConsumers != null) { - consumers = configuredConsumers; + private static Map extractDimensions(Map dimensions, List configuredDimensions) { + if ( ! configuredDimensions.isEmpty()) { + Map 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> 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 getConfiguredMetrics(MetricId id, Set configuredMetrics) { - return configuredMetrics.stream() - .filter(m -> m.id().equals(id)) - .collect(Collectors.toSet()); + private static Set extractConsumers(Set configuredConsumers) { + Set 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 getConfiguredMetrics(MetricId id, Set configuredMetrics) { + return configuredMetrics.stream() + .filter(m -> m.id().equals(id)) + .collect(Collectors.toSet()); + } } private Optional 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)); } } -- cgit v1.2.3