diff --git a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java index 466752e0a0a..83e60ef0eb8 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java @@ -126,11 +126,9 @@ private void handleRequest(SolrParams params, BiConsumer consume consumer.accept("error", "metrics collection is disabled"); return; } - boolean compact = params.getBool(COMPACT_PARAM, true); - Set requestedRegistries = parseRegistries(params); if (PROMETHEUS_METRICS_WT.equals(params.get(CommonParams.WT))) { - response = handlePrometheusRegistry(params, requestedRegistries); + response = handlePrometheusRegistry(params); consumer.accept("metrics", response); return; } @@ -145,20 +143,19 @@ private void handleRequest(SolrParams params, BiConsumer consume return; } - response = handleDropwizardRegistry(params, requestedRegistries); + response = handleDropwizardRegistry(params); consumer.accept("metrics", response); } - private NamedList handleDropwizardRegistry( - SolrParams params, Set requestedRegistries) { + private NamedList handleDropwizardRegistry(SolrParams params) { boolean compact = params.getBool(COMPACT_PARAM, true); MetricFilter mustMatchFilter = parseMustMatchFilter(params); Predicate propertyFilter = parsePropertyFilter(params); List metricTypes = parseMetricTypes(params); List metricFilters = metricTypes.stream().map(MetricType::asMetricFilter).collect(Collectors.toList()); - metricTypes.stream().map(MetricType::asMetricFilter).collect(Collectors.toList()); + Set requestedRegistries = parseRegistries(params); NamedList response = new SimpleOrderedMap<>(); for (String registryName : requestedRegistries) { @@ -182,8 +179,7 @@ private NamedList handleDropwizardRegistry( return response; } - private NamedList handlePrometheusRegistry( - SolrParams params, Set requestedRegistries) { + private NamedList handlePrometheusRegistry(SolrParams params) { NamedList response = new SimpleOrderedMap<>(); boolean compact = params.getBool(COMPACT_PARAM, true); MetricFilter mustMatchFilter = parseMustMatchFilter(params); @@ -191,9 +187,10 @@ private NamedList handlePrometheusRegistry( List metricTypes = parseMetricTypes(params); List metricFilters = metricTypes.stream().map(MetricType::asMetricFilter).collect(Collectors.toList()); + Set requestedRegistries = parseRegistries(params); + for (String registryName : requestedRegistries) { MetricRegistry dropWizardRegistry = metricManager.registry(registryName); - // Currently only export Solr Core registries if (registryName.startsWith("solr.core")) { MetricUtils.toPrometheusRegistry( diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusRegistry.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusRegistry.java index fda69a25c3b..e7d5cacb7ad 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusRegistry.java +++ b/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusRegistry.java @@ -38,32 +38,6 @@ public Map copyOfGauges() { return ImmutableMap.copyOf(metricGauges); } - private Counter getMetricCounter(String metricName) { - return metricCounters.get(metricName); - } - - private Gauge getMetricGauge(String metricName) { - return metricGauges.get(metricName); - } - - private void registerCounter(String metricName, String... labelNames) { - Counter counter = - io.prometheus.metrics.core.metrics.Counter.builder() - .name(metricName) - .labelNames(labelNames) - .register(prometheusRegistry); - metricCounters.put(metricName, counter); - } - - private void registerGauge(String metricName, String... labelNames) { - Gauge gauge = - io.prometheus.metrics.core.metrics.Gauge.builder() - .name(metricName) - .labelNames(labelNames) - .register(prometheusRegistry); - metricGauges.put(metricName, gauge); - } - public void exportMeter( Meter dropwizardMetric, String prometheusMetricName, Map labelsMap) { if (!copyOfCounters().containsKey(prometheusMetricName)) { @@ -76,7 +50,7 @@ public void exportMeter( .inc(dropwizardMetric.getCount()); } - protected void exportCounter( + public void exportCounter( com.codahale.metrics.Counter dropwizardMetric, String prometheusMetricName, Map labelsMap) { @@ -134,4 +108,30 @@ public void exportGauge( } } } + + private Counter getMetricCounter(String metricName) { + return metricCounters.get(metricName); + } + + private Gauge getMetricGauge(String metricName) { + return metricGauges.get(metricName); + } + + private void registerCounter(String metricName, String... labelNames) { + Counter counter = + io.prometheus.metrics.core.metrics.Counter.builder() + .name(metricName) + .labelNames(labelNames) + .register(prometheusRegistry); + metricCounters.put(metricName, counter); + } + + private void registerGauge(String metricName, String... labelNames) { + Gauge gauge = + io.prometheus.metrics.core.metrics.Gauge.builder() + .name(metricName) + .labelNames(labelNames) + .register(prometheusRegistry); + metricGauges.put(metricName, gauge); + } }