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」をご参照ください。
次の項目では、プッシュモードでメッセージを消費するときのローカルバッファキューに関連するメトリックについて説明します。
メッセージ量: ローカルバッファキュー内のメッセージの総数
メッセージサイズ: ローカルバッファキュー内のメッセージの合計サイズ
待機時間: メッセージが処理される前にメッセージがローカルバッファキューに格納される時間
メトリックの詳細
次の表に、ApsaraMQ for RocketMQのメトリックに関連するフィールドを示します。
項目 | 値 |
メートルのタイプ |
|
ラベル |
|
ブローカーに関連する指標
データ型 | 名前 | 単位 | 説明 | ラベル |
ゲージ | rocketmq_instance_requests_max | count/秒 | インスタンスの1分あたりのメッセージングTPSの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは1分サイクルに基づいて毎秒1つのTPS値を収集します。 60個の値のうちの最大値が使用される。 |
|
ゲージ | rocketmq_instance_requests_in_max | count/秒 | インスタンスの1分あたりのTPSを送信するメッセージの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは1分サイクルに基づいて毎秒1つのTPS値を収集します。 60個の値のうちの最大値が使用される。 |
|
ゲージ | rocketmq_instance_requests_out_max | count/秒 | インスタンスの1分あたりのメッセージ消費TPSの最大値。 制限されたリクエストは除外されます。 値を決定するためのルール: システムは1分サイクルに基づいて毎秒1つのTPS値を収集します。 60個の値のうちの最大値が使用される。 |
|
ゲージ | rocketmq_instance_requests_in_threshold | count/秒 | インスタンスで送信するメッセージのスロットリングしきい値。 |
|
ゲージ | rocketmq_instance_requests_out_threshold | count/秒 | インスタンス内のメッセージ消費のスロットリングしきい値。 |
|
ゲージ | rocketmq_throttled_requests_in | count | メッセージ送信のスロットリング時間。 |
|
ゲージ | rocketmq_throttled_requests_out | count | メッセージ消費のスロットリング時間。 |
|
ゲージ | rocketmq_instance_elastic_requests_max | count/秒 | インスタンスのメッセージングTPSの最大スケーリング値。 |
|
Counter | rocketmq_requests_in_total | count | メッセージを送信するために開始されたAPI呼び出しの数。 |
|
Counter | rocketmq_requests_out_total | count | メッセージを消費するために開始された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
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です。