説明
プロセス全体でヘルスエンドポイントを有効化します。CoreDNSが稼働している場合、200 OK HTTPステータスコードが返されます。ヘルスはデフォルトでポート8080/healthにエクスポートされます。
構文
health [ADDRESS]
必要に応じてアドレスを入力します。デフォルトは:8080
です。ヘルスパスは/health
に固定されています。このサーバーが正常な場合、ヘルスエンドポイントは200応答コードと「OK」という言葉を返します。
この拡張構文を使用して追加のオプションを設定できます
health [ADDRESS] {
lameduck DURATION
}
- ここで、
lameduck
はシャットダウンをDURATION遅延させます。/healthは引き続き200 OKに応答します。注意: CoreDNSがシャットダウンの前にlame duckモードの場合、ready プラグインはOK応答しません。
複数のサーバーブロックがある場合、health はそのうちの1つだけで有効にできます(プロセス全体であるため)。必ず複数のエンドポイントが必要な場合は、別のポートでヘルスエンドポイントを実行する必要があります。
com {
whoami
health :8080
}
net {
erratic
health :8081
}
これはサポートされていますが、「:8080」と「:8081」の両方のエンドポイントは、まったく同じヘルスをエクスポートします。
メトリクス
モニタリングが有効になっている場合(prometheusプラグイン経由)、次のメトリクスがエクスポートされます。
coredns_health_request_duration_seconds{}
- health プラグインは、/health
エンドポイントで1秒に1回自己ヘルスチェックを実行します。このメトリクスはそのリクエストを処理する時間です。これはローカル操作なので、高速である必要があります。この時間が(大幅に)増加すると、CoreDNSプロセスがクエリロードに対応できなくなっていることを示します。coredns_health_request_failures_total{}
- 自己ヘルスチェックが失敗した回数です。
これらのメトリクスにはserver
ラベルがないことに注意してください。過負荷は実行中のプロセスの症状であり、特定のサーバーではないためです。
例
https://#:8091で別のヘルスエンドポイントを実行します。
. {
health localhost:8091
}
レイムダック期間を1秒に設定する
. {
health localhost:8092 {
lameduck 1s
}
}