public void LogMessageReceived(ComplianceMessage message) { message.ProtocolContext.QueueStartTime = new DateTime?(DateTime.UtcNow); IPerformanceCounterAccessor counter = this.GetCounter(message.ComplianceMessageType.ToString()); if (counter != null) { counter.AddQueueEvent(QueueEvent.Enqueue); } }
public void LogMessageProcessing(ComplianceMessage message) { message.ProtocolContext.QueueEndTime = new DateTime?(DateTime.UtcNow); message.ProtocolContext.ProcessStartTime = new DateTime?(DateTime.UtcNow); IPerformanceCounterAccessor counter = this.GetCounter(message.ComplianceMessageType.ToString()); if (counter != null) { long latency = 0L; if (message.ProtocolContext.QueueStartTime != null && message.ProtocolContext.QueueEndTime != null) { latency = (long)(message.ProtocolContext.QueueEndTime.Value - message.ProtocolContext.QueueStartTime.Value).TotalMilliseconds; } counter.AddDequeueLatency(latency); counter.AddQueueEvent(QueueEvent.Dequeue); counter.AddProcessorEvent(ProcessorEvent.StartProcessing); } }