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}")));
        }
Example #2
0
        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}")));
        }
Example #3
0
 /// <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));
 }