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)); } }
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)); } }
public PollingPayloadType(CounterPayload payload) { Payload = payload; }
public CounterPayloadType(CounterPayload payload) { Payload = payload; }