はじめに
この記事では、GKEにデプロイされているRabbitMQのメッセージに対する、consumerの数やunackの数を調べる方法を説明します。
手順
まず、RabbitMQのポッドを特定します。
kubectl get pods -A | egrep -i 'rabbit|rmq'
環境変数に名前空間とポッド名を設定しておきます。
NS_RMQ=<namespace> POD_RMQ=<pod_name>
RabbitMQのあるポッドに入ります。
kubectl -n "$NS_RMQ" exec -it "$POD_RMQ" -- bash
rabbitmqctlのコマンドでメトリクスのスナップショットを見ることができます。ここでは
- キュー名
- バックログのメッセージ数
- 未ackのメッセージ数
- consumerの数 を取得できます。
rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers \
| grep -E '<queue_name>|name'
name messages_ready messages_unacknowledged consumers <queue_name> 51684 30000 300
とこんな感じです。
余談
KEDAのautoscalingをRabbitMQのキューにあるメッセージの数で設定していたのですが、全然思い通りにならなかった時に調べたメモです。
更新記録
- 2026-01-15 RabbitMQのキューにあるメッセージの数を取得に関する参考文献を追加(これ自分のローカルで検証してみたい)
Inuverse Sci. X Tech. Blog