public HealthCheckResult CheckQueue() { var message = new StatusMessage { Id = Guid.NewGuid().ToString() }; try { _queue.Enqueue(message); if (_queue.GetQueueCount() == 0) { return(HealthCheckResult.NotHealthy("Queue Not Working: No items were enqueued.")); } var workItem = _queue.Dequeue(TimeSpan.Zero); if (workItem == null) { return(HealthCheckResult.NotHealthy("Queue Not Working: No items could be dequeued.")); } workItem.Complete(); } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Queues Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckQueueAsync() { var message = new StatusMessage { Id = Guid.NewGuid().ToString() }; try { await _queue.EnqueueAsync(message).AnyContext(); var queueStats = await _queue.GetQueueStatsAsync().AnyContext(); if (queueStats.Enqueued == 0) { return(HealthCheckResult.NotHealthy("Queue Not Working: No items were enqueued.")); } var workItem = await _queue.DequeueAsync().AnyContext(); if (workItem == null) { return(HealthCheckResult.NotHealthy("Queue Not Working: No items could be dequeued.")); } await workItem.CompleteAsync().AnyContext(); } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Queues Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckStorageAsync() { try { await _storage.GetFileListAsync(limit : 1).AnyContext(); } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Storage Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckCacheAsync() { try { if ((await _cacheClient.GetAsync <string>("__PING__").AnyContext()).HasValue) { return(HealthCheckResult.NotHealthy("Cache Not Working")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Cache Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
// TODO: Check storage // TODO: Check queues // TODO: Check message bus public HealthCheckResult CheckCache() { try { if (_cacheClient.Get <string>("__PING__") != null) { return(HealthCheckResult.NotHealthy("Cache Not Working")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Cache Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public HealthCheckResult CheckElasticSearch() { try { var res = _elasticClient.Ping(); if (!res.IsValid) { return(HealthCheckResult.NotHealthy("ElasticSearch Ping Failed")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("ElasticSearch Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckElasticSearchAsync() { try { var res = await _elasticClient.PingAsync().AnyContext(); if (!res.IsValid) { return(HealthCheckResult.NotHealthy("ElasticSearch Ping Failed")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("ElasticSearch Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public HealthCheckResult CheckMongo() { try { _db.Server.Ping(); if (!IsDbUpToDate()) { return(HealthCheckResult.NotHealthy("Mongo DB Schema Outdated")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Mongo Not Working: " + ex.Message)); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckElasticsearchAsync() { var sw = Stopwatch.StartNew(); try { var response = await _elasticClient.PingAsync().AnyContext(); if (!response.IsValid) { return(HealthCheckResult.NotHealthy("Elasticsearch Ping Failed")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Elasticsearch Not Working: " + ex.Message)); } finally { sw.Stop(); Logger.Trace().Message($"Checking Elasticsearch took {sw.ElapsedMilliseconds}ms").Write(); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckCacheAsync() { var sw = Stopwatch.StartNew(); try { var cacheValue = await _cacheClient.GetAsync <string>("__PING__").AnyContext(); if (cacheValue.HasValue) { return(HealthCheckResult.NotHealthy("Cache Not Working")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Cache Not Working: " + ex.Message)); } finally { sw.Stop(); Logger.Trace().Message($"Checking cache took {sw.ElapsedMilliseconds}ms").Write(); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckElasticsearchAsync() { var sw = Stopwatch.StartNew(); try { var response = await _configuration.Client.PingAsync().AnyContext(); if (!response.IsValid) { return(HealthCheckResult.NotHealthy("Elasticsearch Ping Failed")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Elasticsearch Not Working: " + ex.Message)); } finally { sw.Stop(); _logger.LogTrace("Checking Elasticsearch took {Duration:g}", sw.Elapsed); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckCacheAsync() { var sw = Stopwatch.StartNew(); try { var cache = new ScopedCacheClient(_configuration.Cache, "health"); var cacheValue = await cache.GetAsync <string>("__PING__").AnyContext(); if (cacheValue.HasValue) { return(HealthCheckResult.NotHealthy("Cache Not Working")); } } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Cache Not Working: " + ex.Message)); } finally { sw.Stop(); _logger.LogTrace("Checking cache took {Duration:g}", sw.Elapsed); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckStorageAsync() { const string path = "healthcheck.txt"; var sw = Stopwatch.StartNew(); try { if (!await _storage.ExistsAsync(path).AnyContext()) { await _storage.SaveFileAsync(path, DateTime.UtcNow.ToString()).AnyContext(); } await _storage.DeleteFileAsync(path).AnyContext(); } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Storage Not Working: " + ex.Message)); } finally { sw.Stop(); Logger.Trace().Message($"Checking storage took {sw.ElapsedMilliseconds}ms").Write(); } return(HealthCheckResult.Healthy); }
public async Task <HealthCheckResult> CheckStorageAsync() { const string path = "healthcheck.txt"; var sw = Stopwatch.StartNew(); try { if (!await _storage.ExistsAsync(path).AnyContext()) { await _storage.SaveFileAsync(path, SystemClock.UtcNow.ToString()).AnyContext(); } await _storage.DeleteFileAsync(path).AnyContext(); } catch (Exception ex) { return(HealthCheckResult.NotHealthy("Storage Not Working: " + ex.Message)); } finally { sw.Stop(); _logger.LogTrace("Checking storage took {Duration:g}", sw.Elapsed); } return(HealthCheckResult.Healthy); }