ApsaraMQ for Kafka でメッセージをコンシュームできない、メッセージの損失や遅延が発生した場合は、メッセージクエリ機能を使用してメッセージの詳細とプロパティを表示し、トラブルシューティングを行うことができます。パーティション ID とメッセージオフセットがわかっている場合は、オフセットでメッセージをクエリします。メッセージの場所はわからないが、いつ送信されたかがわかっている場合は、時間でメッセージをクエリします。
注意
ApsaraMQ for Kafka コンソールでは、クエリされた各メッセージのコンテンツが最大 1 KB 表示されます。1 KB を超えるコンテンツは自動的に切り捨てられます。完全なメッセージコンテンツを表示するには、メッセージをダウンロードできます。ダウンロードされるメッセージの最大サイズは 10 MB です。メッセージが 10 MB より大きい場合、コンテンツの最初の 10 MB のみがダウンロードされます。
クエリ結果には最大 10 件のメッセージが表示され、その合計サイズは 10 MB を超えることはできません。
たとえば、最初の 3 つのメッセージの合計サイズが 10 MB を超える場合、最初の 2 つのメッセージのみが表示されます。
10 件のメッセージの合計サイズが 10 MB 未満の場合、10 件すべてのメッセージが表示されます。
メッセージをクエリできるかどうかは、ApsaraMQ for Kafka のメッセージクリーンアップポリシーによって異なります。
ディスク使用率が 75% 未満の場合、メッセージ保存期間を超えたメッセージは毎日 04:00 に削除されます。
ディスク使用率が 75% 以上 85% 未満の場合、ディスク使用率が 75% を下回るまで、メッセージ保存期間を超えたメッセージが削除されます。
ディスク使用率が 85% 以上 90% 未満の場合、保存期間に関係なく、最も古い保存メッセージがパージされます。
ディスク使用率が 90% 以上の場合、サービスの安定性を確保するために書き込み保護が有効になります。新しいメッセージは書き込めません。
重要ApsaraMQ for Kafka がメッセージをパージするとき、少なくとも 1 つのストレージファイルを保持します。したがって、保存期間を超えたメッセージをクエリできる場合があります。
オフセットによるメッセージのクエリ
ApsaraMQ for Kafka コンソールにログインします。
概要 ページの リソースの分布 セクションで、管理する ApsaraMQ for Kafka インスタンスが存在するリージョンを選択します。
インスタンスリスト ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、メッセージクエリ をクリックします。
メッセージクエリ ページで、クエリモード ドロップダウンリストから 位置によるクエリ を選択します。
Topic リストで Topic を選択します。パーティション リストでパーティションを選択します。開始点 テキストボックスにメッセージオフセットを入力し、クエリ をクリックします。
結果には、指定されたオフセットのメッセージと後続のメッセージが表示されます。たとえば、パーティション 5 を選択し、開始オフセットを 5 に設定すると、結果はパーティション 5 のオフセット 5 から始まります。
表 1. クエリ結果のパラメーター
パラメーター
説明
パーティション
メッセージの Topic パーティション。
オフセット
メッセージのオフセット。
Key
メッセージキー。キーは文字列に変換されます。
Value
メッセージの値。メッセージのコンテンツです。値は文字列に変換されます。
ヘッダー
メッセージのヘッダー情報。これは [trace-id=123] のようなキーと値のペアとして表示されます。設定されていない場合、デフォルト値は [] です。
CompressionType
メッセージに使用される圧縮タイプ。デフォルト値は none で、圧縮がないことを示します。
メッセージ作成時間
メッセージの送信時にクライアントによって指定または含まれる
ProducerRecordオブジェクトでのメッセージ作成時間。説明このフィールドが設定されている場合、設定された値が表示されます。
このフィールドが設定されていない場合、デフォルトでメッセージが送信されたときのシステム時刻が使用されます。
表示される値が 1970/x/x x:x:x のフォーマットである場合、送信時間は 0 または別の無効な値として設定されていました。
バージョン 0.9 以前の ApsaraMQ for Kafka クライアントは、この時間の設定をサポートしていません。
操作
キーのダウンロード をクリックしてメッセージキーをダウンロードします。
値のダウンロード をクリックしてメッセージコンテンツをダウンロードします。
時間によるメッセージのクエリ
すべてのパーティションから時間によってメッセージをクエリできます。メッセージの場所はわからないが、送信されたおおよその時刻がわかっている場合は、時点を指定できます。クエリは、指定された時刻以降に送信されたメッセージを返します。
メッセージクエリ ページで、クエリモード ドロップダウンリストから 時点によるクエリ を選択します。
Topic リストで Topic を選択します。パーティション リストでパーティションを選択します。時間 セクションで時間を選択し、クエリ をクリックします。
指定された時点以降に送信されたメッセージが表示されます。クエリ結果のパラメーターの詳細については、「クエリ結果のパラメーター」をご参照ください。
すべてのパーティション を選択すると、すべてのパーティションのメッセージが表示されます。
特定のパーティションを選択すると、そのパーティションのメッセージのみが表示されます。
関連ドキュメント
詳細については、「用語」をご参照ください。
詳細については、「コンシューマーのステータスを表示する」をご参照ください。