Message Queue for Apache RocketMQ は、Alibaba Cloud の Managed Service for Prometheus および Grafana と統合してメトリックの保存と可視化を行うことで、ダッシュボード機能を提供します。ダッシュボードは、メトリックを包括的かつ一元的に表示することで、サービスの運用状況を迅速に評価するのに役立ちます。このトピックでは、ダッシュボードの利用シーン、背景情報、メトリック、課金、クエリ方法について説明します。
利用シーン
シナリオ 1:タイムリーなアラートを使用して、メッセージ消費の例外をリアルタイムで検出し、トラブルシューティングを行います。
シナリオ 2:注文ステータスが異常な場合に配信パスを調査して、メッセージ送信ステータスを確認します。
シナリオ 3:メッセージトラフィックの傾向、配信パターン、および量を分析して、将来のビジネス成長を計画します。
シナリオ 4:アプリケーションの依存関係トポロジを表示および分析して、アーキテクチャを最適化またはリファクタリングします。
背景情報
Message Queue for Apache RocketMQ のメッセージライフサイクルにおいて、コンシューマーラグ、バッファリング、処理レイテンシなどの主要なパフォーマンス指標は、アプリケーションのパフォーマンスとブローカーの健全性を直接反映します。したがって、Message Queue for Apache RocketMQ の主要なメトリックは、次のシナリオで最も関連性が高くなります。
メッセージの滞留
次の図は、特定のトピックの特定のキュー内のメッセージのステータスを示しています。

上の図は、特定のトピックの特定のキュー内のメッセージのステータスを示しています。Message Queue for Apache RocketMQ は、さまざまな処理段階でのメッセージ数と所要時間に関する統計を収集します。これらのメトリックは、メッセージ処理速度とキュー内の蓄積を直接反映します。これらのメトリックを観察することで、サービスの消費が異常であるかどうかを予備的に判断できます。具体的なメトリックの定義と計算式は次のとおりです。
カテゴリ | メトリック | 説明 | 計算式 |
メッセージ数メトリック | 処理中メッセージ | コンシューマークライアントが処理中であるが、まだ確認応答していないメッセージの数。 | 最新のプルされたメッセージのオフセット - 最新の確認応答されたメッセージのオフセット |
準備完了メッセージ | Message Queue for Apache RocketMQ ブローカー上で消費準備が整っているメッセージの数。 | 最大メッセージオフセット - 最新のプルされたメッセージのオフセット | |
コンシューマーラグ | 消費を待っているか、現在処理中のメッセージの総数。 | 処理中メッセージ数 + 準備完了メッセージ数 | |
メッセージレイテンシメトリック | 準備完了時間 |
| N/A |
準備完了メッセージのキューイング時間 | 最も古い準備完了メッセージの準備完了時間から現在までの経過時間。 このメトリックは、コンシューマーによるメッセージプルの適時性を反映します。 | 現在時刻 - 最も古い準備完了メッセージの準備完了時間 | |
コンシューマーラグタイム | 最も早い未確認応答メッセージの準備完了時間から現在までの経過時間。 このメトリックは、コンシューマーによるメッセージ処理の適時性を反映します。 | 現在時刻 - 最も早い未確認応答メッセージの準備完了時間 |
PushConsumer の消費

その仕組みの詳細については、「PushConsumer」をご参照ください。
PushConsumer の消費シナリオでは、次のメトリックがローカルキャッシュキューに関連しています。
ローカルキャッシュキュー内のメッセージ数:ローカルキャッシュキュー内のメッセージの総数。
ローカルキャッシュキュー内のメッセージサイズ:ローカルキャッシュキュー内のすべてのメッセージの合計サイズ。
メッセージ待機時間:メッセージがローカルキャッシュキューに一時的に保存される期間。
メトリックの詳細
TPS、メッセージの送受信、またはメッセージ数に関連するすべてのメトリックは、4 KB の通常メッセージに基づいて計算されます。メッセージサイズと高度なメッセージタイプには乗数が適用されます。詳細については、「計算仕様」をご参照ください。
次の表に、メトリックフィールドを示します。
フィールド | 値 |
メトリックタイプ |
|
ラベル |
|
ブローカーメトリック
メトリックタイプ | メトリック名 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_instance_requests_max | count/s | インスタンスの 1 分あたりの最大メッセージング TPS (送受信)。スロットリングされたリクエストは除外されます。 この値は、1 分間に 1 秒に 1 回取得された 60 個の TPS サンプルの最大値です。 |
|
ゲージ | rocketmq_instance_requests_in_max | count/s | インスタンスの 1 分あたりの最大メッセージ送信 TPS。スロットリングされたリクエストは除外されます。 この値は、1 分間に 1 秒に 1 回取得された 60 個の TPS サンプルの最大値です。 |
|
ゲージ | rocketmq_instance_requests_out_max | count/s | インスタンスの 1 分あたりの最大メッセージ消費 TPS。スロットリングされたリクエストは除外されます。 この値は、1 分間に 1 秒に 1 回取得された 60 個の TPS サンプルの最大値です。 |
|
ゲージ | rocketmq_topic_requests_max | count/s | インスタンス内のトピックへのメッセージ送信の 1 分あたりの最大 TPS。スロットリングされたリクエストは除外されます。 この値は、1 分間に 1 秒に 1 回取得された 60 個の TPS サンプルの最大値です。 |
|
ゲージ | rocketmq_group_requests_max | count/s | インスタンス内のコンシューマーグループの 1 分あたりの最大メッセージ消費 TPS。スロットリングされたリクエストは除外されます。 この値は、1 分間に 1 秒に 1 回取得された 60 個の TPS サンプルの最大値です。 |
|
ゲージ | rocketmq_instance_requests_in_threshold | count/s | インスタンスでのメッセージ送信のスロットリングしきい値。 |
|
ゲージ | rocketmq_instance_requests_out_threshold | count/s | インスタンスでのメッセージ消費のスロットリングしきい値。 |
|
ゲージ | rocketmq_throttled_requests_in | count | スロットリングされたメッセージ送信試行の数。 |
|
ゲージ | rocketmq_throttled_requests_out | カウント | スロットリングされたメッセージ消費試行の数。 |
|
ゲージ | rocketmq_instance_elastic_requests_max | count/s | インスタンスでのメッセージ送受信の最大エラスティック TPS。 |
|
カウンター | rocketmq_requests_in_total | count | メッセージ送信のための API 呼び出しの総数。 |
|
カウンター | rocketmq_requests_out_total | count | メッセージ消費のための API 呼び出しの総数。 |
|
カウンター | rocketmq_messages_in_total | message | プロデューサーからブローカーに送信されたメッセージの総数。 |
|
カウンター | rocketmq_messages_out_total | message | ブローカーからコンシューマーに配信されたメッセージの総数。これには、処理中のメッセージ、正常に処理されたメッセージ、または処理に失敗したメッセージが含まれます。 |
|
カウンター | rocketmq_throughput_in_total | byte | プロデューサーからブローカーへのメッセージスループット。 |
|
カウンター | rocketmq_throughput_out_total | byte | ブローカーからコンシューマーへのメッセージスループット。これには、処理中のメッセージ、正常に処理されたメッセージ、または処理に失敗したメッセージが含まれます。 |
|
カウンター | rocketmq_internet_throughput_out_total | byte | メッセージングに使用されるアウトバウンドインターネットトラフィック。 |
|
ヒストグラム | rocketmq_message_size | byte | メッセージサイズのヒストグラム。送信成功時に記録されます。 分布バケット:
|
|
ゲージ | rocketmq_consumer_ready_messages | message | ブローカー上で消費準備が整っているメッセージの数。 このメトリックは、コンシューマーによってまだ処理されていないメッセージの数を反映します。 |
|
ゲージ | rocketmq_consumer_inflight_messages | message | 処理中メッセージの数。これは、コンシューマークライアントが処理中であるが、まだ確認応答していないメッセージです。 |
|
ゲージ | rocketmq_consumer_queueing_latency | ms | 準備完了メッセージのキューイング時間。最も古い準備完了メッセージの準備完了時間から現在までの期間として計算されます。 このメトリックは、コンシューマーによるメッセージプルの適時性を示します。 |
|
ゲージ | rocketmq_consumer_lag_latency | ms | 消費処理レイテンシ。最も古い未消費メッセージの準備完了時刻から現在までの経過時間として計算されます。 このメトリックは、コンシューマーによるメッセージ処理の適時性を示します。 |
|
カウンター | rocketmq_send_to_dlq_messages | message | 1 分あたりにデッドレターになるメッセージの数。 メッセージは、配信に失敗し、最大再配信試行回数を超えるとデッドレターになります。 これらのメッセージは、コンシューマーグループのデッドレターポリシーに基づいて破棄されるか、デッドレタートピックにルーティングされます。 |
|
ゲージ | rocketmq_storage_size | byte | すべてのファイルを含む、インスタンスが使用するストレージ容量。 |
|
プロデューサーメトリック
メトリックタイプ | メトリック名 | 単位 | 説明 | ラベル |
ヒストグラム | rocketmq_send_cost_time | ms | 成功したメッセージ送信 API 呼び出しのレイテンシのヒストグラム。 分布バケット:
|
|
コンシューマーメトリック
メトリックタイプ | メトリック名 | 単位 | 説明 | ラベル |
ヒストグラム | rocketmq_process_time | ms | PushConsumer のメッセージ処理時間のヒストグラム。成功した試行と失敗した試行の両方を含みます。 この値は次のように計算されます: 分布バケット:
|
|
ゲージ | rocketmq_consumer_cached_messages | message | PushConsumer のローカルキャッシュキュー内のメッセージ数。 |
|
ゲージ | rocketmq_consumer_cached_bytes | byte | PushConsumer のローカルキャッシュキュー内のメッセージの合計サイズ。 |
|
ヒストグラム | rocketmq_await_time | ms | PushConsumer のローカルキャッシュキュー内のメッセージ待機時間のヒストグラム。 この値は次のように計算されます: 分布バケット:
|
|
課金
Message Queue for Apache RocketMQ のダッシュボードメトリックは、Managed Service for Prometheus の基本メトリックです。基本メトリックは無料です。したがって、ダッシュボード機能も無料です。
詳細については、「従量課金」をご参照ください。
前提条件
サービスリンクロールを作成する必要があります。
ロール名:AliyunServiceRoleForOns
ロールポリシー名:AliyunServiceRolePolicyForOns
権限:Message Queue for Apache RocketMQ がこのロールを引き受けて、CloudMonitor や Managed Service for Prometheus などの他の Alibaba Cloud サービスにアクセスし、モニタリング、アラート、ダッシュボードなどの機能を有効にすることを許可します。
詳細については、「サービスリンクロール」をご参照ください。
ダッシュボードの表示
Message Queue for Apache RocketMQ コンソールの次のページでダッシュボードを表示できます。
ダッシュボード ページ:インスタンス内のすべてのトピックとコンシューマーグループのメトリックを表示します。
インスタンスの詳細 ページ:特定のインスタンスのプロデューサー概要、課金メトリック、スロットリングメトリックを表示します。
トピックの詳細 ページ:特定のトピックのメッセージ生成とプロデューサークライアントに関連するメトリックを表示します。
グループ詳細 ページ:特定のコンシューマーグループのコンシューマーラグとコンシューマークライアントに関連するメトリックを表示します。
ApsaraMQ for RocketMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。[インスタンス] ページで、管理するインスタンスの名前をクリックします。
次のいずれかの方法でダッシュボードを表示します。
インスタンスの詳細 ページ:インスタンスの詳細 ページで、ダッシュボード タブをクリックします。
ダッシュボード ページ:左側のナビゲーションウィンドウで、ダッシュボード をクリックします。
トピックの詳細 ページ:左側のナビゲーションウィンドウで、トピックの管理 をクリックします。トピックリストで、対象のトピックの名前をクリックします。トピックの詳細 ページで、ダッシュボード タブをクリックします。
グループ詳細 ページ:左側のナビゲーションウィンドウで、グループ管理 をクリックします。グループリストで、対象のグループの名前をクリックします。グループ詳細 ページで、ダッシュボード タブをクリックします。
よくある質問
ダッシュボードのメトリックデータを取得する方法
Alibaba Cloud アカウントを使用して ARMS コンソール にログインします。
左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。
[インテグレーションセンター] ページで、検索ボックスに
RocketMQを入力し、検索アイコンをクリックします。検索結果で、[Aliyun RocketMQ (5.0) サービス] など、統合するクラウドサービスを選択します。統合の詳細については、「ステップ 1: クラウドサービスのモニタリングデータを統合する」をご参照ください。
統合が成功したら、左側のナビゲーションウィンドウで[統合管理]をクリックします。
[統合管理] ページで、[クラウドサービスリージョン環境] タブをクリックします。
[クラウドサービスリージョン環境] リストで、対象の環境の名前をクリックし、詳細ページを開きます。
[コンポーネント管理] タブの [基本情報] セクションで、[Prometheus インスタンス] の横にあるクラウドサービスリージョンをクリックします。
[設定] タブでは、各種のデータアクセス メソッドの URL を取得できます。
セルフマネージド Grafana と統合する方法
Message Queue for Apache RocketMQ のすべてのメトリックデータは、ご利用の Alibaba Cloud Managed Service for Prometheus に保存されます。「ダッシュボードのメトリックデータを取得する方法」の手順に従ってクラウドサービスに接続し、環境名と HTTP API アドレスを取得できます。その後、API を使用して Message Queue for Apache RocketMQ のダッシュボードメトリックデータをセルフマネージド Grafana インスタンスにインポートできます。詳細については、「HTTP API アドレスを使用して Grafana またはセルフマネージドアプリケーションに接続し、Prometheus データにアクセスする」をご参照ください。
インスタンスの最大 TPS の解釈方法
最大 TPS は、1 秒ごとに取得されたサンプルに基づいて、1 分間に記録された 1 秒あたりのトランザクション数 (TPS) の最大値です。
例:
インスタンスは 1 分以内に、それぞれ 4 KB のサイズの通常メッセージを 60 件生成します。生成レートは 60 メッセージ/分です。
60 件すべてのメッセージが最初の 1 秒で送信された場合、その 1 分間の各秒の TPS 値は 60、0、0、...、0 となります。
インスタンスの最大 TPS は 60 です。
最初の 1 秒で 40 件のメッセージが送信され、2 番目の秒で 20 件が送信された場合、TPS 値は 40、20、0、0、...、0 となります。
インスタンスの最大 TPS は 40 です。