すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:ダッシュボード

最終更新日:Dec 13, 2024

ApsaraMQ for RocketMQは、Application Real-Time Monitoring Service (ARMS) が提供するManaged Service for PrometheusおよびManaged Service for Grafanaと統合して、ダッシュボード機能を提供できます。 Managed Service for Prometheusはメトリクスの監視に使用され、Managed Service for Grafanaはメトリクスの保存と表示に使用されます。 ダッシュボード機能を使用すると、指標を監視し、指標データをオールインワンで包括的かつ多次元的に収集できます。 これにより、ビジネスステータスに関する情報をすばやく取得できます。 このトピックでは、ダッシュボード機能のシナリオ、背景情報、メトリックの詳細、課金、およびクエリ方法について説明します。

シナリオ

  • シナリオ1: オンラインメッセージの消費中に例外が発生した場合、アラートを受信し、問題をタイムリーに特定する必要があります。

  • シナリオ2: 特定のオンライン注文のステータスが異常な場合に、メッセージングシステムでメッセージが期待どおりに送信されるかどうかを確認する必要があります。

  • シナリオ3: メッセージトラフィックの変化傾向、トラフィック分布の特性、またはメッセージ量を分析して、ビジネストレンドを分析し、ビジネスプランを作成する必要があります。

  • シナリオ4: アプリケーションの上流および下流の依存関係トポロジを表示および分析して、アーキテクチャをアップグレード、最適化、または変換する必要があります。

背景情報

ApsaraMQ for RocketMQを使用してメッセージを送受信する場合、蓄積されたメッセージ、バッファリング、キュー内の処理時間などの主要な指標は、ビジネスパフォーマンスとブローカーステータスを反映できます。 ApsaraMQ for RocketMQの主要な指標は、次のビジネスシナリオで使用されます。

メッセージの蓄積

次の図は、特定のトピックのキューにある各メッセージのステータスを示しています。

队列消息状态

上の図では、ApsaraMQ for RocketMQが、さまざまな処理段階でのメッセージ数と処理時間を計算します。 このプロセスで使用されるメトリックは、キュー内の処理速度とメッセージの蓄積を反映します。 メトリクスを監視することで、消費中に例外が発生したかどうかを判断できます。 次の表に、メトリクスの詳細とメトリクスの計算に使用される数式を示します。

カテゴリ

メトリクス

説明

計算式

メッセージ量

Inflightメッセージ

消費者クライアントが処理中で、クライアントが消費結果を返していないメッセージ。

機内メッセージの数=最新のプルメッセージのオフセット-最新の確認済みメッセージのオフセット

Readyメッセージ

コンシューマーに表示され、ApsaraMQ for RocketMQブローカーで使用できるようになったメッセージ。

準備完了メッセージ数=最大オフセット-最新のプルメッセージのオフセット

消費者の遅れ

処理中で処理可能なメッセージ。

コンシューマーラグ=機内メッセージの数 + 準備完了メッセージの数

有効期間

準備時間

  • 通常のメッセージまたは順序付けられたメッセージの場合、準備時間は、メッセージがブローカに格納される時間である。

  • スケジュールされたメッセージの場合、準備時間は、ブローカーがメッセージを配信するためにスケジュールされた時間です。 遅延メッセージの場合、レディ時間は、指定された遅延期間が経過する時間である。

  • トランザクションメッセージの場合、準備時間はトランザクションがコミットされた時間です。

非該当

準備完了メッセージキュー時間

現在の時点と最も早い準備完了メッセージの準備完了時刻との間の間隔。

このメトリックは、コンシューマがメッセージをプルする時間を示します。

Ready message queue time = Current time-最も早いReadyメッセージのready time

消費者のラグタイム

最も早い未確認メッセージの準備時間と現在の時間の間の間隔。

このメトリックは、コンシューマがメッセージを処理する時間を示します。

消費者の遅れ時間=現在の時間-最も早い未確認メッセージの準備時間

プッシュモードでの消費

PushConsumerの場合、リアルタイムメッセージ処理はSDKの一般的なReactorスレッドモデルに基づいています。 SDKには、メッセージをプルしてキューに保存する長いポーリングスレッドが組み込まれています。 次に、メッセージはキューから個々のメッセージ消費スレッドに配信されます。 メッセージリスナーは、メッセージ消費ロジックに基づいて動作します。 次の図は、PushConsumerコンシューマーのメッセージ消費プロセスを示しています。

pushconsumer

詳細については、「PushConsumer」をご参照ください。

次の項目では、プッシュモードでメッセージを消費するときのローカルバッファキューに関連するメトリックについて説明します。

  • メッセージ量: ローカルバッファキュー内のメッセージの総数。

  • メッセージサイズ: ローカルバッファキュー内のメッセージの合計サイズ。

  • 待機時間: メッセージが処理される前にメッセージがローカルバッファキューに格納される時間。

メトリックの詳細

重要

1秒あたりのメッセージングトランザクション (TPS) 、メッセージングのAPI呼び出し、およびメッセージ量に関連するメトリックの値は、サイズが4 KBの通常のメッセージに基づいて計算されます。 大きなメッセージと注目メッセージのメトリック値を計算するときは、倍数が使用されます。 詳細については、「コンピューティング仕様」をご参照ください。

次の表に、ApsaraMQ for RocketMQのメトリックに関連するフィールドを示します。

項目

有効値

メートルのタイプ

  • カウンター: 値が増加するだけの累積メトリック。 例: 生成されたメッセージの数。

  • ゲージ: 値が増減できるメトリック。 ゲージの値は、統計オブジェクトの瞬間値を示します。 例: API呼び出しのTPS。

  • ヒストグラム: メトリックの値分布を測定するヒストグラム。 例: メッセージサイズの分布。

ラベル

  • instance_id: ApsaraMQ for RocketMQインスタンスのID。

  • topic: ApsaraMQ for RocketMQトピック。

  • message_type: メッセージタイプ。 値normalは、メッセージが正常なメッセージであることを示します。 値fifoは、メッセージが順序付けられたメッセージであることを示す。 値トランザクションは、メッセージがトランザクションメッセージであることを示す。 遅延値は、メッセージが遅延またはスケジュールされたメッセージであることを示す。

  • fifo_enable: ApsaraMQ for RocketMQブローカーが、作成された順序と同じ順序で使用するメッセージを配信するかどうかを示します。 値trueは、メッセージが順番に配信されることを示します。 値falseは、メッセージが同時に配信されることを示します。

  • uid: Alibaba CloudアカウントのID。

  • client_id: ApsaraMQ for RocketMQクライアントのID。

  • invocation_status: メッセージを送信するために開始されたAPI呼び出しの応答。 値の成功は、呼び出しが成功したことを示します。 値failureは、呼び出しが失敗したことを示します。

ブローカーに関連する指標

タイプ

名前

単位

説明

ラベル

ゲージ

rocketmq_instance_requests_max

回/秒

1分あたりのインスタンスのメッセージングTPSの最大値。 制限されたリクエストは除外されます。

値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_in_max

回/秒

インスタンスでTPSを送信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。

値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_out_max

回/秒

インスタンスでTPSを受信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。

値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。

  • uid

  • instance_id

ゲージ

rocketmq_topic_requests_max

回/秒

インスタンスのトピックでTPSを送信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。

値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。

  • uid

  • instance_id

  • topic

ゲージ

rocketmq_group_requests_max

回/秒

インスタンスのコンシューマーグループでTPSを受信するメッセージの最大値。 制限されたリクエストは除外されます。

値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。

  • uid

  • instance_id

  • consumer_group

ゲージ

rocketmq_instance_requests_in_threshold

回/秒

インスタンスで送信するメッセージのスロットリングしきい値。

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_out_threshold

回/秒

インスタンスでのメッセージ受信のスロットリングしきい値。

  • uid

  • instance_id

ゲージ

rocketmq_throttled_requests_in

集計

メッセージ送信中のスロットリングされたリクエストの数。

  • uid

  • instance_id

  • topic

  • message_type

ゲージ

rocketmq_throttled_requests_out

集計

メッセージ受信中のスロットル要求の数。

  • uid

  • instance_id

  • topic

  • fifo_enable

  • consumer_group

ゲージ

rocketmq_instance_elastic_requests_max

回/秒

インスタンス内のメッセージングTPSの最大スケーリング値。

  • uid

  • instance_id

Counter

rocketmq_requests_in_total

集計

メッセージを送信するために開始されたAPI呼び出しの数。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_requests_out_total

集計

メッセージを受信するために開始されたAPI呼び出しの数。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_messages_in_total

message

プロデューサーがブローカーに送信するメッセージの数。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_messages_out_total

message

ブローカーが消費者に配信するメッセージの数。 メッセージには、処理中、正常に処理され、処理に失敗したメッセージが含まれます。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_throughput_in_total

バイト

プロデューサーがブローカーにメッセージを送信するときのスループット。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_througput_out_total

バイト

ブローカーが消費者にメッセージを配信するときのスループット。 メッセージには、処理中、正常に処理され、処理に失敗したメッセージが含まれます。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_internet_througput_out_total

バイト

メッセージングに使用されるアウトバウンドインターネットトラフィックの量。

  • uid

  • instance_id

  • topic

  • message_type

ヒストグラム

rocketmq_message_size

バイト

メッセージサイズの分布。 このメトリックのデータは、メッセージが送信された場合にのみ収集されます。

以下の項目は、配布範囲を示しています。

  • le_1_kb: ≤ 1 KB

  • le_4_kb: ≤ 4 KB

  • le_512_kb: ≤ 512 KB

  • le_1_mb: ≤ 1 MB

  • le_2_mb: ≤ 2 MB

  • le_4_mb: ≤ 4 MB

  • le_overflow: > 4 MB

  • uid

  • instance_id

  • topic

  • message_type

ゲージ

rocketmq_consumer_ready_messages

message

準備完了メッセージの数。

準備完了メッセージは、ブローカーで準備ができているメッセージであり、消費者が使用できます。

このメトリックは、コンシューマーによって処理されないメッセージの数を反映します。

  • uid

  • instance_id

  • topic

  • consumer_group

ゲージ

rocketmq_consumer_inflight_messages

message

機内メッセージの数。

このメトリックは、消費者クライアントが処理しており、クライアントが消費結果を返していないメッセージの総数を反映します。

  • uid

  • instance_id

  • topic

  • consumer_group

ゲージ

rocketmq_consumer_queueing_latency

ミリ秒

コンシューマグループ内の準備完了メッセージのキューイング時間。

現在の時点と最も早いメッセージの準備ができた時点との間の時間差。

このメトリックは、コンシューマがメッセージをプルする時間を示します。

  • uid

  • instance_id

  • topic

  • consumer_group

ゲージ

rocketmq_consumer_lag_latency

ミリ秒

メッセージが消費されるまでの遅延時間。

最も早い未確認メッセージの準備時間と現在の時間の間の間隔。

このメトリックは、コンシューマがメッセージを処理する時間を示します。

  • uid

  • instance_id

  • topic

  • consumer_group

Counter

rocketmq_send_to_dlq_messages

message

1分あたりの新しいデッドレターメッセージの数。

無効メッセージは、再試行の最大数に達した後に配信されないメッセージです。

デッドレターメッセージは、特定のトピックに保存されるか、コンシューマーグループに設定されたデッドレターポリシーに基づいて破棄されます。

  • uid

  • instance_id

  • topic

  • consumer_group

ゲージ

rocketmq_storage_size

バイト

すべてのファイルで使用されるストレージスペースを含む、インスタンスで使用されるストレージスペースのサイズ。

  • uid

  • instance_id

プロデューサーに関連するメトリック

タイプ

名前

単位

説明

ラベル

ヒストグラム

rocketmq_send_cost_time

ミリ秒

メッセージを送信するためのAPI操作を正常に呼び出すために消費された時間の分布。

以下の項目は、配布範囲を示しています。

  • le_1_ms

  • le_5_ms

  • le_10_ms

  • le_20_ms

  • le_50_ms

  • le_200_ms

  • le_500_ms

  • le_overflow

  • uid

  • instance_id

  • topic

  • client_id

  • invocation_status

消費者に関連するメトリック

タイプ

名前

単位

説明

ラベル

ヒストグラム

rocketmq_process_time

ミリ秒

成功した処理と失敗した処理を含む、プッシュコンシューマがメッセージを処理するために消費した時間の分布。

このメトリックの値は、次の式を使用して計算されます。rocketmq_process_time = Process end time - Process start time

以下の項目は、配布範囲を示しています。

  • le_1_ms

  • le_5_ms

  • le_10_ms

  • le_100_ms

  • le_10000_ms

  • le_60000_ms

  • le_overflow

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

  • invocation_status

ゲージ

rocketmq_consumer_cached_messages

message

プッシュコンシューマのローカルバッファキュー内のメッセージの数。

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

ゲージ

rocketmq_consumer_cached_bytes

バイト

プッシュコンシューマのローカルバッファキュー内のメッセージの合計サイズ。

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

ヒストグラム

rocketmq_await_time

ミリ秒

プッシュコンシューマのローカルバッファキュー内のメッセージのキューイング時間の分布。

このメトリックの値は、次の式を使用して計算されます。rocketmq_await_time=プロセス開始時刻-到着時刻

以下の項目は、配布範囲を示しています。

  • le_1_ms

  • le_5_ms

  • le_20_ms

  • le_100_ms

  • le_1000_ms

  • le_5000_ms

  • le_10000_ms

  • le_overflow

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

課金

ApsaraMQ for RocketMQで使用されるダッシュボードメトリックは、Managed Service for Prometheusの基本メトリックです。 Managed Service for Prometheusの基本メトリックは課金されません。 したがって、ApsaraMQ for RocketMQのダッシュボード機能を無料で使用できます。

詳細については、「メトリクス」および「従量課金」をご参照ください。

前提条件

  • Prometheusのマネージドサービスが有効化されました。 詳しくは、「ARMS の有効化」をご参照ください。

  • 次のサービスにリンクされたロールが作成されます。

    • ロール名: AliyunServiceRoleForOns.

    • ロールポリシー名: AliyunServiceRolePolicyForOns.

    • 権限の説明: ApsaraMQ for RocketMQがCloudMonitorおよびARMSにアクセスするロールを引き受けて、モニタリング、アラート、およびダッシュボード機能を実装できるようにします。

    • 詳細については、「サービスにリンクされたロール」をご参照ください。

ダッシュボード指標の表示

ApsaraMQ for RocketMQコンソールの次のページでダッシュボードメトリクスを表示できます。

  • ダッシュボードページ: インスタンスのすべてのトピックと消費者グループに関するメトリックを表示します。

  • インスタンスの詳細ページ: 指定されたインスタンスのプロデューサ概要、課金メトリック、およびスロットリングメトリックを表示します。

  • トピックの詳細ページ: 指定されたトピックのメッセージ作成クライアントとプロデューサークライアントに関連するメトリックを表示します。

  • グループ詳細ページ: 指定されたコンシューマグループのメッセージ蓄積およびコンシューマクライアントに関連するメトリックを表示します。

  1. ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。

  2. 上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。

  3. 次のいずれかの方法を使用してダッシュボードを表示します。

    • インスタンスの詳細 ページで、ダッシュボード タブをクリックします。

    • [インスタンスの詳細] ページの左側のナビゲーションウィンドウで、ダッシュボード をクリックします。

    • [インスタンスの詳細] ページの左側のナビゲーションウィンドウで、トピックの管理 をクリックします。 表示されるページで、管理するトピックの名前をクリックします。 トピックの詳細 ページで、ダッシュボード タブをクリックします。

    • [インスタンスの詳細] ページの左側のナビゲーションウィンドウで、グループ管理 をクリックします。 表示されるページで、管理するグループの名前をクリックします。 グループ詳細 ページで、ダッシュボード タブをクリックします。

FAQ about the dashboard

ダッシュボードでメトリックを取得するにはどうすればよいですか?

  1. Alibaba Cloudアカウントを使用してARMSコンソールにログインします

  2. 左側のナビゲーションウィンドウで、[統合センター] をクリックします。

  3. [統合センター] ページで、検索フィールドにRocketMQと入力し、検索アイコンをクリックします。

  4. 検索結果で、モニタリングデータをARMSに統合するクラウドサービスを選択します。 例: Aliyun RocketMQ (5.0) サービス 詳細については、「手順1: クラウドサービスのモニタリングデータをマネージドサービスFor Prometheusに統合する」をご参照ください。

  5. クラウドサービスのモニタリングデータをARMSに統合した後、左側のナビゲーションウィンドウで [統合管理] をクリックします。

  6. [クラウドサービスリージョン] タブで、管理する環境の名前をクリックします。

  7. [コンポーネント管理] タブの [基本情報] セクションで、[デフォルトメトリックストレージ] の横にあるクラウドサービスリージョンをクリックします。

  8. 表示されるページの [設定] タブで、さまざまな種類のデータへのアクセス方法を表示します。

ApsaraMQ for RabbitMQのダッシュボードによって提供されるメトリックデータを自己管理型Grafanaシステムに統合するにはどうすればよいですか?

ApsaraMQ for RocketMQのダッシュボードにあるすべてのメトリックデータは、Alibaba Cloud Managed Service for Prometheusに保存されます。 ApsaraMQ for RocketMQのモニタリングデータをManaged Service for Prometheusに統合し、環境名とHTTP API URLを取得し、HTTP API URLを使用してApsaraMQ for RocketMQのダッシュボードのメトリックデータをセルフマネージドGrafanaシステムに統合するには、「ダッシュボードのメトリックを取得する方法」の手順に従います。 詳細については、「HTTP API URLを使用してPrometheusインスタンスを自己管理Grafanaシステムに接続する」をご参照ください。

インスタンスの最大TPSはどれくらいですか?

最大TPS: システムは1分サイクルに基づいて毎秒1つのTPS値を収集します。 60の値のうちの最大値は、分の最大TPSとして知られています。

例:

ApsaraMQ for RocketMQインスタンスは、特定の1分間に60の通常のメッセージを生成します。 各メッセージのサイズが4 KBの場合、インスタンスのメッセージ作成率は1分あたり60メッセージです。 次の項目では、インスタンスの最大TPSの計算方法について説明します。

  • 最初の1秒間に60個のメッセージがすべて送信される場合、最初の1秒間のTPS値は60であり、他の59秒間のTPS値はすべて0である。

    この場合、インスタンスの最大TPSは60です。

  • 最初の1秒間に40個のメッセージが送信され、2秒間に20個のメッセージが送信される場合、最初の1秒間のTPS値は40であり、2秒間のTPS値は20であり、他の58秒間のTPS値は全て0である。

    この場合、インスタンスの最大TPSは40です。