/// <summary>
        /// Monitorables the sender gateway_ sent message.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        private void MonitorableSenderGatewaySentMessage(object sender, MessageGatewayEventHandlerArgs args)
        {
            var messageType = new MessageType
                                  {
                                      FullName = args.MessageType
                                  };

            _messageTypes.GetOrAdd(messageType, messageType);
        }
        /// <summary>
        /// Called when [message received].
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="Mrwesb.Core.Monitoring.MonitorEventArgs"/> instance containing the event data.</param>
        private void OnMessageBusReceived(object sender, MessageGatewayEventHandlerArgs args)
        {
            var time = DateTime.UtcNow.Subtract(args.CreatedAt);
            var messages = Interlocked.Increment(ref _messageProcessedCounter);

            CalculateAverage(messages, (float)time.TotalMilliseconds);

            Logger.Debug(String.Format("OnMessageBusReceived => CreatedAt {0}", args.CreatedAt));
            Logger.Debug(String.Format("                     => NumberMessagesProcessed  {0}", messages));
            Logger.Debug(String.Format("                     => Sustract  {0}", time.TotalMilliseconds));
            Logger.Debug(String.Format("                     => Latency  {0}", _lastLatency));
        }
 /// <summary>
 /// Called when [monitorable sender gateway on sent message].
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="args">The args.</param>
 private void OnMonitorableSenderGatewayOnSentMessage(object sender, MessageGatewayEventHandlerArgs args)
 {
     Interlocked.Add(ref _outputSize, args.Size);
 }