protected override Task <HealthCheckResult> CheckAsync(CancellationToken token = default(CancellationToken)) { if (!_options.ApdexTrackingEnabled) { return(Task.FromResult(HealthCheckResult.Ignore())); } var apdex = _metrics.Value.Snapshot.GetApdexValue(_context, _metricName); if (apdex.Score < 0.5) { return(Task.FromResult(HealthCheckResult.Unhealthy($"Frustrating. Score: {apdex.Score}"))); } if (apdex.Score >= 0.5 && apdex.Score < 0.75) { return(Task.FromResult(HealthCheckResult.Degraded($"Tolerating. Score: {apdex.Score}"))); } return(Task.FromResult(HealthCheckResult.Healthy($"Satisfied. Score {apdex.Score}"))); }
protected override Task <HealthCheckResult> CheckAsync(CancellationToken token = default(CancellationToken)) { if (!_options.ApdexTrackingEnabled) { return(Task.FromResult(HealthCheckResult.Ignore())); } var metricsContext = _metrics.Value.Advanced.Data.ReadContext(AspNetMetricsRegistry.Contexts.HttpRequests.ContextName); var apdex = metricsContext.ApdexValueFor(AspNetMetricsRegistry.Contexts.HttpRequests.ApdexScores.ApdexMetricName); if (apdex.Score < 0.5) { return(Task.FromResult(HealthCheckResult.Unhealthy($"Frustrating. Score: {apdex.Score}"))); } if (apdex.Score >= 0.5 && apdex.Score < 0.75) { return(Task.FromResult(HealthCheckResult.Degraded($"Tolerating. Score: {apdex.Score}"))); } return(Task.FromResult(HealthCheckResult.Healthy($"Satisfied. Score {apdex.Score}"))); }
/// <summary> /// Create a failure (degraded or unhealthy) status response. /// </summary> /// <param name="message">Status message.</param> /// <param name="degradedOnError"> /// If true, create a degraded status response. /// Otherwise create an unhealthy status response. (default: false) /// </param> /// <returns>Failure status response.</returns> private static HealthCheckResult HealthCheckResultOnError(string message, bool degradedOnError) { return(degradedOnError ? HealthCheckResult.Degraded(message) : HealthCheckResult.Unhealthy(message)); }