マイクロサービスヘルスチェックパターン

ロードバランサー、オーケストレーター、監視向けに異なるコンシューマー向けの個別エンドポイントを持つマイクロサービスアーキテクチャ向けの完全なヘルスチェック戦略を設計します。

Patterns

詳細な説明

マイクロサービスヘルスチェックパターン

マイクロサービスアーキテクチャでは、単一のヘルスエンドポイントでは不十分です。異なるコンシューマーには異なるレベルの詳細と異なる障害動作が必要です。

マルチエンドポイント戦略

GET /health          → シンプル(ロードバランサー向け)
GET /health/live     → Liveness(Kubernetes向け)
GET /health/ready    → Readiness(Kubernetes向け)
GET /health/detailed → 完全なコンポーネントチェック(監視向け)

シンプルエンドポイント (/health)

{ "status": "UP" }

Livenessエンドポイント (/health/live)

{
  "status": "ok",
  "checks": {
    "deadlockDetection": { "status": "ok" },
    "memoryThreshold": { "status": "ok" }
  }
}

Readinessエンドポイント (/health/ready)

{
  "status": "ok",
  "dependencies": {
    "database": { "status": "ok", "responseTime": "12ms" },
    "redis": { "status": "ok", "responseTime": "3ms" }
  }
}

セキュリティ考慮事項

エンドポイント 認証 詳細レベル
/health なし 最小限
/health/live なし 内部のみ
/health/ready なし 依存関係名
/health/detailed 必要 完全な詳細

詳細エンドポイントは内部インフラ情報の公開を防ぐために認証を要求すべきです。ヘルスレスポンスに接続文字列、認証情報、IPアドレスを含めないでください。

ユースケース

クラウドロードバランサー、Kubernetes、監視ダッシュボード、オンコールデバッグツールなど複数のコンシューマーにヘルス情報を提供する必要がある本番マイクロサービスデプロイメント。

試してみる — Health Check Endpoint Designer

フルツールを開く