描述
啟用全程序健康狀態端點。當 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
}
}