What is the best way to get the actual queue message count ?

I am using currently Jcsmp and sure i can use queue browser to fetch all data and check collection size but there should be an easier way to check queue size without fetching all data.

So i find this one:

But when i run towards my docker image Version 9.12.0.15 it does not work.

I ran following curl command:
curl --location --request GET ‘http://localhost:8080/SEMP/v2/config/msgVpns/default/queues/MHS_ORDER_UPDATE_DMQ?select=msgs.count

So the select=msgs.count seems not to work.
Without all works fine.

So help would be highly appreciated.
Many thanks in advance.

What is the minor SEMP version?
This can be obtained by visiting http://localhost:8080/SEMP/v2/config/help.
See the red circle in this sample:

I run the docker version. Did not check if a newer one is available:
Version 9.12.0.15

SEMP: 2.24

I tried this but maybe it is wrong. Just found some info in some threads:

According to official 2.24 online documentation, the response won’t contain “msgs.count”. You can remove the portion “?select=msgs.count” and inspect the whole output to confirm this.

As an alternative, try this URL instead:
http://localhost:8080/SEMP/v2/config/msgVpns/default/queues/MHS_ORDER_UPDATE_DMQ/msgs?count=1
And then from the response JSON, extract the path “meta.count”.

Note that you should not use “?select=meta.count” because anything under “meta” is not currently eligible for filtering.

I tried that but did not work:
That works:

that does not work:

I think it would be great to get clarity on that things. It seems that solace added or is on the way to add a collection objects to return from queue.

I can see that it does not return a collection:

The ones for whom likely msgs?count=1 could work is some people who use already some newer versions but not the public ones.

On SEMPV2 API spec it does not mention any collection:

So it feels that some solace people maybe already using some beta or internal version are confusing likely customers with features which are even not public yet.

See discussions here where someone gets back a collection object.
So best for all clients would be to try things out on latest public release.
Sure it is great to give a hint that there will be soon a new release which supports then
to return a collection and with that the message count.

Don’t use the config API. That’s for configuration. You want to use the monitor API, to view current stats / metrics.

@Aaron That made the trick. I just wonder what the collection is intended for ?
To later return the content ? Now it is empty. Is that for future to maybe return even content ?

The best now to get the count is to run query and check meta.count, right ?

No, you don’t want to use that command… that gets the details about individual messages. Just look at the queue metrics: SEMP API Reference

In the response, right at the top, it lists the queue depths:

$ curl http://localhost:8080/SEMP/v2/monitor/msgVpns/default/queues -u admin:admin
{
    "collections":[
        {
            "msgs":{
                "count":11                   <----
            },
            "priorities":{},
            "subscriptions":{},
            "txFlows":{}
        },
        {
            "msgs":{
                "count":1079                <-----
            },
            "priorities":{},
            "subscriptions":{},
            "txFlows":{}
        }
    ],
SNIP

Alternatively, if monitoring a very large number of queues, perhaps SEMPv1 might be more appropriate:

curl http://localhost:8080/SEMP -u admin:admin -X POST -d '<rpc><show><queue><name>*</name><vpn-name>default</vpn-name></queue></show></rpc>'

<rpc-reply semp-version="soltr/9_12VMR">
  <rpc>
    <show>
      <queue>
        <queues>
          <queue>
            <name>q/trans/rdp</name>
            <info>
              <message-vpn>default</message-vpn>
              <durable>true</durable>
              <type>Primary</type>
              <num-messages-spooled>11</num-messages-spooled>
              <current-spool-usage-in-mb>0.00847721</current-spool-usage-in-mb>
              <high-water-mark-in-mb>0.00847721</high-water-mark-in-mb>
              <bind-count>0</bind-count>
              <ingress-config-status>Up</ingress-config-status>
              <egress-config-status>Up</egress-config-status>
              <access-type>exclusive</access-type>
              <egress-selector-present>No</egress-selector-present>
              <quota>5000</quota>
              <topic-subscription-count>2</topic-subscription-count>
            </info>
          </queue>
SNIP

@Aaron your sample i guess gives a metric across all queues. i look for the message count of a single queue.
Is it poassible to get metric as well for single queue?