コード例 #1
0
ファイル: PollingCounter.cs プロジェクト: mikem8361/runtime
        internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
        {
            lock (this)
            {
                double value = 0;
                try
                {
                    value = _metricProvider();
                }
                catch (Exception ex)
                {
                    ReportOutOfBandMessage($"ERROR: Exception during EventCounter {Name} metricProvider callback: " + ex.Message);
                }

                CounterPayload payload = new CounterPayload();
                payload.Name              = Name;
                payload.DisplayName       = DisplayName ?? "";
                payload.Count             = 1;                                     // NOTE: These dumb-looking statistics is intentional
                payload.IntervalSec       = intervalSec;
                payload.Series            = $"Interval={pollingIntervalMillisec}"; // TODO: This may need to change when we support multi-session
                payload.CounterType       = "Mean";
                payload.Mean              = value;
                payload.Max               = value;
                payload.Min               = value;
                payload.Metadata          = GetMetadataString();
                payload.StandardDeviation = 0;
                payload.DisplayUnits      = DisplayUnits ?? "";
                _lastVal = value;
                EventSource.Write("EventCounters", new EventSourceOptions()
                {
                    Level = EventLevel.LogAlways
                }, new PollingPayloadType(payload));
            }
        }
コード例 #2
0
 internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
 {
     lock (this)
     {
         Flush();
         CounterPayload payload = new CounterPayload();
         payload.Count       = _count;
         payload.IntervalSec = intervalSec;
         if (0 < _count)
         {
             payload.Mean = _sum / _count;
             payload.StandardDeviation = Math.Sqrt(_sumSquared / _count - _sum * _sum / _count / _count);
         }
         else
         {
             payload.Mean = 0;
             payload.StandardDeviation = 0;
         }
         payload.Min          = _min;
         payload.Max          = _max;
         payload.Series       = $"Interval={pollingIntervalMillisec}"; // TODO: This may need to change when we support multi-session
         payload.CounterType  = "Mean";
         payload.Metadata     = GetMetadataString();
         payload.DisplayName  = DisplayName ?? "";
         payload.DisplayUnits = DisplayUnits ?? "";
         payload.Name         = Name;
         ResetStatistics();
         EventSource.Write("EventCounters", new EventSourceOptions()
         {
             Level = EventLevel.LogAlways
         }, new CounterPayloadType(payload));
     }
 }
コード例 #3
0
ファイル: PollingCounter.cs プロジェクト: mikem8361/runtime
 public PollingPayloadType(CounterPayload payload)
 {
     Payload = payload;
 }
コード例 #4
0
 public CounterPayloadType(CounterPayload payload)
 {
     Payload = payload;
 }