This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 206904ef3c4 SOLR-17530: Metrics: fix Prometheus response writer for
TLOG & PULL replicas (#2795)
206904ef3c4 is described below
commit 206904ef3c446cc290daacd2f77ea553bbdd33ad
Author: Matthew Biscocho <[email protected]>
AuthorDate: Fri Nov 1 23:30:11 2024 -0400
SOLR-17530: Metrics: fix Prometheus response writer for TLOG & PULL
replicas (#2795)
The new Prometheus response writer wasn't detecting TLOG or PULL replicas
properly.
---------
Co-authored-by: David Smiley <[email protected]>
---
solr/CHANGES.txt | 6 +++++
.../core/PrometheusCoreFormatterInfo.java | 2 +-
.../solr/metrics/SolrPrometheusFormatterTest.java | 31 ++++++++++++++++++++++
3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 8ed458efdb0..a5d34104a1a 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -217,6 +217,12 @@ led to the suppression of exceptions. (Andrey Bozhko)
* SOLR-11318: Introduce unit testing for AssertTool. (Eric Pugh, Jason
Gerlowski)
+================== 9.7.1 ==================
+Bug Fixes
+---------------------
+* SOLR-17530: Metrics: Thew new Prometheus response writer wasn't detecting
TLOG or PULL replicas properly.
+ (Matthew Biscocho)
+
================== 9.7.0 ==================
New Features
---------------------
diff --git
a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java
b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java
index 51f5d9765d9..baa7be5898b 100644
---
a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java
+++
b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java
@@ -33,5 +33,5 @@ public interface PrometheusCoreFormatterInfo {
CORE
}
- Pattern CLOUD_CORE_PATTERN =
Pattern.compile("^core_(.*)_(shard[0-9]+)_(replica_n[0-9]+)$");
+ Pattern CLOUD_CORE_PATTERN =
Pattern.compile("^core_(.*)_(shard[0-9]+)_(replica_.[0-9]+)$");
}
diff --git
a/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java
b/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java
index 186c83c8a91..5c62910b43f 100644
---
a/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java
+++
b/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.solr.metrics;
+import static
org.apache.solr.metrics.prometheus.core.PrometheusCoreFormatterInfo.CLOUD_CORE_PATTERN;
+
import com.codahale.metrics.Counter;
import com.codahale.metrics.Gauge;
import com.codahale.metrics.Meter;
@@ -29,6 +31,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.metrics.prometheus.SolrMetric;
import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter;
@@ -141,6 +144,34 @@ public class SolrPrometheusFormatterTest extends
SolrTestCaseJ4 {
assertEquals(expectedLabels, actual.getLabels());
}
+ @Test
+ public void testCloudCorePattern() {
+ String coreName = "core_test-core_shard2_replica_t123";
+ Matcher m = CLOUD_CORE_PATTERN.matcher(coreName);
+ assertTrue(m.find());
+ assertEquals("test-core", m.group(1));
+ assertEquals("shard2", m.group(2));
+ assertEquals("replica_t123", m.group(3));
+
+ coreName = "core_foo_bar_shard24_replica_p8";
+ m = CLOUD_CORE_PATTERN.matcher(coreName);
+ assertTrue(m.matches());
+ assertEquals("foo_bar", m.group(1));
+ assertEquals("shard24", m.group(2));
+ assertEquals("replica_p8", m.group(3));
+ }
+
+ @Test
+ public void testBadCloudCorePattern() {
+ String badCoreName = "core_solrtest_shard100_replica_xyz23";
+ Matcher m = CLOUD_CORE_PATTERN.matcher(badCoreName);
+ assertFalse(m.matches());
+
+ badCoreName = "core_solrtest_shards100_replica_x23";
+ m = CLOUD_CORE_PATTERN.matcher(badCoreName);
+ assertFalse(m.matches());
+ }
+
static class TestSolrPrometheusFormatter extends SolrPrometheusFormatter {
@Override
public void exportDropwizardMetric(Metric dropwizardMetric, String
metricName) {}