From bded305a9d33e5ba66f1f7b34f267e4b0e112d79 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Fri, 16 Dec 2022 16:19:14 +0100 Subject: Rename MetricsParser.Consumer to Collector to avoid confusion. --- .../ai/vespa/metricsproxy/core/VespaMetrics.java | 30 +++++++++++----------- .../metricsproxy/service/DummyMetricsFetcher.java | 2 +- .../vespa/metricsproxy/service/MetricsParser.java | 19 +++++++------- .../metricsproxy/service/RemoteMetricsFetcher.java | 4 +-- .../vespa/metricsproxy/service/VespaService.java | 6 ++--- .../ai/vespa/metricsproxy/service/DownService.java | 3 +-- .../vespa/metricsproxy/service/DummyService.java | 6 ++--- .../metricsproxy/service/MetricsFetcherTest.java | 10 ++++---- .../metricsproxy/service/MetricsParserTest.java | 7 +++-- 9 files changed, 42 insertions(+), 45 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 ebb5d2fe8fb..641e771aafa 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 @@ -75,9 +75,9 @@ public class VespaMetrics { systemCheck.ifPresent(metricsPackets::add); MetricAggregator aggregator = new MetricAggregator(service.getDimensions()); - MetricsParser.Consumer metricsConsumer = (consumerId != null) - ? new GetServiceMetricsConsumer(metricsConsumers, aggregator, consumerId) - : new GetServiceMetricsConsumerForAll(metricsConsumers, aggregator); + MetricsParser.Collector metricsConsumer = (consumerId != null) + ? new ServiceMetricsCollector(metricsConsumers, aggregator, consumerId) + : new ServiceMetricsCollectorForAll(metricsConsumers, aggregator); service.consumeMetrics(metricsConsumer); if (! aggregator.getAggregated().isEmpty()) { @@ -118,10 +118,10 @@ 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 static abstract class GetServiceMetricsConsumerBase implements MetricsParser.Consumer { + private static abstract class ServiceMetricsCollectorBase implements MetricsParser.Collector { protected final MetricAggregator aggregator; - GetServiceMetricsConsumerBase(MetricAggregator aggregator) { + ServiceMetricsCollectorBase(MetricAggregator aggregator) { this.aggregator = aggregator; } @@ -150,18 +150,18 @@ public class VespaMetrics { } } - private static class GetServiceMetricsConsumer extends GetServiceMetricsConsumerBase { + private static class ServiceMetricsCollector extends ServiceMetricsCollectorBase { private final Map configuredMetrics; private final Set consumerId; - GetServiceMetricsConsumer(MetricsConsumers metricsConsumers, MetricAggregator aggregator, ConsumerId consumerId) { + ServiceMetricsCollector(MetricsConsumers metricsConsumers, MetricAggregator aggregator, ConsumerId consumerId) { super(aggregator); this.consumerId = Set.of(consumerId); this.configuredMetrics = metricsConsumers.getMetricsForConsumer(consumerId); } @Override - public void consume(Metric candidate) { + public void accept(Metric candidate) { ConfiguredMetric configuredMetric = configuredMetrics.get(candidate.getName()); if (configuredMetric != null) { aggregator.aggregate( @@ -170,16 +170,16 @@ public class VespaMetrics { } } - private static class GetServiceMetricsConsumerForAll extends GetServiceMetricsConsumerBase { + private static class ServiceMetricsCollectorForAll extends ServiceMetricsCollectorBase { private final MetricsConsumers metricsConsumers; - GetServiceMetricsConsumerForAll(MetricsConsumers metricsConsumers, MetricAggregator aggregator) { + ServiceMetricsCollectorForAll(MetricsConsumers metricsConsumers, MetricAggregator aggregator) { super(aggregator); this.metricsConsumers = metricsConsumers; } @Override - public void consume(Metric candidate) { + public void accept(Metric candidate) { Map> consumersByMetric = metricsConsumers.getConsumersByMetric(candidate.getName()); if (consumersByMetric != null) { consumersByMetric.keySet().forEach( @@ -234,11 +234,11 @@ public class VespaMetrics { .statusMessage("Data collected successfully"); } - private class MetricStringBuilder implements MetricsParser.Consumer { + private class MetricStringBuilder implements MetricsParser.Collector { private final StringBuilder sb = new StringBuilder(); private VespaService service; @Override - public void consume(Metric metric) { + public void accept(Metric metric) { MetricId key = metric.getName(); MetricId alias = key; @@ -272,7 +272,7 @@ public class VespaMetrics { return msb.toString(); } - private class MetricNamesBuilder implements MetricsParser.Consumer { + private class MetricNamesBuilder implements MetricsParser.Collector { private final StringBuilder bufferOn = new StringBuilder(); private final StringBuilder bufferOff = new StringBuilder(); private final ConsumerId consumer; @@ -280,7 +280,7 @@ public class VespaMetrics { this.consumer = consumer; } @Override - public void consume(Metric m) { + public void accept(Metric m) { String description = m.getDescription(); MetricId alias = MetricId.empty; boolean isForwarded = false; diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/DummyMetricsFetcher.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/DummyMetricsFetcher.java index db7caa84bac..3d5ced63ab9 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/DummyMetricsFetcher.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/DummyMetricsFetcher.java @@ -19,6 +19,6 @@ public class DummyMetricsFetcher extends RemoteMetricsFetcher { /** * Connect to remote service over http and fetch metrics */ - public void getMetrics(MetricsParser.Consumer consumer, int fetchCount) { + public void getMetrics(MetricsParser.Collector consumer, int fetchCount) { } } 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 00960e630b5..eb01e969b53 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 @@ -16,7 +16,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import java.util.stream.Stream; import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId; @@ -26,22 +25,22 @@ import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId; * @author Jo Kristian Bergum */ public class MetricsParser { - public interface Consumer { - void consume(Metric metric); + public interface Collector { + void accept(Metric metric); } private static final ObjectMapper jsonMapper = new ObjectMapper(); - public static void parse(String data, Consumer consumer) throws IOException { + public static void parse(String data, Collector consumer) throws IOException { parse(jsonMapper.createParser(data), consumer); } - static void parse(InputStream data, Consumer consumer) throws IOException { + static void parse(InputStream data, Collector consumer) throws IOException { parse(jsonMapper.createParser(data), consumer); } // Top level 'metrics' object, with e.g. 'time', 'status' and 'metrics'. - private static void parse(JsonParser parser, Consumer consumer) throws IOException { + private static void parse(JsonParser parser, Collector consumer) throws IOException { if (parser.nextToken() != JsonToken.START_OBJECT) { throw new IOException("Expected start of object, got " + parser.currentToken()); } @@ -80,7 +79,7 @@ public class MetricsParser { } // 'metrics' object with 'snapshot' and 'values' arrays - static private void parseMetrics(JsonParser parser, Consumer consumer) throws IOException { + static private void parseMetrics(JsonParser parser, Collector consumer) throws IOException { if (parser.getCurrentToken() != JsonToken.START_OBJECT) { throw new IOException("Expected start of 'metrics' object, got " + parser.currentToken()); } @@ -101,7 +100,7 @@ public class MetricsParser { } // 'values' array - static private void parseMetricValues(JsonParser parser, Instant timestamp, Consumer consumer) throws IOException { + static private void parseMetricValues(JsonParser parser, Instant timestamp, Collector consumer) throws IOException { if (parser.getCurrentToken() != JsonToken.START_ARRAY) { throw new IOException("Expected start of 'metrics:values' array, got " + parser.currentToken()); } @@ -113,7 +112,7 @@ public class MetricsParser { } // One item in the 'values' array, where each item has 'name', 'values' and 'dimensions' - static private void handleValue(JsonParser parser, Instant timestamp, Consumer consumer, + static private void handleValue(JsonParser parser, Instant timestamp, Collector consumer, Map> uniqueDimensions) throws IOException { String name = ""; String description = ""; @@ -137,7 +136,7 @@ public class MetricsParser { } } for (Map.Entry value : values) { - consumer.consume(new Metric(MetricId.toMetricId(value.getKey()), value.getValue(), timestamp, dim, description)); + consumer.accept(new Metric(MetricId.toMetricId(value.getKey()), value.getValue(), timestamp, dim, description)); } } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java index cd05945f4f1..7a0cca26afe 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java @@ -24,7 +24,7 @@ public class RemoteMetricsFetcher extends HttpMetricFetcher { /** * Connect to remote service over http and fetch metrics */ - public void getMetrics(MetricsParser.Consumer consumer, int fetchCount) { + public void getMetrics(MetricsParser.Collector consumer, int fetchCount) { try (CloseableHttpResponse response = getResponse()) { HttpEntity entity = response.getEntity(); try { @@ -37,7 +37,7 @@ public class RemoteMetricsFetcher extends HttpMetricFetcher { } catch (IOException ignored) {} } - void createMetrics(String data, MetricsParser.Consumer consumer, int fetchCount) throws IOException { + void createMetrics(String data, MetricsParser.Collector consumer, int fetchCount) throws IOException { MetricsParser.parse(data, consumer); } } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java index 666fa31b7ed..8dd8d002c84 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java @@ -137,15 +137,15 @@ public class VespaService implements Comparable { * Get the Metrics registered for this service. Metrics are fetched over HTTP * if a metric http port has been defined, otherwise from log file */ - public void consumeMetrics(MetricsParser.Consumer consumer) { + public void consumeMetrics(MetricsParser.Collector consumer) { remoteMetricsFetcher.getMetrics(consumer, metricsFetchCount.get()); metricsFetchCount.getAndIncrement(); } - private static class CollectMetrics implements MetricsParser.Consumer { + private static class CollectMetrics implements MetricsParser.Collector { private final Metrics metrics = new Metrics(); @Override - public void consume(Metric metric) { + public void accept(Metric metric) { metrics.add(metric); } } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DownService.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DownService.java index 7b76c2fbd37..ccd1351f2d5 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DownService.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DownService.java @@ -2,7 +2,6 @@ package ai.vespa.metricsproxy.service; import ai.vespa.metricsproxy.metric.HealthMetric; -import ai.vespa.metricsproxy.metric.Metrics; /** * @author gjoranv @@ -18,7 +17,7 @@ public class DownService extends VespaService { } @Override - public void consumeMetrics(MetricsParser.Consumer consumer) { + public void consumeMetrics(MetricsParser.Collector consumer) { } @Override diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java index b7b41f4a4f8..b4607bd4376 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java @@ -20,10 +20,10 @@ public class DummyService extends VespaService { } @Override - public void consumeMetrics(MetricsParser.Consumer consumer) { + public void consumeMetrics(MetricsParser.Collector consumer) { long timestamp = System.currentTimeMillis() / 1000; - consumer.consume(new Metric(MetricId.toMetricId(METRIC_1), 5 * num + 1, timestamp)); - consumer.consume(new Metric(MetricId.toMetricId(METRIC_2), 1.3 * num + 1.05, timestamp)); + consumer.accept(new Metric(MetricId.toMetricId(METRIC_1), 5 * num + 1, timestamp)); + consumer.accept(new Metric(MetricId.toMetricId(METRIC_2), 1.3 * num + 1.05, timestamp)); } } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java index 5d4512276d4..a252543ca1d 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java @@ -21,18 +21,18 @@ public class MetricsFetcherTest { private static final int port = 9; //port number is not used in this test - private static class MetricsConsumer implements MetricsParser.Consumer { + private static class MetricsCollector implements MetricsParser.Collector { Metrics metrics = new Metrics(); @Override - public void consume(Metric metric) { + public void accept(Metric metric) { metrics.add(metric); } } Metrics fetch(String data) throws IOException { RemoteMetricsFetcher fetcher = new RemoteMetricsFetcher(new DummyService(0, "dummy/id/0"), port); - MetricsConsumer consumer = new MetricsConsumer(); - fetcher.createMetrics(data, consumer, 0); - return consumer.metrics; + MetricsCollector collector = new MetricsCollector(); + fetcher.createMetrics(data, collector, 0); + return collector.metrics; } @Test diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java index df83a947565..659305a8543 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java @@ -1,6 +1,5 @@ package ai.vespa.metricsproxy.service; -import ai.vespa.metricsproxy.core.VespaMetrics; import ai.vespa.metricsproxy.metric.Metric; import org.junit.Test; @@ -16,11 +15,11 @@ import static org.junit.Assert.assertNotEquals; */ public class MetricsParserTest { - private static class MetricsConsumer implements MetricsParser.Consumer { + private static class MetricsCollector implements MetricsParser.Collector { List metrics = new ArrayList<>(); @Override - public void consume(Metric metric) { + public void accept(Metric metric) { metrics.add(metric); } } @@ -42,7 +41,7 @@ public class MetricsParserTest { @Test public void different_dimension_values_are_not_treated_as_equal() throws Exception { - var collector = new MetricsConsumer(); + var collector = new MetricsCollector(); MetricsParser.parse(metricsJson(), collector); assertEquals(2, collector.metrics.size()); assertNotEquals("Dimensions should not be equal", -- cgit v1.2.3