引用原Java类库:
Metrics同样提供了一致的,统一的方式来完成应用程序的健康检查。健康检查本质上是一个小的自检,应用本身用以验证特定组件或职责是否正确执行。
示例
public static void RegisterHealthChecks()
{
HealthChecks.RegisterHealthCheck("DatabaseConnected", () =>
{
CheckDbIsConnected();
return "Database Connection OK";
});
HealthChecks.RegisterHealthCheck("DiskSpace", () =>
{
int freeDiskSpace = GetFreeDiskSpace();
if (freeDiskSpace <= 512)
{
return HealthCheckResult.Unhealthy("Not enough disk space: {0}", freeDiskSpace);
}
else
{
return HealthCheckResult.Healthy("Disk space ok: {0}", freeDiskSpace);
}
});
HealthChecks.RegisterHealthCheck("SampleOperation", () => SampleOperation());
}
或者你可以继承HealthCheck类来写自己的逻辑:
public class DatabaseHealthCheck : HealthCheck
{
private readonly IDatabase database;
public DatabaseHealthCheck(IDatabase database)
: base("DatabaseCheck")
{
this.database = database;
HealthChecks.RegisterHealthCheck(this);
}
protected override HealthCheckResult Check()
{
// exceptions will be caught and
// the result will be unhealthy
this.database.Ping();
return HealthCheckResult.Healthy();
}
}
已注册健康检查的状态可以通过以下代码来查询:
HealthChecks.GetStatus()