AMQP 0.10 defines an optional message delivery property of timestamp:
description: message timestamp
(optional) The timestamp is set by the broker on arrival of the message.
I'd like to make use of this timestamp for a proposed debugging feature for message groups. See the message groups UI proposal in https://issues.apache.org/jira/browse/QPID-3346 for details of its use.
I think it would more useful to introduce a generic message timestamp capability based on the AMQP 0.10 delivery property, rather than integrate something limited only to message groups.
The broker would support the configuration of a "timestamp interval". This interval would be expressed in millisecond units, and would represent the granularity of the message timestamp. The default setting of this interval would be zero - which would be interpreted as disabled. When enabled (non-zero) the broker would maintain a time-of-day time stamp. This time stamp would be updated (resync'ed to the current time-of-day) periodically based on the configured "timestamp interval".
When enabled, each message arriving at the broker will have the "timestamp" delivery property set to the current value of the broker's time stamp.
This feature will need to be able to be turned on and off on demand, without restarting the broker. Therefore new QMF methods would be added to the broker's QMF object to support run-time configuration:
method: getMessageTimestamp - returns the configured timestamp value for the broker in milliseconds.
method: setMessageTimestamp - sets the broker's timestamp value (expressed in milliseconds).