ApsaraMQ for RocketMQは、分散アーキテクチャを中心に構築されたビジネスにおける非同期デカップリングの重要なサービスです。 ApsaraMQ for RocketMQによって提供されるトレースデータは、ビジネスのアップストリームおよびダウンストリームアプリケーションを効果的に接続します。 これは、例外の特定とトラブルシューティングに役立ちます。 このトピックでは、メッセージトレースが適用可能なシナリオと、ApsaraMQ for RocketMQが提供するトレースパラメーターについて説明します。 このトピックでは、メッセージトレースを表示する方法についても説明します。
一般的なシナリオ
メッセージングの重要なデータは、ApsaraMQ for RocketMQのトレースパラメーターとして定義されています。 ApsaraMQ for RocketMQは、クエリと分析の結果をグラフに表示する視覚化機能を提供します。 メッセージトレースを照会することで、ビジネスステータスをすばやく取得し、例外を特定できます。
メッセージトレースが使用される一般的なシナリオを次に示します。
シナリオ1: メッセージが送信または消費されたかどうかを確認します。
シナリオ2: スケジュールまたは遅延メッセージがスケジュールされた時間に配信されるかどうかを確認します。
シナリオ3: トランザクションメッセージがコミットまたはロールバックされているかどうかを確認します。
シナリオ4: トラブルシューティングのためにプロデューサーとコンシューマーのID情報とマシン情報を確認します。
トレースパラメーター
次の表に、ApsaraMQ for RocketMQのトレースパラメーターを示します。
カテゴリ | パラメーター | 説明 |
プロデューサー | プロデューサー情報 | プロデューサーがメッセージの送信に使用したApsaraMQ for RocketMQアカウントまたはAccessKey ID。 |
ホスト名 | プロデューサクライアントが存在するマシンのホスト名。 | |
送信日時 | プロデューサーがメッセージの送信を開始した時刻。 | |
到着 | メッセージがApsaraMQ for RocketMQブローカーに保存された時刻。 | |
送信結果 | メッセージ送信の結果。 有効な値:
| |
基本メッセージ情報 | メッセージタイプ | |
メッセージID | メッセージのグローバル一意識別子。 この識別子は、ApsaraMQ for RocketMQによって自動的に生成されます。 | |
トピック | メッセージが属するトピックの名前。 | |
メッセージキー | メッセージキー。 メッセージのキーは、ビジネスロジックを一意に識別するためにプロデューサによって設定されたビジネス識別子である。 | |
メッセージタグ | メッセージタグ。 タグは、特定のトピック内のメッセージの消費タイプを指定するために使用されます。 | |
注文メッセージ | メッセージグループ | メッセージが属するグループ。 順序付けられたメッセージが属するグループは、プロデューサによって指定される。 同じグループ内のメッセージは、先入れ先出し (FIFO) の順序で処理されます。 |
トランザクションメッセージ | コールバック時間をチェック | ハーフメッセージのトランザクションステータスがチェックされたコールバック時刻。 |
コミット日時 | トランザクションメッセージがブローカーによってコンシューマーにコミットされた時刻。 | |
ロールバック | トランザクションメッセージがロールバックされた時刻。 | |
予定メッセージ | プリセット遅延時間 | メッセージの送信がスケジュールされた時刻。 |
消費者 | 消費結果 | メッセージの消費結果。 有効な値:
|
消費者情報 | コンシューマーがメッセージのサブスクライブに使用したApsaraMQ for RocketMQアカウントまたはAccessKey ID。 | |
ホスト名 | コンシューマークライアントが存在するマシンのホスト名。 | |
注文配達 | コンシューマーが属するコンシューマーグループに対して注文配信が有効になっているかどうかを示します。 | |
受渡し時間 | ApsaraMQ for RocketMQブローカーがコンシューマーにメッセージを配信した時刻。 | |
応答時間 | ApsaraMQ for RocketMQブローカーが消費者から返された消費結果を受け取った時刻。 | |
見えない期間 | 単純な消費者によって送信されたメッセージが見えない期間。 詳細については、「シンプルモードで使用されるメッセージの再試行ポリシー」をご参照ください。 | |
見えない期間の変更 | シンプルなコンシューマーがChangeInvisibleDuration操作を呼び出した時刻。 | |
デッドレターキューに入る時間 | メッセージの消費に失敗した場合にメッセージがデットレターキューに配信された時刻。 |
制限事項
デフォルトでは、メッセージトレース機能はApache RocketMQ 3.xまたは4.x SDKを使用するクライアントでは無効になっています。 詳細については、「概要」をご参照ください。 このようなクライアントを使用し、ApsaraMQ for RocketMQコンソールでメッセージトレースを照会する場合は、メッセージングコードでメッセージトレース機能を有効にする必要があります。 次の項目では、メッセージングコードの詳細な設定について説明します。
プロデューサー
producer.setAccessChannel(AccessChannel.CLOUD);
消費者
consumer.setAccessChannel(AccessChannel.CLOUD);
課金ルール
ApsaraMQ For RocketMQインスタンスのサブスクリプションおよび従量課金制の場合、メッセージトレース機能はデフォルトで無料で有効になっています。
サーバーレスApsaraMQ For RocketMQインスタンスの場合、メッセージトレース機能を手動で有効または無効にできます。 詳細については、「サーバーレスインスタンスのメッセージトレース機能の有効化または無効化」をご参照ください。
サーバーレスApsaraMQ for RocketMQインスタンスのメッセージトレース機能を有効にした場合、生成されたメッセージトレースの数に基づいてメッセージトレース料金が請求されます。 詳細については、「メッセージトレース料金」をご参照ください。
ストレージ期間:
ApsaraMQ For RocketMQインスタンスのサブスクリプションおよび従量課金制の場合、メッセージトレースは3日間保持できます。
サーバーレスApsaraMQ For RocketMQインスタンスの場合、メッセージトレースは14日間保持できます。
照会メソッド
ApsaraMQ for RocketMQでは、次のいずれかの方法を使用してメッセージトレースを照会できます。
メッセージIDによるクエリ: この方法は、正確な一致と高速性のために推奨されます。
メッセージキーによるクエリ: このメソッドはあいまいクエリです。 この方法を使用すると、一度に最大1,000のメッセージトレースを照会できます。 クエリするメッセージのキーがわかっているが、メッセージのIDがわからない場合は、このメソッドを使用できます。
トピックによるクエリ: このメソッドは範囲クエリです。 メッセージIDやメッセージキーが記録されておらず、メッセージ数が少ないシナリオに適しています。 このクエリ方法は使用しないことを推奨します。 ほとんどの場合、特定の時間範囲内のトピックでは多数のメッセージが生成されます。 この方法を使用すると、クエリされたメッセージの中から特定のメッセージを特定することはほとんどできません。
サーバーレスインスタンスのメッセージトレース機能の有効化または無効化
サーバーレスApsaraMQ for RocketMQインスタンスのメッセージトレース機能を無効にすると、インスタンスのメッセージトレースを保存またはクエリできなくなり、ApsaraMQ for RocketMQコンソールにメッセージトレースのエントリポイントが表示されなくなります。
サーバーレスApsaraMQ for RocketMQインスタンスのメッセージトレース機能を有効にすると、メッセージトレースに対して課金されます。 詳細については、「メッセージトレース料金」をご参照ください。
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
インスタンスの詳細 ページで、基本情報 タブをクリックします。 メッセージトレースカードで、有効にする または 無効にする をクリックします。
表示されたメッセージボックスで、確定 をクリックします。
メッセージトレースの照会
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、メッセージトレース をクリックします。 メッセージトレース ページで、クエリ方法を選択して、クエリタスクを作成します。
クエリ結果に基づいてトレースの詳細を表示します。