Example #1
0
        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();
                }
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
 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));
     }
 }
Example #4
0
 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
                }
            }
        }
Example #6
0
 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);
     }
 }
Example #7
0
 public PayloadType(EventCounterPayload payload)
 {
     Payload = payload;
 }