メッセージキューヘルスチェックコンポーネント設計

RabbitMQ、SQS、Kafkaのメッセージキューの接続状態、キュー深度、コンシューマーラグ、メッセージスループットを監視するヘルスチェックコンポーネントを設計します。

Component Checks

詳細な説明

メッセージキューヘルスチェック

キューヘルスチェックは、非同期メッセージングインフラストラクチャが機能していることを確認します。キューの問題はサイレントなデータ損失や処理遅延を引き起こす可能性があります。

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

{
  "queue": {
    "status": "UP",
    "duration": "8ms",
    "message": "RabbitMQ connected, queues operational",
    "details": {
      "type": "rabbitmq",
      "connection": "open",
      "channels": 3,
      "queues": {
        "orders": { "messages": 42, "consumers": 2 },
        "notifications": { "messages": 0, "consumers": 1 }
      }
    }
  }
}

チェック項目

  1. 接続状態: ブローカーに到達可能か?
  2. キュー深度: メッセージが蓄積されていないか?
  3. コンシューマー数: コンシューマーがアタッチされ処理しているか?
  4. デッドレターキュー: メッセージの処理が失敗していないか?
  5. コンシューマーラグ(Kafka): コンシューマーの遅れはどの程度か?

ヘルスしきい値

メトリクス 健全 劣化 異常
接続 オープン 再接続中 失敗
キュー深度 < 1000 1000-10000 > 10000
コンシューマー数 > 0 0(短時間) 0(長時間)
コンシューマーラグ < 100 100-10000 > 10000

プロデューサーとコンシューマーのヘルス

プロデューサーサービスはブローカーへの接続、メッセージ発行機能、キューの存在をチェックすべきです。

コンシューマーサービスはブローカーへの接続、コンシューマー登録、処理スループット、デッドレターキューサイズをチェックすべきです。

ユースケース

メッセージ処理の遅延や障害がビジネスオペレーションに直接影響するRabbitMQ、Amazon SQS、Apache Kafka、Redis Streamsを使用したイベント駆動アーキテクチャ。

試してみる — Health Check Endpoint Designer

フルツールを開く