ヘルスチェックにおけるサーキットブレーカーステータス

外部依存関係のサーキットブレーカー状態(closed、open、half-open)を公開するヘルスチェックコンポーネントを設計し、レジリエンスパターンのオブザーバビリティを実現します。

Patterns

詳細な説明

サーキットブレーカーヘルス統合

ヘルスチェックにサーキットブレーカー状態を含めることで、サービスのレジリエンスメカニズムの可視性を提供し、劣化動作の説明に役立ちます。

レスポンスコンポーネント

{
  "circuitBreakers": {
    "payment-gateway": {
      "status": "closed",
      "failureRate": "2.5%",
      "failureThreshold": "50%"
    },
    "email-service": {
      "status": "open",
      "failureRate": "75%",
      "nextRetryAt": "2024-01-15T10:30:00Z"
    },
    "inventory-api": {
      "status": "half-open",
      "testRequestsAllowed": 3,
      "testRequestsCompleted": 1
    }
  }
}

サーキットブレーカーの状態

状態 意味 ヘルスへの影響
Closed 通常動作、リクエストが通過 UP
Open 障害がしきい値を超過、リクエストブロック DEGRADEDまたはDOWN
Half-open サービス回復をテスト中 DEGRADED

サーキットブレーカー状態を公開する理由

  1. デバッグ: 特定の機能が利用できない理由を説明
  2. 監視: サーキットブレーカーの遷移を時系列で追跡
  3. アラート: 重要な依存関係でサーキットが開いた時にアラート
  4. キャパシティプランニング: 頻繁なサーキットオープンはリソース不足を示す

ベストプラクティス

ヘルスマッピングでは重要なサーキットブレーカーと非重要なものを分けてください。決済ゲートウェイのオープンサーキットはDOWNです。分析サービスのオープンサーキットはDEGRADEDが最大です。

ユースケース

外部依存関係にサーキットブレーカーパターン(Hystrix、Resilience4j、Polly)を使用し、オブザーバビリティダッシュボードにサーキットブレーカー状態を表示する必要があるレジリエントなマイクロサービス。

試してみる — Health Check Endpoint Designer

フルツールを開く