Ernest Allen created DISPATCH-911:
-------------------------------------

             Summary: New management call to return overall router network 
statistics
                 Key: DISPATCH-911
                 URL: https://issues.apache.org/jira/browse/DISPATCH-911
             Project: Qpid Dispatch
          Issue Type: Improvement
          Components: Management Agent
    Affects Versions: 1.0.0
            Reporter: Ernest Allen


We need overview charts that display:
  - the throughput rate for the router network
  - network load
  - average latency

For the throughput rate:
This is derived from the sum of router.address.deliveriesEgress for all 
addresses on all routers in the network.

For network load:
This is derived from the sum of the router.link.undeliveredCount and 
router.link.unsettledCount for all endpoint links on the network.

For the average latency:
A new attribute needs to be created. Each ingress message needs to be annotated 
with an ingress timestamp. When the message egresses the network, the total 
time 'in-flight' needs to be calculated and accumulated in the egress router's 
new router.address.deliveriesEgressDuration attribute. Average latency can be 
calculated using this statistic and the throughput statistic.

Add a new management action of "SUM" that recognizes a new application_proptery 
of filter. The SUM action sums the given attribute(s) from all routers. The 
filter determines which records are included.

To calculate load, the request looks like:
{
    body: ['undeliveredCount', 'unsettledCount'],
    application_properties: {
        operation: 'SUM',
        type: 'org.apache.qpid.dispatch.router.link',
        filter: {'linkType': 'endpoint'}
    }
}
This would return:
{
    attributeNames: ['undeliveredCount', 'unsettledCount'],
    values: [<sum of undeliveredCounts>, <sum of unsettledCounts>]
}
where the sums are for all routers for all links with linkType == endpoint 

For the throughput request:
{
    body: ['deliveriesEgress'],
    application_properties: {
        operation: 'SUM',
        type: 'org.apache.qpid.dispatch.router.address',
        filter: {'name': '*'}  // or name: <address.name> for a single address
    }
}
This would return:
{
    attributeNames: ['deliveriesEgress'],
    values: [<sum of deliveriesEgress>]
}
where the sum is for all routers for all address.names that matched the name 
given in the filter.

For the latancy request:
{
    body: ['deliveriesEgress', 'deliveriesEgressDuration'],
    application_properties: {
        operation: 'SUM',
        type: 'org.apache.qpid.dispatch.router.address',
        filter: {'name': '*'} // or name: <address.name> for a single address
    }
}
This would return:
{
    attributeNames: ['deliveriesEgress', 'deliveriesEgressDuration'],
    values: [<sum of deliveriesEgress>, <sum of deliveriesEgressDuration>]
}
where the sums are for all routers for all address.names that matched the name 
given in the filter.

Note: If annotating messages with timestamps for the deliveriesEgressDuration 
attribute is too much of a performance hit, an additional management call is 
needed to enable and disable this behavior.

Bonus: This new 'SUM' request can be used to replace the existing request that 
sums logStats accross routers. 




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to