qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chuck Rolke (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-5619) [C++ broker] Add message auditing
Date Tue, 11 Mar 2014 00:58:42 GMT

    [ https://issues.apache.org/jira/browse/QPID-5619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13929816#comment-13929816

Chuck Rolke commented on QPID-5619:

Some time ago this request came up. Instead of logging/tracing individual messages we added
information for object life cycles. See https://reviews.apache.org/r/5616/diff/5/. 

The request at time time was for logging messages as they pass through the system as you are
suggesting. When I looked at that I couldn't see how to do it without clobbering system performance
(checking potentially long user and queue name lists on a per message basis; at many places)
or creating too much coupling between modules (knowing the user name from a connection when
delivering messages through any exchange). Every time I started coding a solution I had to
add args to various functions to expose the logging-test information and it got cumbersome
very quickly.

Your proposal includes many considerations. What would be the minimum subset, do you think,
that would still deliver useful tracing functionality? 


> [C++ broker] Add message auditing
> ---------------------------------
>                 Key: QPID-5619
>                 URL: https://issues.apache.org/jira/browse/QPID-5619
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker
>    Affects Versions: 0.24
>            Reporter: Pavel Moravec
>              Labels: features
> There is a reasonable request to have message enqueue/dequeue audited. It can help troubleshooting
or monitoring situations when the broker is suspected from discarding a message that was sent
to it but never received by a consumer.
> Implementation options as to be discussed in qpid users mailing list:
> 1) Key feature:
> a) where to store/send the information about new message enqueue/dequeue?
>   - store it in a configurable log-file (per queue? per broker?) - problem with format
of binary data there
>   - amend/modify replicated queues for this purpose - though replicated queues are designed
not to replicate messages that are dequeued before they have been replicated
>   - generate QMF event to be sent to "qmf.default.topic/agent.ind.event.org_apache_qpid_broker.<queue_name>.audit.<enqueue|dequeue>"
topic - note this would have to change qpid.subject to route the message properly
>   - have dedicated audit exchange for this purpose (of topic type, I expect) - again,
qpid.subject would have to be changed
> b) how to trigger message auditing:
>   - via QueueObserver (thanks Gordon for idea)
> 2) Options of auditing:
> a) audit enqueue+dequeue events only? or also acquire, release, reject?
> b) it should be possible to track only one from    enqueue | dequeue | acquire   events,
or all of them
> c) event/message should contain:
>   - timestamp
>   - original message (or just its header? or configurable?)
>   - type of event (enqueue/dequeue/..)
>   - identification of consumer acquiring/dequeueing the message (and also producer?)
> 3) Provisioning/managing auditing:
> a) have the possibility to turn on/off auditing per queue (via QMF)
> b) have some x-declare arguments for the auditing when declaring the queue?

This message was sent by Atlassian JIRA

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

View raw message