健康狀態

原始碼

health 啟用健康檢查端點。

描述

啟用全程序健康狀態端點。當 CoreDNS 啟動並運行時,此端點會返回 200 OK HTTP 狀態碼。健康狀態預設會匯出到 port 8080/health。

語法

health [ADDRESS]

可選擇性地使用位址;預設值為 :8080。健康狀態路徑固定為 /health。當此伺服器健康時,健康狀態端點會返回 200 回應碼和文字「OK」。

可以使用此擴充語法設定額外選項

health [ADDRESS] {
    lameduck DURATION
}
  • 其中 lameduck 會將關閉延遲 DURATION 時間。/health 仍然會回覆 200 OK。請注意:在 CoreDNS 關閉前的跛腳鴨模式中,ready 外掛程式不會回覆 OK。

如果您有多個伺服器區塊,health 只能在其中一個區塊中啟用(因為它是全程序範圍)。如果您真的需要多個端點,則必須在不同的連接埠上運行健康狀態端點

com {
    whoami
    health :8080
}

net {
    erratic
    health :8081
}

雖然支援這樣做,但兩個端點「:8080」和「:8081」會匯出完全相同的健康狀態。

指標

如果啟用監控(透過 prometheus 外掛程式),則會匯出以下指標

  • coredns_health_request_duration_seconds{} - health 外掛程式會每秒在 /health 端點上執行一次自我健康檢查。此指標是處理該請求所需的時間。由於這是本地操作,因此應該很快。此時間的(大幅)增加表示 CoreDNS 程序在應付查詢負載時遇到問題。
  • coredns_health_request_failures_total{} - 自我健康檢查失敗的次數。

請注意,這些指標沒有 server 標籤,因為過載是正在執行程序的症狀,而不是特定的伺服器。

範例

在 https://127.0.0.1:8091 上運行另一個健康狀態端點。

. {
    health localhost:8091
}

設定跛腳鴨持續時間為 1 秒

. {
    health localhost:8092 {
        lameduck 1s
    }
}