Example #1
0
        public async Task <RunnerHealth> GetRunnerHealthAsync(CancellationToken token)
        {
            var checkBatch = await _checkBatchService.GetLatestCheckBatchAsync(token);

            if (checkBatch == null)
            {
                return(new RunnerHealth
                {
                    IsHealthy = false,
                    Message = "No checks have been performed.",
                    LastRunTime = DateTimeOffset.MinValue
                });
            }

            var now            = _systemClock.UtcNow;
            var sinceLastBatch = now - checkBatch.Time;

            if (sinceLastBatch > ErrorThreshold)
            {
                return(new RunnerHealth
                {
                    IsHealthy = false,
                    Message = $"The time since the last check batch is {sinceLastBatch} ago, which is over the expected threshold of {ErrorThreshold}.",
                    LastRunTime = checkBatch.Time
                });
            }

            return(new RunnerHealth
            {
                IsHealthy = true,
                Message = $"The last check batch was {sinceLastBatch} ago.",
                LastRunTime = checkBatch.Time
            });
        }
Example #2
0
        public async Task <IActionResult> GetLatestCheckBatchAsync(CancellationToken token)
        {
            var checkBatch = await _service.GetLatestCheckBatchAsync(token);

            if (checkBatch == null)
            {
                return(NotFound());
            }

            return(new ObjectResult(checkBatch));
        }
        public async Task <IActionResult> LatestCheckBatch(CancellationToken token)
        {
            var batch = await _checkBatchService.GetLatestCheckBatchAsync(token);

            return(View(batch));
        }