引用原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()