That's very strange. I can't get it to work with your URL either. However, I did get it to work with this:
$ curl -s -H "Origin: http://localhost" -u admin:admin --header "Content-type: application/json" --request POST --data '{"operation": "countMessages(java.lang.String,java.lang.String)", "mbean": "org.apache.activemq.artemis:broker=\"0.0.0.0\",component=addresses,address=\"Q.test\",subcomponent=queues,routing-type=\"anycast\",queue=\"Q.test\"", "type": "exec", "arguments": [ "", "__AMQ_CID" ] }' http://localhost:8161/console/jolokia | jq '.value | fromjson' { "carol": 10, "bob": 10, "alice": 10 } This is an alternative way to use Jolokia using a POST instead of a GET. Justin On Thu, Nov 14, 2024 at 4:56 PM Keith Herbert <kherb...@redhat.com> wrote: > I'm stumped again. I'm recreating the above using curl commands instead of > the web console and it doesn't seem like groupByProperty is being > recognized. > > apache-artemis-2.33.0.redhat-00013/bin/artemis create groupby > > > Edit groupby/etc/broker.xml with > > <address-setting match="#"> > > <management-browse-page-size>99999999</management-browse-page-size> > > ... > > </address-setting> > > > > groupby/bin/artemis start > > groupby/bin/artemis producer --url tcp://localhost:61616 --destination > Q.test --user admin --password admin --message-count 10 --clientID alice > groupby/bin/artemis producer --url tcp://localhost:61616 --destination > Q.test --user admin --password admin --message-count 10 --clientID bob > > groupby/bin/artemis producer --url tcp://localhost:61616 --destination > Q.test --user admin --password admin --message-count 10 --clientID carol > > > > curl http://admin:admin@localhost > :8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\",component=addresses,address=\"Q.test\" > -H "Origin: http://localhost" | jq .value.QueueNames > > > ["Q.test"] > > > curl http://admin:admin@localhost > :8161/console/jolokia/exec/org.apache.activemq.artemis:broker=\"0.0.0.0\",component=addresses,address=\"Q.test\",subcomponent=queues,routing-type=\"anycast\",queue=\"Q.test\"/countMessages\(java.lang.String,java.lang.String\)/\"\"/\"__AMQ_CID\"/ > -H "Origin: http://localhost" | jq .value > > > "{\"null\": 30}" > > I can see with browse() that the __AMQ_CID property is present > > curl > http://admin:admin@localhost > :8161/console/jolokia/exec/org.apache.activemq.artemis:broker=\"0.0.0.0\",component=addresses,address=\"Q.test\",subcomponent=queues,routing-type=\"anycast\",queue=\"Q.test\"/browse\(\) > <http://admin:admin@localhost > :8161/console/jolokia/exec/org.apache.activemq.artemis:broker=/% > 220.0.0.0/%22,component=addresses,address=/%22Q.test/%22,subcomponent=queues,routing-type=/%22anycast/%22,queue=/%22Q.test/%22/browse/(/) > > > -H "Origin: http://localhost" | jq .value > > *...,* > > { > > "address": "Q.test", > > "messageID": "146", > > ... > > "StringProperties": { > > "ThreadSent": "Producer ActiveMQQueue[Q.test], thread=0", > > "__AMQ_CID": "dan" > > }, > > ... > > "PropertiesText": "{ThreadSent=Producer ActiveMQQueue[Q.test], > thread=0, __AMQ_CID=dan, count=0, _AMQ_ROUTING_TYPE=1}", > > ... > > } > > Am I missing something in the Jolokia url? > > Thanks in advance, > > Keith > > On Thu, Nov 14, 2024 at 9:29 AM Keith Herbert <kherb...@redhat.com> wrote: > > > That fixed it. Thank you very much! > > > > <address-setting match="exampleQueue"> > > <management-browse-page-size>999999999</management-browse-page-size> > > </address-setting> > > > > {"barney":1000,"moe":1000,"homer":1000} > > > > > > On Thu, Nov 14, 2024 at 4:55 AM Domenico Francesco Bruscino < > > bruscin...@gmail.com> wrote: > > > >> Hi Keith, > >> > >> you are hitting the default management-browse-page-size value: 200. For > >> further details see > >> > >> > https://activemq.apache.org/components/artemis/documentation/latest/address-settings.html#address-settings > >> > >> Regards, > >> Domenico > >> > >> On Wed, 13 Nov 2024 at 22:28, Keith Herbert <kherb...@redhat.com> > wrote: > >> > >> > I'm stumped by how to use the filter for countMessages(String, String) > >> in > >> > the console view for queue operations. My goal is to get a count of > >> > messages grouped by clientID. > >> > > >> > I boot up a broker and send 3000 messages with 3 different clientIDs. > >> > > >> > bin/artemis producer --destination exampleQueue --url > >> > tcp://localhost:61616 --user admin --password password --clientID > homer > >> > bin/artemis producer --destination exampleQueue --url > >> > tcp://localhost:61616 --user admin --password password --clientID > barney > >> > bin/artemis producer --destination exampleQueue --url > >> > tcp://localhost:61616 --user admin --password password --clientID moe > >> > > >> > In the console, I get 3000 messages for messageCount(), and > >> > messageCount(String) with an empty filter. I can see the _AMQ_CID > >> property > >> > is set on the messages with browse(). > >> > > >> > "StringProperties": { > >> > "ThreadSent": "Producer ActiveMQQueue[exampleQueue], thread=0", > >> > "__AMQ_CID": "homer" > >> > }, > >> > > >> > But the result for countMessages("", "__AMQ_CID") is nonsensical. It > >> only > >> > returns {"homer":200} when I expect a list of homer, barney, and moe > >> each > >> > with 1000 messages. > >> > > >> > [image: image.png] > >> > > >> > I couldn't find any reference to this in the docs or find any > >> > examples/unit tests using the groupByProperty. Thanks for any help. > >> > > >> > > >> > > >