ApsaraMQ for RocketMQ は、Application Real-Time Monitoring Service (ARMS) の Managed Service for Prometheus と Managed Service for Grafana のメトリックストレージおよび可視化機能を使用して、リアルタイム統計ダッシュボードを提供します。この機能を使用すると、メトリックを収集および監視して、ビジネスの稼働状況を迅速に把握できます。このトピックでは、ユースケース、課金、利用可能なメトリック、およびダッシュボードの使用方法について説明します。
ユースケース
メッセージ消費の異常に関する即時アラートを受信することで、問題を迅速に特定・解決し、タイムリーなメッセージ処理を確保します。
ステータス異常といった特定の注文に関する問題をトラブルシューティングする際に、メッセージトレースを確認することで、ワークフロー全体でメッセージが適切に転送されていることを検証します。
メッセージトラフィックの傾向、分散パターン、全体的な量を分析して、ビジネストレンドを予測し、リソースを計画します。
アプリケーション依存関係トポロジーを可視化・分析し、アップストリームとダウンストリームの依存関係を把握することで、アーキテクチャのアップグレード、最適化、リファクタリングの計画を簡素化します。
前提条件
サービスリンクロールを作成します。
ロール名:AliyunServiceRoleForOns
ポリシー名:AliyunServiceRolePolicyForOns
権限の説明:Message Queue for RocketMQ がロールを引き受けて、モニタリング、アラート、およびダッシュボード機能のために CloudMonitor と ARMS にアクセスできるようにします。
詳細については、「サービスリンクロール」をご参照ください。
課金
ApsaraMQ for RocketMQ のダッシュボードメトリクスは、Managed Service for Prometheus の基本メトリクスです。これらのメトリクスは無料であるため、ダッシュボード機能も無料です。
主要な概念
ダッシュボードメトリクスを表示する前に、コンシューマーラグに関連する以下の概念を理解する必要があります。

上記の図は、特定のトピックのキュー内のメッセージの状態を示しています。Message Queue for RocketMQ は、さまざまな段階におけるメッセージの数と処理時間に関する統計を収集します。これらのメトリクスは、メッセージ処理速度とコンシューマーラグを直接反映します。これらのメトリクスを監視することで、メッセージ消費における潜在的な異常を迅速に特定できます。
カテゴリ | メトリクス | 説明 | 計算式 |
メッセージ数メトリクス | インフライトメッセージ | コンシューマークライアントが処理しており、まだ確認応答していないメッセージ。 | 最新のプルされたメッセージのオフセット - 最新のコミットされたメッセージのオフセット |
準備完了メッセージ | Message Queue for RocketMQ サーバー上で消費可能な状態になっているメッセージ。 | 最大メッセージオフセット - 最新のプルされたメッセージのオフセット | |
コンシューマーラグ | 未処理メッセージの総数。 | インフライトメッセージ数 + 準備完了メッセージ数 | |
メッセージレイテンシーメトリクス | 準備完了時間 |
| 該当なし |
レディメッセージキュータイム | 現在時刻と最も古い準備完了メッセージの準備完了時間との差。このメトリクスは、メッセージがサーバー上で消費を待っている時間を示し、コンシューマーのプル能力を評価するのに役立ちます。 このメトリックは、コンシューマーがメッセージをプルする速さを示します。 | 現在時刻 - 最も古い準備完了メッセージの準備完了時間 | |
コンシューマーラグタイム | 現在時刻と、まだ確認応答されていない最も古いメッセージの準備完了時間との差。このメトリクスは、メッセージが消費可能になってから確認応答されるまでのエンドツーエンドの遅延を表し、コンシューマーの総合的な処理能力 (プル + 処理) を示します。 このメトリックは、コンシューマーがメッセージを処理する速度を示します。 | 現在時刻 - 最も古い確認応答されていないメッセージの準備完了時間 |
メトリクス
Message Queue for Apache RocketMQ のダッシュボードでは、以下のメトリクスを提供しています。
プロデューサー:トピックに関するメトリクス (送信メッセージ数、送信成功率、送信メッセージの応答時間など) を表示します。
コンシューマー:特定のトピックに対するグループのサブスクリプションに関連するメトリクス (受信メッセージ数、消費成功率、コンシューマーラグなど) を表示します。
インスタンス Top 20:インスタンス内の特定のメトリクスの上位 20 件の値と、対応するトピックまたはグループを表示します。
課金メトリクス:特定のインスタンスに関するメトリクス (送信および受信 TPS、API 呼び出し数、平均メッセージサイズなど) を表示します。これらのメトリクスは、課金コストの見積もりに役立ちます。
すべてのメトリクスは 1 分間隔で収集されます。Message Queue for Apache RocketMQ では、過去 15 日間のデータをクエリできます。1 回のクエリで指定できる最大時間範囲は 24 時間です。
プロデューサー
メトリクス | 説明 |
メッセージ送信レート | トピックに送信されたメッセージのレートと API 呼び出しのレートです。 単位:
|
最大メッセージ送信レート | メッセージ送信レートの最大値です。 単位:メッセージ/秒 |
送信メッセージ総数 | 指定されたインスタンスで送信されたメッセージの総数です。 単位:メッセージ |
送信 API 呼び出し成功率 | トピックへのメッセージ送信で API 呼び出しが成功した割合です。 |
送信メッセージの応答時間 | トピックにメッセージを送信するのにかかる時間です。 単位:ミリ秒 |
コンシューマー
メトリクス | 説明 |
Average consumption success rate | The percentage of messages that are successfully consumed by a group. |
Consumer lag (ready + inflight) | The total number of backlogged messages for a group. Unit: messages. |
Inflight メッセージ | コンシューマークライアントに配信されたものの、まだ確認応答されていないメッセージの数です。 単位:メッセージ |
準備完了メッセージ | Message Queue for Apache RocketMQ サーバー上で消費可能なメッセージの数です。 このメトリクスは、コンシューマーがまだ処理を開始していないメッセージの量を示します。 単位:メッセージ |
準備完了メッセージのキューイング時間 | 最も古い準備完了メッセージが消費可能になってから経過した時間です。 このメトリクスは、メッセージ処理の遅延を示す重要な指標であり、時間に敏感なアプリケーションにとって重要です。 概要の値はインスタンスの平均準備完了メッセージキューイング時間を示し、グラフは特定のトピックをサブスクライブしている特定のグループの準備完了メッセージキューイング時間を示します。 単位:ミリ秒 |
メッセージ受信レート | グループがメッセージを消費するレートです。 単位:メッセージ/秒 |
最大メッセージ受信レート | メッセージ消費レートの最大値です。 単位:メッセージ/秒 |
受信メッセージ総数 | グループが消費したメッセージの総数です。 単位:メッセージ |
コンシューマーラグ | グループの滞留メッセージ数です。これには、準備完了メッセージと Inflight メッセージの両方が含まれます。 単位:メッセージ |
メッセージ処理時間 | グループがメッセージを処理するのにかかる時間 (消費開始から完了まで) です。 単位:ミリ秒 |
コンシューマー側待機時間 | メッセージがコンシューマークライアントに到着してから消費が開始されるまでの時間です。 単位:ミリ秒 |
消費成功率 | メッセージ消費の成功率です。 |
コンシューマークライアントプロトコル比率 | 各クライアントプロトコルが消費したメッセージの割合です。 |
インスタンス Top 20
メトリクス | 説明 |
メッセージ送信レート上位 20 トピック | メッセージ送信レートが最も高い上位 20 のトピックです。 単位:メッセージ/秒 |
メッセージ受信レート上位 20 グループ | メッセージ消費レートが最も高い上位 20 のグループです。 単位:メッセージ/秒 |
準備完了メッセージ上位 20 グループ | 準備完了メッセージ数が最も多い上位 20 のグループです。 単位:メッセージ |
準備完了メッセージキューイング時間上位 20 グループ | 準備完了メッセージキューイング時間が最も長い上位 20 のグループです。 単位:ミリ秒 |
コンシューマーラグ上位 20 グループ | コンシューマーラグが最も大きい上位 20 のグループです。 単位:メッセージ |
課金メトリクス
以下の課金メトリクスは、大容量メッセージおよび高度な機能の乗数を考慮しています。
大容量メッセージ乗数:メッセージサイズが 4 KB ごとに 1 回の API 呼び出しとしてカウントされます。たとえば、16 KB のメッセージを送信すると、4 回の API 呼び出し (16 KB / 4 KB = 4) としてカウントされます。
高度な機能メッセージ乗数:順序、スケジュール/遅延、トランザクションメッセージなどの高度な機能の API 呼び出しは、通常メッセージの 5 倍としてカウントされます。
メトリクス | 説明 |
最大送信 TPS | メッセージ生成の最大トランザクション数/秒 (TPS) です。このメトリクスは、インスタンスに必要なピーク TPS 仕様を見積もるのに役立ちます。 単位:TPS |
最大受信 TPS | メッセージ消費における最大 TPS です。このメトリクスは、インスタンスに必要なピーク TPS 仕様を見積もるのに役立ちます。 単位:TPS |
最大 TPS | メッセージの生成と消費を合わせた最大 TPS です。このメトリクスは、インスタンスに必要なピーク TPS 仕様を見積もるのに役立ちます。 単位:TPS |
API 呼び出し総数 | API 呼び出しの総数です。このメトリクスは、課金目的での API 呼び出し使用量を見積もるのに役立ちます。 単位:呼び出し |
平均メッセージサイズ | 生成された全メッセージの平均サイズです。 単位:バイト |
送受信 TPS | メッセージの生成と消費を合わせた TPS の時系列データです。 単位:TPS |
1 日あたりの API 呼び出し総数 | メッセージの生成と消費を合わせた、1 日あたりの API 呼び出し総数です。 単位:呼び出し |
メトリクス
すべてのメッセージスループット (TPS)、リクエスト、およびメッセージ数メトリクスは、4 KB の通常メッセージをベースラインとします。最終的な値は、実際のメッセージサイズと高度なメッセージタイプに基づく係数を乗算して算出されます。
次の表では、メトリクスのフィールドについて説明します。
フィールド | 値 |
メトリクスタイプ | ゲージ:増減するメトリクスです。 API 呼び出しの TPS などの瞬時値を表します。 |
ラベル |
|
サーバーサイドメトリクス
メトリクスタイプ | メトリクス名 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_instance_requests_threshold | count/s | インスタンスのスロットリングのしきい値。 |
|
ゲージ | rocketmq_instance_requests_max | count/s | スロットリングされたリクエストを除いた、インスタンスの秒間トランザクション数 (TPS) の最大値です。 この値は、1 分間隔で記録された TPS のピーク値です。 |
|
プロデューサーメトリクス
メトリクスタイプ | メトリクス名 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_producer_requests (課金対象メトリクス) | count | メッセージ送信の課金対象となる API 呼び出し数です。 |
|
ゲージ | rocketmq_producer_messages | message | 送信されたメッセージ数です。 |
|
ゲージ | rocketmq_producer_message_size_bytes | byte | 送信されたメッセージの合計サイズです。 |
|
ゲージ | rocketmq_producer_send_success_rate | % | メッセージ送信の成功率です。 |
|
ゲージ | rocketmq_producer_failure_api_calls | count | メッセージ送信に失敗した API 呼び出し数です。 |
|
ゲージ | rocketmq_producer_send_rt_milliseconds_avg | ms | メッセージ送信の平均応答時間です。 |
|
ゲージ | rocketmq_producer_send_rt_milliseconds_min | ms | メッセージ送信の最小応答時間です。 |
|
ゲージ | rocketmq_producer_send_rt_milliseconds_max | ms | メッセージ送信の最大応答時間です。 |
|
ゲージ | rocketmq_producer_send_rt_milliseconds_p95 | ms | メッセージ送信の応答時間の 95 パーセンタイルです。 |
|
ゲージ | rocketmq_producer_send_rt_milliseconds_p99 | ms | メッセージ送信の応答時間の 99 パーセンタイルです。 |
|
コンシューマーメトリクス
メトリクスタイプ | メトリクス名 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_consumer_requests | count | メッセージ消費の API 呼び出し数です。 |
|
ゲージ | rocketmq_consumer_send_back_requests | count | 消費失敗後にメッセージを送り戻すための API 呼び出し数です。 |
|
ゲージ | rocketmq_consumer_send_back_messages | message | 消費失敗後に送り戻されたメッセージ数です。 |
|
ゲージ | rocketmq_consumer_messages | message | 消費されたメッセージ数です。 |
|
ゲージ | rocketmq_consumer_message_size_bytes | byte | 消費されたメッセージの合計サイズです。 |
|
ゲージ | rocketmq_consumer_ready_and_inflight_messages | message | 準備完了メッセージとインフライトメッセージの合計として計算される、コンシューマーラグの合計値です。 |
|
ゲージ | rocketmq_consumer_ready_messages | message | キュー内で、コンシューマーによる取得を待機しているメッセージ数です。 計算式: |
|
ゲージ | rocketmq_consumer_inflight_messages | message | コンシューマーに取得されたものの、まだ確認応答されていないメッセージ数です。
|
|
ゲージ | rocketmq_consumer_queue_time_milliseconds | ms | メッセージのキューイング時間です。 |
|
ゲージ | rocketmq_consumer_message_await_time_milliseconds_avg | ms | メッセージが処理されるまでコンシューマークライアントのバッファーで待機する平均時間です。 |
|
ゲージ | rocketmq_consumer_message_await_time_milliseconds_min | ms | メッセージが処理されるまでコンシューマークライアントのバッファーで待機する最小時間です。 |
|
ゲージ | rocketmq_consumer_message_await_time_milliseconds_max | ms | メッセージが処理されるまでコンシューマークライアントのバッファーで待機する最大時間です。 |
|
ゲージ | rocketmq_consumer_message_await_time_milliseconds_p95 | ms | メッセージが処理されるまでコンシューマークライアントのバッファーで待機する時間の 95 パーセンタイルです。 |
|
ゲージ | rocketmq_consumer_message_await_time_milliseconds_p99 | ms | メッセージが処理されるまでコンシューマークライアントのバッファーで待機する時間の 99 パーセンタイルです。 |
|
ゲージ | rocketmq_consumer_message_process_time_milliseconds_avg | ms | コンシューマーがメッセージの処理に費やす平均時間です。 |
|
ゲージ | rocketmq_consumer_message_process_time_milliseconds_min | ms | コンシューマーがメッセージの処理に費やす最小時間です。 |
|
ゲージ | rocketmq_consumer_message_process_time_milliseconds_max | ms | コンシューマーがメッセージの処理に費やす最大時間です。 |
|
ゲージ | rocketmq_consumer_message_process_time_milliseconds_p95 | ms | メッセージ処理時間の 95 パーセンタイルです。 |
|
ゲージ | rocketmq_consumer_message_process_time_milliseconds_p99 | ms | メッセージ処理時間の 99 パーセンタイルです。 |
|
ゲージ | rocketmq_consumer_consume_success_rate | % | メッセージ消費の成功率です。 |
|
ゲージ | rocketmq_consumer_failure_api_calls | count | メッセージ消費に失敗した API 呼び出し数です。 |
|
ゲージ | rocketmq_consumer_to_dlq_messages | message | デッドレターキューに送信されたメッセージ数です。 |
|
ダッシュボード
Message Queue for Apache RocketMQ コンソールにサインインします。左側のナビゲーションペインで、インスタンス数 をクリックします。
トップメニューバーで 中国 (杭州) などのリージョンを選択します。次に、インスタンスリストで、ターゲットインスタンスをクリックします。
次のいずれかの方法でダッシュボードを表示できます。
インスタンスの詳細 ページ:インスタンスの詳細 ページで、ダッシュボード タブをクリックします。
ダッシュボード タブ:左側のナビゲーションペインで、ダッシュボード をクリックします。
トピックの詳細 ページ:左側のナビゲーションペインで、トピックの管理 をクリックします。トピックリストで、ターゲットトピックをクリックします。トピックの詳細 ページで、トピックの概要 タブをクリックします。
グループ詳細 ページ:左側のナビゲーションペインで、グループ管理 をクリックします。グループリストで、ターゲットグループをクリックします。グループ詳細 ページで、グループ概要 タブをクリックします。
ダッシュボードのよくある質問
ダッシュボードメトリクスデータへのアクセス
ルートアカウントを使用して、ARMS コンソールにログインします。
左側メニューで、[アクセスセンター] をクリックします。
[アクセスセンター] ページで、検索ボックスに
RocketMQと入力し、検索アイコンをクリックします。検索結果で、統合するクラウドサービス ([Alibaba Cloud Message Queue for RocketMQ] など) を選択します。統合手順の詳細については、「ステップ 1: クラウドサービスからモニタリングデータを統合する」をご参照ください。
統合が成功したら、左側メニューで [統合管理] をクリックします。
[クラウドサービス環境] リストで、ターゲット環境の名前をクリックして、詳細ページを開きます。
[コンポーネント管理] タブの 基本情報 セクションで、[Prometheus インスタンス] の横にあるクラウドサービスリージョンをクリックします。
このページでは、データにアクセスするためのさまざまな方法を説明します。{key, select, RAM {RAM アクセス制御} Overview {概要} Identities {アイデンティティ管理} Users {ユーザー} Groups {ユーザーグループ} Roles {ロール} Settings {設定} Permissions {権限管理} Grants {権限付与} Troubleshoot {権限診断} Policies {権限ポリシー} Integrations {統合管理} Providers {SSO 管理} Applications {OAuth アプリ(パブリックプレビュー)} CloudSSO {マルチアカウント ID 権限(クラウド SSO)} AccessAnalyzing {アクセス分析} Analyzers {アナライザー} Findings {分析結果} Beta {Beta} Governance {クラウドガバナンス} other {{key}} }
セルフマネージド Grafana へのデータのインポート
Alibaba Cloud Message Queue for RocketMQ のすべてのメトリクスデータは、Alibaba Cloud Prometheus Service に保存されています。「ダッシュボードメトリクスデータの取得方法」の手順に従ってクラウドサービスを統合し、環境名と HTTP API エンドポイントを取得します。次に、API を使用して、このデータをセルフマネージド Grafana にインポートします。詳細については、「HTTP API エンドポイントを使用して Grafana またはセルフマネージドアプリケーションに接続し、Prometheus データにアクセスする」をご参照ください。
平均 TPS と最大 TPS
平均 TPS = 1 分間のリクエストの総数 / 60 秒
最大 TPS:システムは 1 分間にわたって 1 秒ごとに TPS 値をサンプリングします。最大 TPS は、60 個のサンプルの中で最も高い値です。
例:
あるインスタンスが 1 分間に 60 個のメッセージを生成すると仮定します (すべて 4 KB の通常メッセージ)。
インスタンスの平均 TPS = 60 リクエスト / 60 秒 = 1 リクエスト/秒
インスタンスの最大 TPS は次のように計算されます。
60 個のメッセージすべてが最初の 1 秒以内に送信された場合、その 1 分間の各秒の TPS は 60、0、0、...、0 となります。
インスタンスの最大 TPS は 60 リクエスト/秒です。
最初の 1 秒で 40 個のメッセージが送信され、2 秒目に 20 個のメッセージが送信された場合、その 1 分間の各秒の TPS は 40、20、0、0、...、0 となります。
インスタンスの最大 TPS は 40 リクエスト/秒です。