You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/01/04 09:30:00 UTC

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

     [ https://issues.apache.org/jira/browse/ARTEMIS-3875?focusedWorklogId=836848&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-836848 ]

ASF GitHub Bot logged work on ARTEMIS-3875:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 04/Jan/23 09:29
            Start Date: 04/Jan/23 09:29
    Worklog Time Spent: 10m 
      Work Description: andytaylor commented on code in PR #4183:
URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1053274950


##########
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java:
##########
@@ -490,6 +489,7 @@ public void serverSend(ProtonServerReceiverContext context,
             }
          } else {
             message.setConnectionID(receiver.getSession().getConnection().getRemoteContainer());
+            message.setproducerID(receiver.getName());

Review Comment:
   Both AMQ and Openwire create this on the client side so tracking it at the broker wouldnt work. They both use UUIDs. This is how the producers are closed by both





Issue Time Tracking
-------------------

    Worklog Id:     (was: 836848)
    Time Spent: 10h 10m  (was: 10h)

> 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: 10h 10m
>  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)