Seems that both v1 and v2 of clusterstatus API already supports filtering url 
parms 
https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters
 , e.g. &collection=foo 
So can we just leave the http://localhost:8983/api/cluster API supported even 
if we add the individual sub state endpoints? And perhaps make sure that 
consumers of the full clusterstatus do use filtering knobs if they can?

Jan

> 18. sep. 2026 kl. 12:25 skrev Eric Pugh <[email protected]>:
> 
> Fair!   
> 
> I think it might be worth maybe a sample design of what you are thinking?   
> Also, I can keep plowing ahead while this happens in parallel.   Or more to 
> the point, I’m hoping Prithvi plows ahead on that JIRA ;-).
> 
> Eric
> 
>> On Sep 18, 2026, at 3:16 AM, Jan Høydahl <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Note, I'd NOT propose GraphQL in Solr. But one single REST endpoint could be 
>> inspired from the principles. Much like we had for the admin/metrics/ 
>> endpoint for years, it's not all or nothing...
>> 
>> Jan
>> 
>>> 17. sep. 2026 kl. 20:12 skrev Eric Pugh <[email protected]>:
>>> 
>>> There is a reason people like GraphQL ;-). If we had that, I would be 
>>> interested in using it…. However, since I’m interested in just getting solr 
>>> admin and Solr-operator moving forward, and getting V2 done, that is more 
>>> my focus. But yeah, GraphQL really solves a lot of issues.
>>> 
>>>> On Sep 17, 2026, at 2:03 PM, Jan Høydahl <[email protected]> 
>>>> wrote:
>>>> 
>>>> Perhaps an endpoint offering a GraphQl inspired contract would be 
>>>> practical? You declare in the request what parts and detail level of the 
>>>> state you need and get just that back. Not instead of the targeted 
>>>> endpoints but a supplement?
>>>> 
>>>> Jan Høydahl
>>>> 
>>>>> 16. sep. 2026 kl. 18:42 skrev Eric Pugh <[email protected]>:
>>>>> 
>>>>> I’ve opened https://issues.apache.org/jira/browse/SOLR-18450 
>>>>> <https://issues.apache.org/jira/browse/SOLR-18450> 
>>>>> <https://issues.apache.org/jira/browse/SOLR-18450 
>>>>> <https://issues.apache.org/jira/browse/SOLR-18450>> which is to capture 
>>>>> the idea of keeping the guts of what CLUSTERSTATUS does, under the 
>>>>> /api/cluster name space, but we remove the additional various bit of data 
>>>>> like “liveNodes” that are returned by other APIs, but still meet the 
>>>>> performance characteristics/need that Solr-operator or the Solr Admin 
>>>>> Graph view need.
>>>>> 
>>>>> I believe that Prithvi is going to move this work forward, and it may 
>>>>> replace/reuse his V@ list replicas and list shards API work.
>>>>> 
>>>>> Eric
>>>>> 
>>>>> 
>>>>>> On Sep 10, 2026, at 9:25 AM, David Smiley <[email protected] 
>>>>>> <mailto:[email protected]>> wrote:
>>>>>> 
>>>>>>> On Thu, Sep 10, 2026 at 8:13 AM Eric Pugh 
>>>>>>> <[email protected] 
>>>>>>> <mailto:[email protected]> 
>>>>>>> <mailto:[email protected]>>
>>>>>>> wrote:
>>>>>>> 
>>>>>>> Jason, you weren’t wrong! So, I dug into Solr-operator and apparently it
>>>>>>> calls CLUSTERSTATE all the time and wants ALL THE DATA…. And apparently
>>>>>>> it wants it ALL THE TIME.
>>>>>>> 
>>>>>>> 
>>>>>>> Here are the two current CLUSTERSTATUS usages in solr-operator:
>>>>>>> 
>>>>>>> 1. getReplicasForPod (controllers/solr_cluster_ops_util.go:701) — called
>>>>>>> from evictSinglePod during a managed scale-down. Fetches full 
>>>>>>> CLUSTERSTATUS
>>>>>>> (no collection param), walks every collection/shard/replica looking for 
>>>>>>> any
>>>>>>> replica whose node_name matches the pod being evicted, to determine 
>>>>>>> whether
>>>>>>> the pod is safe to terminate.
>>>>>> 
>>>>>> 
>>>>>> IMO this use-case is worthy of an endpoint. Basically a NODESTATUS /
>>>>>> CLUSTERNODESTATUS -- list stuff *on this node*. Basically a filtered
>>>>>> collection/shard/replica hiearchy to only replicas on the node.
>>>>>> 
>>>>>> Or alternatively a parameter to the collection list api to filter listed
>>>>>> collections to those with a replica on a target node.
>>>>>> 
>>>>>> 
>>>>>>> 2. GetNodeReplicaState (controllers/util/solr_update_util.go:124) — 
>>>>>>> called
>>>>>>> from handleManagedCloudRollingUpdate during a managed rolling update.
>>>>>>> Fetches full CLUSTERSTATUS plus a separate OVERSEERSTATUS call, 
>>>>>>> aggregates
>>>>>>> per-node leader/replica/active-shard counts via findSolrNodeContents, 
>>>>>>> and
>>>>>>> feeds DeterminePodsSafeToUpdate's decision about which out-of-date pod 
>>>>>>> to
>>>>>>> restart next.
>>>>>>> 
>>>>>>> Apparently, this is what the query load would look like under what I had
>>>>>>> proposed to break up cluster status:
>>>>>>> 
>>>>>>> Under the proposed hierarchy, reconstructing the same picture needs:
>>>>>>> 
>>>>>>> Requests needed to replace 1 CLUSTERSTATUS call:
>>>>>>> 
>>>>>>> GET /api/collections 1 call
>>>>>>> GET /api/collections/{c}/shards (per collection) C calls
>>>>>>> GET /api/collections/{c}/shards/{s}/replicas (per shard) C x S
>>>>>>> calls
>>>>>>> ------------------------------------------------------
>>>>>>> Total 1 + C + (C x S)
>>>>>>> 
>>>>>>> Example: C=20 collections, S=4 shards each
>>>>>>> 1 + 20 + (20 x 4) = 101 requests (vs. 1 today)
>>>>>>> 
>>>>>> 
>>>>>> Doesn't V2 have a way to return the complete collection geometry for a
>>>>>> collection? If it doesn't; it should!
>>>>>> 
>>>>>> 
>>>>>>> So, not totally sure what to do with that information?
>>>>>>> 
>>>>>>> Digging a bit more, it turns out that one thing that makes CLUSTERSTATUS
>>>>>>> not restful is the set of booleans that we pass in (
>>>>>>> https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters>
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters>>
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters>
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters
>>>>>>>  
>>>>>>> <https://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.html#clusterstatus-parameters>>>).
>>>>>>> 
>>>>>>> 
>>>>>>> I looked again at solr-operator and Solr Admin UI, and both do want the
>>>>>>> the full collections→shards→replicas tree that we have today as well as 
>>>>>>> the
>>>>>>> set of live nodes. However, neither wants aliases, roles, or cluster
>>>>>>> properties.
>>>>>>> 
>>>>>>> So, now I am thinking that maybe we update the v2 /api/cluster endpoint 
>>>>>>> to
>>>>>>> continue to return the collections→shards→replicas tree, but remove the
>>>>>>> liveNodes,clusterProperties, aliases, roles parameters, since we have
>>>>>>> existing APIs that provide that.
>>>>>>> 
>>>>>> 
>>>>>> +1.
>>>>>> And with a node filter?
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> Apparently, that redoes the math for Solr Operator and only requires one
>>>>>>> more call to /api/cluster/nodes than we have today, solving that 
>>>>>>> problem of
>>>>>>> lots of extra calls…
>>>>>>> 
>>>>>>> We may still want to add the GET /api/collections/{c}/shards and GET
>>>>>>> /api/collections/{c}/shards/{s}/replicas, but now they are much less
>>>>>>> important.
>>>>>>> 
>>>>>>> Thoughts?
>>>>>>> 
>>>>>>> 
>>>>>>> Eric
>>>>>>> 
>>>>>>> 
>>>>>> ~ David
>>>>> 
>>>>> Disclaimer
>>>>> 
>>>>> The information contained in this communication from the sender is 
>>>>> confidential. It is intended solely for use by the recipient and others 
>>>>> authorized to receive it. If you are not the recipient, you are hereby 
>>>>> notified that any disclosure, copying, distribution or taking action in 
>>>>> relation of the contents of this information is strictly prohibited and 
>>>>> may be unlawful.
>>>>> 
>>>>> This email has been scanned for viruses and malware, and may have been 
>>>>> automatically archived by Mimecast, a leader in email security and cyber 
>>>>> resilience. Mimecast integrates email defenses with brand protection, 
>>>>> security awareness training, web security, compliance and other essential 
>>>>> capabilities. Mimecast helps protect large and small organizations from 
>>>>> malicious activity, human error and technology failure; and to lead the 
>>>>> movement toward building a more resilient world. To find out more, visit 
>>>>> our website.
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>> 
>>> Disclaimer
>>> 
>>> The information contained in this communication from the sender is 
>>> confidential. It is intended solely for use by the recipient and others 
>>> authorized to receive it. If you are not the recipient, you are hereby 
>>> notified that any disclosure, copying, distribution or taking action in 
>>> relation of the contents of this information is strictly prohibited and may 
>>> be unlawful.
>>> 
>>> This email has been scanned for viruses and malware, and may have been 
>>> automatically archived by Mimecast, a leader in email security and cyber 
>>> resilience. Mimecast integrates email defenses with brand protection, 
>>> security awareness training, web security, compliance and other essential 
>>> capabilities. Mimecast helps protect large and small organizations from 
>>> malicious activity, human error and technology failure; and to lead the 
>>> movement toward building a more resilient world. To find out more, visit 
>>> our website.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected] 
>> <mailto:[email protected]>
>> For additional commands, e-mail: [email protected] 
>> <mailto:[email protected]>
> 
> Disclaimer
> 
> The information contained in this communication from the sender is 
> confidential. It is intended solely for use by the recipient and others 
> authorized to receive it. If you are not the recipient, you are hereby 
> notified that any disclosure, copying, distribution or taking action in 
> relation of the contents of this information is strictly prohibited and may 
> be unlawful.
> 
> This email has been scanned for viruses and malware, and may have been 
> automatically archived by Mimecast, a leader in email security and cyber 
> resilience. Mimecast integrates email defenses with brand protection, 
> security awareness training, web security, compliance and other essential 
> capabilities. Mimecast helps protect large and small organizations from 
> malicious activity, human error and technology failure; and to lead the 
> movement toward building a more resilient world. To find out more, visit our 
> website.

Reply via email to