protected async Task OnIsDue(LoadConfiguration configuration, CancellationToken cancellationToken) { if (LoadCollector == null) { // not supported MeasurementTimingService.ResetDue(configuration); return; } var loadAverage = await LoadCollector.GetLoadAverage(cancellationToken); if (loadAverage == null) { // N/A MeasurementTimingService.ResetDue(configuration); return; } await Mediator.Publish(new OutboundMeasurement() { Name = "load", Item = new LoadMeasurement() { Timestamp = DateTime.UtcNow, Hostname = System.Net.Dns.GetHostName(), LastOneMinute = loadAverage.OneMinute, LastFiveMinutes = loadAverage.FiveMinutes, LastFifteenMinutes = loadAverage.FifteenMinutes, }, }, cancellationToken); MeasurementTimingService.ResetDue(configuration); }
public Load(IMediator mediator, LoadConfiguration configuration, IMeasurementTimingService measurementTimingService) { Mediator = mediator ?? throw new ArgumentNullException(nameof(mediator)); Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); MeasurementTimingService = measurementTimingService ?? throw new ArgumentNullException(nameof(measurementTimingService)); }