ARMS Prometheus Service および Grafana のメトリックのストレージおよび表示機能により、ApsaraMQ for RabbitMQ は Enterprise エディションおよび Platinum エディションのインスタンス向けにダッシュボード機能を提供します。この機能を使用すると、インスタンス、vhost、キュー、およびエクスチェンジのさまざまなメトリックを表示でき、問題をできるだけ早期にトラブルシューティングできます。このトピックでは、ダッシュボードで提供されるメトリックとその使用方法について説明します。
課金
ApsaraMQ for RabbitMQ のダッシュボードメトリックは、ARMS Prometheus Service における基本メトリックと見なされます。基本メトリックには料金が発生しないため、ダッシュボード機能を無料でご利用いただけます。詳細については、「メトリックの詳細」および「従量課金」をご参照ください。
制限事項
ダッシュボード機能は、Serverless インスタンス、および Enterprise Edition と Platinum Edition のサブスクリプションインスタンスで利用できます。Professional Edition のサブスクリプションインスタンスでは利用できません。
サービスリンクロール
ダッシュボードを表示すると、ApsaraMQ for RabbitMQ が自動的にサービスリンクロール AliyunServiceRoleForAmqpMonitoring を作成します。
-
サービスリンクロールが存在しない場合、ApsaraMQ for RabbitMQ は自動的に作成し、ApsaraMQ for RabbitMQ のダッシュボード機能を使用できるようにします。
-
サービスリンクロールがすでに存在する場合、ApsaraMQ for RabbitMQ はそれを再度作成しません。
サービスリンクロール (SLR) の詳細については、「サービスリンクロール」をご参照ください。
メトリックの詳細
メトリックの概要
ApsaraMQ for RabbitMQ ダッシュボードでは、以下のメトリックを提供します:
-
概要:インスタンスまたは vhost のメッセージ数、接続数、コンシューマー数に関連するメトリック。
-
接続:インスタンスまたは vhost の接続数。
-
エクスチェンジ:エクスチェンジに出入りするメッセージ数。
-
キュー:キューのメッセージ数、API 呼び出し数、コンシューマー数。
-
コンシューマー:コンシューマー側でのメッセージの処理結果。
`rabbitmq_instance_api_tps_max` は 1 秒間隔で収集されますが、それ以外のすべてのメトリックは 1 分間隔で収集されます。
概要
|
メトリックタイプ |
メトリック名 |
単位 |
説明 |
ラベル |
|
gauge |
rabbitmq_instance_api_tps_max |
count/s |
1 分間におけるインスタンスの API 呼び出しの最大 TPS。 ルール:値は 1 分間にわたって 1 秒に 1 回サンプリングされます。これら 60 サンプルの最大値が取得されます。 |
{tenant_userid, instanceId} |
|
counter |
rabbitmq_connections_opened_total |
count |
オープンされた接続の総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_connections_closed_total |
count |
クローズされた接続の総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_channels_opened_total |
count |
オープンされたチャネルの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_channels_closed_total |
count |
クローズされたチャネルの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_queues_declared_total |
count |
作成されたキューの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_queues_deleted_total |
count |
削除されたキューの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_exchange_declared_total |
count |
作成されたエクスチェンジの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_exchange_deleted_total |
count |
削除されたエクスチェンジの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_exchange_bind_total |
count |
エクスチェンジに追加されたバインディングの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_exchange_unbind_total |
count |
エクスチェンジから削除されたバインディングの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_queue_bind_total |
count |
キューに追加されたバインディングの総数。 |
{tenant_userid,instanceId,vHost} |
|
counter |
rabbitmq_queue_unbind_total |
count |
キューから削除されたバインディングの総数。 |
{tenant_userid,instanceId,vHost} |
|
gauge |
rabbitmq_connections |
count |
現在のオープン接続数。 |
{tenant_userid,instanceId,vHost} |
|
gauge |
rabbitmq_channels |
count |
現在のオープンチャネル数。 |
{tenant_userid,instanceId,vHost} |
接続
|
メトリックタイプ |
メトリック名 |
単位 |
説明 |
ラベル |
|
gauge |
rabbitmq_connection_channels |
count |
接続下のチャネル数。 |
{tenant_userid,instanceId,vHost,remoteAddress} |
エクスチェンジ
|
メトリックタイプ |
メトリック名 |
単位 |
説明 |
ラベル |
|
counter |
rabbitmq_exchange_messages_published_in_total |
count |
エクスチェンジに公開されたメッセージの総数。 |
{tenant_userid,instanceId,vHost,exchangeName} |
|
counter |
rabbitmq_exchange_messages_published_out_total |
count |
エクスチェンジからルーティングされたメッセージの総数。 |
{tenant_userid,instanceId,vHost,exchangeName} |
キュー
|
メトリックタイプ |
メトリック名 |
単位 |
説明 |
ラベル |
|
counter |
rabbitmq_queue_messages_published_total |
count |
キューに公開されたメッセージの総数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
gauge |
rabbitmq_queue_messages_ready |
count |
コンシューマーに配信される準備ができているキュー内のメッセージ数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
gauge |
rabbitmq_queue_messages_timing |
count |
キュー内のスケジュールされたメッセージの数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
gauge |
rabbitmq_queue_messages_unacked |
count |
処理中のキュー内の未確認メッセージ数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_deliver_total |
count |
`Basic.Consume` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_get_total |
count |
`Basic.Get` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_ack_total |
count |
`Basic.Ack` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_uack_total |
count |
`Basic.Nack` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_recover_total |
count |
`Basic.Recover` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
counter |
rabbitmq_queue_reject_total |
count |
`Basic.Reject` API が呼び出された総回数。 |
{tenant_userid,instanceId,vHost,queueName} |
|
gauge |
rabbitmq_queue_consumers |
count |
キューのコンシューマーの総数。 |
{tenant_userid,instanceId,vHost,queueName} |
コンシューマー
|
メトリックタイプ |
メトリック名 |
単位 |
説明 |
ラベル |
|
gauge |
rabbitmq_consumer_acked_process_time_avg |
count |
確認済みメッセージの平均処理時間。 |
{tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_unacked_process_time_avg |
count |
未確認メッセージの平均処理時間。 |
{tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_acked_messages |
count |
応答内のメッセージ数を示します。 |
{tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_unacked_messages |
count |
未確認メッセージの数。 |
{tenant_userid,instanceId,vHost,queueName,remoteAddress} |
メトリックタイプの説明
ApsaraMQ for RabbitMQ が提供するメトリックは、オープンソースの Prometheus 標準と完全互換であり、カウンタータイプおよびゲージタイプです。
-
カウンター:値が増加する一方の累積メトリック。例:API 呼び出しの数。
-
ゲージ:値が増減できるメトリック。その値は瞬間的な測定値を表します。例:API 呼び出しの 1 秒あたりのトランザクション数 (TPS)。
ラベルの説明
以下のリストは、ApsaraMQ for RabbitMQ メトリック ラベルについて説明しています。
-
tenant_userid:Alibaba Cloud アカウントの ID。
-
instanceId: ApsaraMQ for RabbitMQ のインスタンス ID。
-
vHost:ApsaraMQ for RabbitMQ インスタンス内の vhost の名前
-
remoteAddress: ApsaraMQ for RabbitMQ クライアントの IP アドレス。
-
Exchange:「ApsaraMQ for RabbitMQ」インスタンス内の Exchange の名前。
-
queueName: ApsaraMQ for RabbitMQ インスタンス内のキューの名前です。
-
ackType:メッセージ処理後のクライアントからの応答。
ダッシュボードの表示
前提条件
-
ApsaraMQ for RabbitMQ インスタンスが作成されます。詳細については、「インスタンス管理」をご参照ください。
-
vhost、キュー、および exchange が ApsaraMQ for RabbitMQ インスタンスで作成され、アクティブになっています。詳細については、「vhost の管理」、「exchange の管理」、および「キューの管理」をご参照ください。
-
Application Real-Time Monitoring Service (ARMS) が有効化されていること。詳細については、「Managed Service for Prometheus の有効化」をご参照ください。
手順
ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリストをクリックします。
インスタンスリスト ページの上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理するインスタンスの名前をクリックします。
-
左側のナビゲーションウィンドウで、指示板 をクリックします。指示板 ページで、ダッシュボードを表示します。
-
オプション:vhost、エクスチェンジ、キュー、および時間範囲を指定して、ダッシュボードのビューをフィルターします。
-
vhost、エクスチェンジ、またはキューでフィルターするには:指示板 ページで、[Vhost]、[Exchange]、または [Queue] ドロップダウンリストをクリックします。表示したい vhost、エクスチェンジ、またはキューの名前を入力します。フィールドを空白のままにすると、デフォルトでインスタンス内のすべての vhost、エクスチェンジ、およびキューのメトリックが表示されます。

-
時間範囲でフィルターするには:指示板 ページの右上隅にある時間範囲セレクターをクリックします。ドロップダウンリストで、「過去 5 分」、「過去 12 時間」、「過去 30 日」などの事前定義された相対的な時間範囲を選択します。開始時刻と終了時刻を指定して、カスタムの絶対時間範囲を設定することもできます。

構成が完了したら、指示板 ページで指定した vhost、エクスチェンジ、キュー、または時間範囲のメトリックを表示できます。メトリックの詳細については、「メトリックの詳細」をご参照ください。
-
ダッシュボードメトリックデータの取得場所
すべてのダッシュボードメトリックは、ご利用の Alibaba Cloud アカウントに関連付けられた Prometheus サービスに保存されます。データをクエリするには、次の手順に従います。
-
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。
-
[インテグレーションセンター] ページで、検索ボックスに
RabbitMQと入力し、
アイコンをクリックします。 -
検索結果で、統合する Alibaba Cloud サービス (例:[Alibaba Cloud RabbitMQ Enterprise Edition]) を選択します。具体的な統合手順については、「ステップ 1:Alibaba Cloud サービスのモニタリングデータを統合する」をご参照ください。
-
統合が成功したら、左側のナビゲーションウィンドウで [プロビジョニング] をクリックします。
-
[接続済み環境] タブの [クラウドサービスリージョン環境] リストで、ターゲット環境の名前をクリックして詳細ページに移動します。
-
[コンポーネント管理] タブの [基本情報] セクションで、[Prometheus インスタンス] の右側にある Alibaba Cloud サービスリージョンをクリックします。
-
[設定] タブで、データにアクセスするための利用可能なメソッドを確認できます。

ダッシュボードメトリックデータとセルフマネージド Grafana の統合
ApsaraMQ for RabbitMQ のすべてのメトリックデータは、Alibaba Cloud の Managed Service for Prometheus に保存されます。Alibaba Cloud サービスに接続して環境名と HTTP API アドレスを取得するには、ダッシュボードのメトリックデータを取得する方法の手順に従ってください。その後、その API を使用して、ApsaraMQ for RabbitMQ のダッシュボードメトリックをセルフマネージド Grafana に取り込むことができます。詳細については、「HTTP API アドレスを使用して Grafana に接続するか、Prometheus データをセルフマネージドアプリケーションに取り込む」をご参照ください。