private async Task GetIdentityServerHealthCheck() {
            logger.LogInformation("Retrieving Identity Server Status.");

            var item = cache.Get<ServiceStatusModel>(HealthCheckConstants.CACHE_KEY_IDS);
            var age = item != null ? (DateTime.UtcNow - item.Timestamp).TotalSeconds : int.MaxValue;
            if (age >= 30) {
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                ServiceStatusModel serviceStatusModel;
                try {
                    var identityServerTask = await healthService.GetIdentityServerHealthCheck();
                    serviceStatusModel = new ServiceStatusModel {
                        Healthy = identityServerTask.Healthy,
                        Status = identityServerTask.Healthy ? ServiceStatus.Ok : ServiceStatus.Failure,
                        Timestamp = DateTime.UtcNow
                    };
                } catch {
                    serviceStatusModel = new ServiceStatusModel() {
                        Healthy = false,
                        Timestamp = DateTime.UtcNow
                    };
                }
                // Store it in cache
                cache.Set(HealthCheckConstants.CACHE_KEY_IDS, serviceStatusModel, DateTimeOffset.Now.AddSeconds(45));

                stopwatch.Stop();
                RecordTelemetry("identityserver", stopwatch.Elapsed, serviceStatusModel.Healthy, JsonConvert.SerializeObject(serviceStatusModel));
            }
        }