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

ApsaraMQ for RocketMQ:ダッシュボード

最終更新日:Jul 10, 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

count/秒

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

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

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_in_max

count/秒

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

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

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_out_max

count/秒

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

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

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_in_threshold

count/秒

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

  • uid

  • instance_id

ゲージ

rocketmq_instance_requests_out_threshold

count/秒

インスタンス内のメッセージ消費のスロットリングしきい値。

  • uid

  • instance_id

ゲージ

rocketmq_throttled_requests_in

count

メッセージ送信のスロットリング時間。

  • uid

  • instance_id

  • topic

  • message_type

ゲージ

rocketmq_throttled_requests_out

count

メッセージ消費のスロットリング時間。

  • uid

  • instance_id

  • topic

  • fifo_enable

  • consumer_group

ゲージ

rocketmq_instance_elastic_requests_max

count/秒

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

  • uid

  • instance_id

Counter

rocketmq_requests_in_total

count

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

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_requests_out_total

count

メッセージを消費するために開始された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

ApsaraMQ for RocketMQのダッシュボードのメトリックデータを自己管理型Grafanaシステムにインポートするにはどうすればよいですか?

ApsaraMQ for RocketMQのダッシュボードにあるすべてのメトリックデータは、Alibaba Cloud Managed Service for Prometheusに保存されます。 Managed Service for Prometheusが提供するAPIを使用して、ApsaraMQ for RocketMQのダッシュボードのメトリックデータを自己管理型Grafanaシステムにインポートできます。

詳細については、「Managed Service For 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です。