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 }); }
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)); }