Example #1
0
        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);
        }
Example #2
0
 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));
 }