ヘルスチェックエンドポイント
サービスが自身の健全性を報告するためだけに公開する専用URL(/healthzや/readyzが多い)。ロードバランサー、Kubernetesのプローブ、監視システムがこれを呼び出し、トラフィックを流すかどうかを判断する。
仕組みは、健全なら200 OKを返し、そうでなければエラーコードを返すというものである。深さは二段階あり、浅い(liveness)チェックはプロセスが応答するかだけを見て、深い(readiness)チェックはデータベースに届くか、キャッシュが温まったかなど、実際に仕事ができるかを見る。/healthzという慣習はGoogleとKubernetesに由来し、末尾のzは実在のページ名との衝突を避けるためである。KubernetesのlivenessやreadinessプローブはこれをHTTPで呼び、ロードバランサーはチェックに失敗したインスタンスへの振り分けを止め、サービスディスカバリーは不健全なインスタンスを除外する。落とし穴は、深すぎるチェック(全依存先を確認する)が連鎖障害を招くことである。共有データベースが遅くなるとすべてのサービスが同時に不健全と報告され、一斉にトラフィックから外れてしまう。設計は慎重に行う必要がある。自己修復する可観測なシステムの要である。