This is an automated email from the ASF dual-hosted git repository.

mlbiscoc pushed a commit to branch feature/SOLR-17458-rebased
in repository https://gitbox.apache.org/repos/asf/solr.git

commit ebe843be934f63363484af3d6755578c3eb8304d
Author: Matthew Biscocho <[email protected]>
AuthorDate: Mon Sep 8 11:04:40 2025 -0400

    Fix test failure on AbstractBasicDistributedZkTestBase (#3620)
    
    Co-authored-by: Matthew Biscocho <[email protected]>
---
 .../cloud/AbstractBasicDistributedZkTestBase.java  | 40 ++++++++++++++--------
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git 
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
 
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
index 74a02b44988..c87715d3445 100644
--- 
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
+++ 
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
@@ -17,7 +17,9 @@
 package org.apache.solr.cloud;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -42,9 +44,9 @@ import org.apache.solr.JSONTestUtil;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.SolrRequest.SolrRequestType;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
+import org.apache.solr.client.solrj.impl.InputStreamResponseParser;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.Create;
@@ -73,6 +75,7 @@ import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.params.CollectionParams.CollectionAction;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.UpdateParams;
 import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.NamedList;
@@ -1271,7 +1274,6 @@ public abstract class AbstractBasicDistributedZkTestBase 
extends AbstractFullDis
                     .setAction(AbstractUpdateRequest.ACTION.COMMIT, true, 
true));
 
     long endCommits = getNumCommits((HttpSolrClient) clients.get(0));
-
     assertEquals(startCommits + 1L, endCommits);
   }
 
@@ -1282,22 +1284,30 @@ public abstract class 
AbstractBasicDistributedZkTestBase extends AbstractFullDis
             .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
             .withSocketTimeout(60000, TimeUnit.MILLISECONDS)
             .build()) {
-      ModifiableSolrParams params = new ModifiableSolrParams();
-      // params.set("qt", 
"/admin/metrics?prefix=UPDATE.updateHandler&registry=solr.core." +
-      // collection);
-      params.set("prefix", "UPDATE.updateHandler");
-      params.set("registry", "solr.core." + collection);
-      // use generic request to avoid extra processing of queries
       var req =
           new GenericSolrRequest(
-              SolrRequest.METHOD.GET, "/admin/metrics", SolrRequestType.ADMIN, 
params);
+              SolrRequest.METHOD.GET,
+              "/admin/metrics",
+              SolrRequest.SolrRequestType.ADMIN,
+              SolrParams.of("wt", "prometheus"));
+      req.setResponseParser(new InputStreamResponseParser("prometheus"));
+
       NamedList<Object> resp = client.request(req);
-      NamedList<?> metrics = (NamedList<?>) resp.get("metrics");
-      NamedList<?> uhandlerCat = (NamedList<?>) metrics.getVal(0);
-      @SuppressWarnings({"unchecked"})
-      Map<String, Object> commits =
-          (Map<String, Object>) 
uhandlerCat.get("UPDATE.updateHandler.commits");
-      return (Long) commits.get("count");
+      try (InputStream in = (InputStream) resp.get("stream")) {
+        String output = new String(in.readAllBytes(), StandardCharsets.UTF_8);
+        String metricName = "solr_core_update_commit_ops";
+
+        return (long)
+            output
+                .lines()
+                .filter(
+                    l ->
+                        l.startsWith(metricName)
+                            && l.contains("collection=\"" + collection + "\"")
+                            && l.contains("ops=\"commits\""))
+                .mapToDouble(s -> 
Double.parseDouble(s.substring(s.lastIndexOf(" "))))
+                .sum();
+      }
     }
   }
 

Reply via email to