You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Andy Taylor (Jira)" <ji...@apache.org> on 2022/12/16 11:50:00 UTC

[jira] [Updated] (ARTEMIS-3875) Improve consumer/producer metrics

     [ https://issues.apache.org/jira/browse/ARTEMIS-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Taylor updated ARTEMIS-3875:
---------------------------------
    Description: 
adding the following metrics:

 

for the Consumer and the methods listAllConsumersAsJSON on server and queue mbeans:

messagesInTransit - number of Messages out for delivery which have not yet been acknowledged
messagesInTransitSize - The total size of Messages out for delivery which have not yet been acknowledged
messagesDelivered - Number of messages delivered
messagesDeliveredSize' - total  size of messages delivered
messagesAcknowledged - total number of Messages Acknowledged
messagesAcknowledgedAwaitingCommit - Total number of messages in a transaction that are acknowledged but awaiting a commit
lastDeliveredTime - The time in milliseconds of the last message delivered
lastAcknowledgedTime - The time in milliseconds of the last message acknowledged

 

for the Producer add to the listProducers and listproducersasJSON mbean methods

msgSent - The number of messages sent by a producer
msgSizeSent - The total size of messages sent by a producer
lastUUIDSent - The UUID of the last message sent

 

The producer views are currently quite broken, different protocols show different producer info and number of producers, this is because in core we add a single producer per session which means you get 2 for every core session. We also create a producer instance for every address sent to so anonymous producers dont show as a single producer, this was also a DOS issue so we limit the no of producers we track to 100.

 

Im changing this to work as expected so every JMS producer created will show as a single producer, even anonymous producers to correctly show what producers exist at a client. The downside to changing this so much is that producer metrics will no longer be available for legacy clients.

 

Other improvements
 * Consolidate the names used by the different methods to be more consistent and referenced by static variables.
 * use statics in all the tests
 * add tests for different message count scenarios

  was:
adding the following metrics:

 

for the Consumer and the methods listAllConsumersAsJSON on server and queue mbeans:

messagesInTransit - number of Messages out for delivery which have not yet been acknowledged
messagesInTransitSize - The total size of Messages out for delivery which have not yet been acknowledged
messagesDelivered - Number of messages delivered
messagesDeliveredSize' - total  size of messages delivered
messagesAcknowledged - total number of Messages Acknowledged
messagesAcknowledgedAwaitingCommit - Total number of messages in a transaction that are acknowledged but awaiting a commit
lastDeliveredTime - The time in milliseconds of the last message delivered
lastAcknowledgedTime - The time in milliseconds of the last message acknowledged

 

for the Producer add to the listProducers and listproducersasJSON mbean methods

msgSent - The number of messages sent by a producer
msgSizeSent - The total size of messages sent by a producer
lastUUIDSent - The UUID of the last message sent

 

The producer views are currently quite broken, different protocols show different producer info and number of producers, this is because in core we add a single producer per session which means you get 2 for ecey core session. Im changing this to be a producer for every address sent to. For normal producers this will now show s single producer for every protocol, for anon producers this will show a producer for every address sent to. For DOS protection this will max on 100 producers and they will also be torn down when the session is closed.

 

Ive also move the use of targetAddressInfos into the server producer for consistencey.

 

Other improvements
 * Consolidate the names used by the different methods to be more consistent and referenced by static variables.
 * use statics in all the tests
 * add tests for different message count scenarios


> Improve consumer/producer metrics
> ---------------------------------
>
>                 Key: ARTEMIS-3875
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3875
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Andy Taylor
>            Assignee: Andy Taylor
>            Priority: Major
>          Time Spent: 7h
>  Remaining Estimate: 0h
>
> adding the following metrics:
>  
> for the Consumer and the methods listAllConsumersAsJSON on server and queue mbeans:
> messagesInTransit - number of Messages out for delivery which have not yet been acknowledged
> messagesInTransitSize - The total size of Messages out for delivery which have not yet been acknowledged
> messagesDelivered - Number of messages delivered
> messagesDeliveredSize' - total  size of messages delivered
> messagesAcknowledged - total number of Messages Acknowledged
> messagesAcknowledgedAwaitingCommit - Total number of messages in a transaction that are acknowledged but awaiting a commit
> lastDeliveredTime - The time in milliseconds of the last message delivered
> lastAcknowledgedTime - The time in milliseconds of the last message acknowledged
>  
> for the Producer add to the listProducers and listproducersasJSON mbean methods
> msgSent - The number of messages sent by a producer
> msgSizeSent - The total size of messages sent by a producer
> lastUUIDSent - The UUID of the last message sent
>  
> The producer views are currently quite broken, different protocols show different producer info and number of producers, this is because in core we add a single producer per session which means you get 2 for every core session. We also create a producer instance for every address sent to so anonymous producers dont show as a single producer, this was also a DOS issue so we limit the no of producers we track to 100.
>  
> Im changing this to work as expected so every JMS producer created will show as a single producer, even anonymous producers to correctly show what producers exist at a client. The downside to changing this so much is that producer metrics will no longer be available for legacy clients.
>  
> Other improvements
>  * Consolidate the names used by the different methods to be more consistent and referenced by static variables.
>  * use statics in all the tests
>  * add tests for different message count scenarios



--
This message was sent by Atlassian Jira
(v8.20.10#820010)