private void OnTimer(object state) { Debug.WriteLine("Timer fired at " + DateTime.UtcNow.ToString("mm.ss.ffffff")); lock (this) // Lock the EventCounterGroup { if (_eventSource.IsEnabled()) { DateTime now = DateTime.UtcNow; TimeSpan elapsed = now - _timeStampSinceCollectionStarted; foreach (var eventCounter in _eventCounters) { EventCounterPayload payload = eventCounter.GetEventCounterPayload(); payload.IntervalSec = (float)elapsed.TotalSeconds; _eventSource.Write("EventCounters", new EventSourceOptions() { Level = EventLevel.LogAlways }, new PayloadType(payload)); } _timeStampSinceCollectionStarted = now; } else { DisposeTimer(); } } }
private void OnTimer(object state) { if (_eventSource.IsEnabled()) { DateTime now = DateTime.Now; TimeSpan elapsed = now - _timeStampSinceCollectionStarted; lock (_pollingTimer) { foreach (var eventCounter in _eventCounters) { EventCounterPayload payload = eventCounter.GetEventCounterPayload(); payload.IntervalSec = (float)elapsed.TotalSeconds; _eventSource.Write("EventCounters", new EventSourceOptions() { Level = EventLevel.LogAlways }, new { Payload = payload }); } _timeStampSinceCollectionStarted = now; } } else { _pollingTimer.Dispose(); _pollingTimer = null; EventCounterGroup.s_eventCounterGroups[_eventSourceIndex] = null; } }
internal override void WritePayload(float intervalSec) { lock (MyLock) { Flush(); EventCounterPayload payload = new EventCounterPayload(); payload.Name = _name; payload.Count = _count; payload.IntervalSec = intervalSec; if (0 < _count) { payload.Mean = _sum / _count; payload.StandardDeviation = (float)Math.Sqrt(_sumSquared / _count - _sum * _sum / _count / _count); } else { payload.Mean = 0; payload.StandardDeviation = 0; } payload.Min = _min; payload.Max = _max; ResetStatistics(); _eventSource.Write("EventCounters", new EventSourceOptions() { Level = EventLevel.LogAlways }, new EventCounterPayloadType(payload)); } }
internal EventCounterPayload GetEventCounterPayload() { lock (_bufferedValues) { Flush(); EventCounterPayload result = new EventCounterPayload(); result.Name = _name; result.Count = _count; result.Mean = _sum / _count; result.StandardDeviation = (float)Math.Sqrt(_sumSquared / _count - _sum * _sum / _count / _count); result.Min = _min; result.Max = _max; ResetStatistics(); return(result); } }
protected override void OnEventWritten(EventWrittenEventArgs eventData) { Console.WriteLine("Event written: " + eventData.EventName); if (eventData.EventName != "EventCounters") { return; } if (eventData.Payload.Count > 0) { var payload = eventData.Payload[0] as IDictionary <string, object>; if (payload != null) { var eventCounterPayload = new EventCounterPayload(payload); // ToDo: Push to InfluxDb } } }
internal EventCounterPayload GetEventCounterPayload() { lock (MyLock) // Lock the counter { Flush(); EventCounterPayload result = new EventCounterPayload(); result.Name = _name; result.Count = _count; if (0 < _count) { result.Mean = _sum / _count; result.StandardDeviation = (float)Math.Sqrt(_sumSquared / _count - _sum * _sum / _count / _count); } else { result.Mean = 0; result.StandardDeviation = 0; } result.Min = _min; result.Max = _max; ResetStatistics(); return(result); } }
public PayloadType(EventCounterPayload payload) { Payload = payload; }