.net 核心健康检查

.net core health checks

请参阅 here 了解如何在 ASP.net 核心中实施健康检查。

我的问题是如何为非 ASP.net 核心做这件事。

我认为很多人 运行 应用程序在 docker 容器中并在 Dockerfile 中使用以下内容:

HEALTHCHECK CMD curl --fail http://localhost:5000/healthz || exit

但并非所有应用程序都是网络应用程序,因此对于没有网络的应用程序,您如何监控应用程序的运行状况?

对于 none 核心应用程序,您只需添加一个新控制器和一个获取方法

[RoutePrefix("healthz")]
public class HealthController : ApiController
{
    [HttpGet,Route]
    public IHttpActionResult Index()
    {
        return Ok();
    }
}

这将做同样的事情,如果你想检查任何资源(如数据库)的健康状况,那么你可以将代码放在 Index 方法中以先进行这些检查,然后 return不同的状态代码,如果有什么东西掉了,比如

return InternalServerError();