.net應用監控類庫Metrics.NET之健康檢查

引用原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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章