HealthCheckResult, как вернуть дополнительную информацию в ответ? - PullRequest
0 голосов
/ 02 октября 2019
Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult

public HealthCheckResult (Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description = null, Exception exception = null, System.Collections.Generic.IReadOnlyDictionary<string,object> data = null);

Parameters

status HealthStatus  
A value indicating the status of the component that was checked.

description String  
A human-readable description of the status of the component that was checked.

exception Exception  
An Exception representing the exception that was thrown when checking for status (if any).

data IReadOnlyDictionary<String,Object> 
Additional key-value pairs describing the health of the component.

К сожалению, метод проб и ошибок показывает, что description не возвращается в ответе конечной точки проверки работоспособности.

catch(Exception ex)
{
    return new HealthCheckResult(status: HealthStatus.Unhealthy, 
                                 description: ex.Message,
                                 exception: ex);
}

Я думаю, что сообщение об исключении будет возвращено вответ и отображается в браузере, но это не так.

Существует ли недокументированный механизм для возврата дополнительной информации за пределы Degraded Healthy Unhealthy и т. д.?

1 Ответ

0 голосов
/ 02 октября 2019

HealthCheckResult - это структура в .Net Core. В реализации метода CheckHealthAsync интерфейса IHealthCheck вы можете вернуть статус вместе с пользовательским описанием, как показано ниже -

   if (response.StatusCode == HttpStatusCode.OK)
   {
          return HealthCheckResult.Healthy("connected successfully.");
   }

ИЛИ

return HealthCheckResult.Unhealthy("Failed to connect.)
...