public EventCounterTriggerImpl(EventCounterTriggerSettings settings) { if (null == settings) { throw new ArgumentNullException(nameof(settings)); } if (settings.GreaterThan.HasValue) { double minValue = settings.GreaterThan.Value; if (settings.LessThan.HasValue) { double maxValue = settings.LessThan.Value; _valueFilter = value => value > minValue && value < maxValue; } else { _valueFilter = value => value > minValue; } } else if (settings.LessThan.HasValue) { double maxValue = settings.LessThan.Value; _valueFilter = value => value < maxValue; } _intervalTicks = (long)(settings.CounterIntervalSeconds * TimeSpan.TicksPerSecond); _windowTicks = settings.SlidingWindowDuration.Ticks; }
public EventCounterTrigger(EventCounterTriggerSettings settings) { if (null == settings) { throw new ArgumentNullException(nameof(settings)); } Validate(settings); _filter = new CounterFilter(settings.CounterIntervalSeconds); _filter.AddFilter(settings.ProviderName, new string[] { settings.CounterName }); _impl = new EventCounterTriggerImpl(settings); _providerName = settings.ProviderName; }
private static void Validate(EventCounterTriggerSettings settings) { ValidationContext context = new(settings); Validator.ValidateObject(settings, context, validateAllProperties: true); }
public static MonitoringSourceConfiguration CreateConfiguration(EventCounterTriggerSettings settings) { Validate(settings); return(new MetricSourceConfiguration(settings.CounterIntervalSeconds, new string[] { settings.ProviderName })); }