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」をご参照ください。
次の項目では、プッシュモードでメッセージを消費するときのローカルバッファキューに関連するメトリックについて説明します。
メッセージ量: ローカルバッファキュー内のメッセージの総数。
メッセージサイズ: ローカルバッファキュー内のメッセージの合計サイズ。
待機時間: メッセージが処理される前にメッセージがローカルバッファキューに格納される時間。
メトリックの詳細
1秒あたりのメッセージングトランザクション (TPS) 、メッセージングのAPI呼び出し、およびメッセージ量に関連するメトリックの値は、サイズが4 KBの通常のメッセージに基づいて計算されます。 大きなメッセージと注目メッセージのメトリック値を計算するときは、倍数が使用されます。 詳細については、「コンピューティング仕様」をご参照ください。
次の表に、ApsaraMQ for RocketMQのメトリックに関連するフィールドを示します。
項目 | 有効値 |
メートルのタイプ |
|
ラベル |
|
ブローカーに関連する指標
タイプ | 名前 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_instance_requests_max | 回/秒 | 1分あたりのインスタンスのメッセージングTPSの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。 |
|
ゲージ | rocketmq_instance_requests_in_max | 回/秒 | インスタンスでTPSを送信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。 |
|
ゲージ | rocketmq_instance_requests_out_max | 回/秒 | インスタンスでTPSを受信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。 |
|
ゲージ | rocketmq_topic_requests_max | 回/秒 | インスタンスのトピックでTPSを送信するメッセージの1分あたりの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。 |
|
ゲージ | rocketmq_group_requests_max | 回/秒 | インスタンスのコンシューマーグループでTPSを受信するメッセージの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは、1分サイクルに基づいて1秒ごとに1つのサンプルを収集します。 60個のサンプルのうちの最大値を使用する。 |
|
ゲージ | rocketmq_instance_requests_in_threshold | 回/秒 | インスタンスで送信するメッセージのスロットリングしきい値。 |
|
ゲージ | rocketmq_instance_requests_out_threshold | 回/秒 | インスタンスでのメッセージ受信のスロットリングしきい値。 |
|
ゲージ | rocketmq_throttled_requests_in | 集計 | メッセージ送信中のスロットリングされたリクエストの数。 |
|
ゲージ | rocketmq_throttled_requests_out | 集計 | メッセージ受信中のスロットル要求の数。 |
|
ゲージ | rocketmq_instance_elastic_requests_max | 回/秒 | インスタンス内のメッセージングTPSの最大スケーリング値。 |
|
Counter | rocketmq_requests_in_total | 集計 | メッセージを送信するために開始されたAPI呼び出しの数。 |
|
Counter | rocketmq_requests_out_total | 集計 | メッセージを受信するために開始されたAPI呼び出しの数。 |
|
Counter | rocketmq_messages_in_total | message | プロデューサーがブローカーに送信するメッセージの数。 |
|
Counter | rocketmq_messages_out_total | message | ブローカーが消費者に配信するメッセージの数。 メッセージには、処理中、正常に処理され、処理に失敗したメッセージが含まれます。 |
|
Counter | rocketmq_throughput_in_total | バイト | プロデューサーがブローカーにメッセージを送信するときのスループット。 |
|
Counter | rocketmq_througput_out_total | バイト | ブローカーが消費者にメッセージを配信するときのスループット。 メッセージには、処理中、正常に処理され、処理に失敗したメッセージが含まれます。 |
|
Counter | rocketmq_internet_througput_out_total | バイト | メッセージングに使用されるアウトバウンドインターネットトラフィックの量。 |
|
ヒストグラム | rocketmq_message_size | バイト | メッセージサイズの分布。 このメトリックのデータは、メッセージが送信された場合にのみ収集されます。 以下の項目は、配布範囲を示しています。
|
|
ゲージ | rocketmq_consumer_ready_messages | message | 準備完了メッセージの数。 準備完了メッセージは、ブローカーで準備ができているメッセージであり、消費者が使用できます。 このメトリックは、コンシューマーによって処理されないメッセージの数を反映します。 |
|
ゲージ | rocketmq_consumer_inflight_messages | message | 機内メッセージの数。 このメトリックは、消費者クライアントが処理しており、クライアントが消費結果を返していないメッセージの総数を反映します。 |
|
ゲージ | rocketmq_consumer_queueing_latency | ミリ秒 | コンシューマグループ内の準備完了メッセージのキューイング時間。 現在の時点と最も早いメッセージの準備ができた時点との間の時間差。 このメトリックは、コンシューマがメッセージをプルする時間を示します。 |
|
ゲージ | rocketmq_consumer_lag_latency | ミリ秒 | メッセージが消費されるまでの遅延時間。 最も早い未確認メッセージの準備時間と現在の時間の間の間隔。 このメトリックは、コンシューマがメッセージを処理する時間を示します。 |
|
Counter | rocketmq_send_to_dlq_messages | message | 1分あたりの新しいデッドレターメッセージの数。 無効メッセージは、再試行の最大数に達した後に配信されないメッセージです。 デッドレターメッセージは、特定のトピックに保存されるか、コンシューマーグループに設定されたデッドレターポリシーに基づいて破棄されます。 |
|
ゲージ | rocketmq_storage_size | バイト | すべてのファイルで使用されるストレージスペースを含む、インスタンスで使用されるストレージスペースのサイズ。 |
|
プロデューサーに関連するメトリック
タイプ | 名前 | 単位 | 説明 | ラベル |
ヒストグラム | rocketmq_send_cost_time | ミリ秒 | メッセージを送信するためのAPI操作を正常に呼び出すために消費された時間の分布。 以下の項目は、配布範囲を示しています。
|
|
消費者に関連するメトリック
タイプ | 名前 | 単位 | 説明 | ラベル |
ヒストグラム | rocketmq_process_time | ミリ秒 | 成功した処理と失敗した処理を含む、プッシュコンシューマがメッセージを処理するために消費した時間の分布。 このメトリックの値は、次の式を使用して計算されます。 以下の項目は、配布範囲を示しています。
|
|
ゲージ | rocketmq_consumer_cached_messages | message | プッシュコンシューマのローカルバッファキュー内のメッセージの数。 |
|
ゲージ | rocketmq_consumer_cached_bytes | バイト | プッシュコンシューマのローカルバッファキュー内のメッセージの合計サイズ。 |
|
ヒストグラム | rocketmq_await_time | ミリ秒 | プッシュコンシューマのローカルバッファキュー内のメッセージのキューイング時間の分布。 このメトリックの値は、次の式を使用して計算されます。 以下の項目は、配布範囲を示しています。
|
|
課金
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コンソールの次のページでダッシュボードメトリクスを表示できます。
ダッシュボードページ: インスタンスのすべてのトピックと消費者グループに関するメトリックを表示します。
インスタンスの詳細ページ: 指定されたインスタンスのプロデューサ概要、課金メトリック、およびスロットリングメトリックを表示します。
トピックの詳細ページ: 指定されたトピックのメッセージ作成クライアントとプロデューサークライアントに関連するメトリックを表示します。
グループ詳細ページ: 指定されたコンシューマグループのメッセージ蓄積およびコンシューマクライアントに関連するメトリックを表示します。
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
次のいずれかの方法を使用してダッシュボードを表示します。
インスタンスの詳細 ページで、ダッシュボード タブをクリックします。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、ダッシュボード をクリックします。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、トピックの管理 をクリックします。 表示されるページで、管理するトピックの名前をクリックします。 トピックの詳細 ページで、ダッシュボード タブをクリックします。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、グループ管理 をクリックします。 表示されるページで、管理するグループの名前をクリックします。 グループ詳細 ページで、ダッシュボード タブをクリックします。
FAQ about the dashboard
ダッシュボードでメトリックを取得するにはどうすればよいですか?
Alibaba Cloudアカウントを使用してARMSコンソールにログインします。
左側のナビゲーションウィンドウで、[統合センター] をクリックします。
[統合センター] ページで、検索フィールドに
RocketMQ
と入力し、検索アイコンをクリックします。検索結果で、モニタリングデータをARMSに統合するクラウドサービスを選択します。 例: Aliyun RocketMQ (5.0) サービス 詳細については、「手順1: クラウドサービスのモニタリングデータをマネージドサービスFor Prometheusに統合する」をご参照ください。
クラウドサービスのモニタリングデータをARMSに統合した後、左側のナビゲーションウィンドウで [統合管理] をクリックします。
[クラウドサービスリージョン] タブで、管理する環境の名前をクリックします。
[コンポーネント管理] タブの [基本情報] セクションで、[デフォルトメトリックストレージ] の横にあるクラウドサービスリージョンをクリックします。
表示されるページの [設定] タブで、さまざまな種類のデータへのアクセス方法を表示します。
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です。