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

ApsaraMQ for Kafka:アラートとコンソールの蓄積が異なるのはなぜですか?

最終更新日:Jun 21, 2026

このトピックでは、メッセージ蓄積アラートとコンソールのメッセージ蓄積が異なる理由について説明します。

症状

メッセージ蓄積アラートとコンソールのメッセージ蓄積の間に差異が見られる場合があります。

たとえば、コンシューマーグループ詳細ページの[Prometheus Monitoring]タブで、上部の[Total Message Accumulation]カードに 36 という値が表示されています。しかし、下部の Prometheus モニタリング折れ線グラフでは、特定の時点でメッセージ蓄積が約 300 まで急増し、その後横ばいになっていることが示されています。この 2 つの値は大きく異なります。

考えられる原因

原因 1

パーティションのメッセージ蓄積は、パーティションの最大オフセット - パーティションのコンシューマーオフセットとして計算されます。合計メッセージ蓄積は、すべてのパーティションのメッセージ蓄積の合計です。

たとえば、m個のコンシューマーグループとn個のトピックを持つインスタンスで、各コンシューマーグループがすべてのトピックをサブスクライブしている場合を考えます。コンシューマーグループのメッセージ蓄積は、次の 2 つの方法で計算できます。

  • 標準リクエスト方式

    この方式では、コンシューマーグループのコンシューマーオフセットを取得するために RPC リクエストを送信し、サブスクライブしているトピックのパーティションの最大オフセットを取得するために別の RPC リクエストを送信します。この方式では、少なくともm * n * ブローカーノード数の RPC リクエストが生成され、モニタリング効率に大きな影響を与えます。

  • バッチリクエスト方式

    この方式では、まずすべてのコンシューマーグループのすべてのコンシューマーオフセットをバッチで取得します。次に、別のバッチリクエストで、サブスクライブしているすべてのパーティションの最大オフセットを取得します。このアプローチにより、RPC リクエスト数がm * n * ブローカーノード数からブローカーノード数のみに削減されます。ただし、バッチ処理の性質上、コンシューマーオフセットの取得と最大オフセットの取得の間に遅延が発生します。この遅延中、新しいメッセージが生成されると、パーティションの最大オフセットが増加し続ける可能性があります。この時間差により、メッセージ蓄積の計算が不正確になります。

コンソールの [グループ詳細] ページに表示される [合計メッセージ蓄積量] は、コンシューマーオフセットと最大パーティションオフセットを取得するために、個別の RPC リクエストを発行することで算出されます。これら 2 つの RPC リクエスト間の時間差は小さいため、実際のメッセージ蓄積量との差異も小さくなります。モニタリング用のメッセージ蓄積量は、バッチリクエストを使用して取得されます。この方法では、コンシューマーオフセットの取得と最大パーティションオフセットの取得の間にタイムラグが生じ、その結果、計算された蓄積量に必然的に差異が発生します。このため、メッセージ蓄積アラートの値がコンソールのメッセージ蓄積量と一致しない場合があります。

原因 2

消費が遅く、ディスク使用率が高い場合、インスタンスは消費される前にメッセージを削除する可能性があります。これにより、パーティションのコンシューマーオフセットが最小オフセットよりも小さくなる可能性があります。オープンソース Apache Kafka と Message Queue for Apache Kafka は、この状況を異なる方法で処理します。

  • オープンソース Apache Kafka

    デフォルトでは、合計を計算する際にこのメッセージ蓄積を無視します。

  • Message Queue for Apache Kafka

    パーティションの異常なコンシューマーオフセットをより迅速に検出できるように、モニタリングアラートポリシーはこれらをメッセージ蓄積アラートとして報告し、必要に応じて処理できるようにします。

コンソールで異常なパーティションと正常なパーティションを区別しやすくするために、Message Queue for Apache Kafka[グループ詳細] ページの [合計メッセージ蓄積量] から、異常なパーティションのメッセージ蓄積量を除外します。このため、監視システムによって報告されるメッセージ蓄積量は、コンソールのメッセージ蓄積量よりもはるかに大きくなります。これにより、メッセージ蓄積アラートとコンソールのメッセージ蓄積量との間に不一致が生じます。

説明
  • このアラートを無視する場合は、コンソールでコンシューマーオフセットを 0 にリセットできます。オフセットをリセットすると、Message Queue for Apache Kafka は、そのコンシューマーグループ内の対応するトピックに対してメッセージ蓄積アラートをトリガーしなくなります。詳細については、「コンシューマーオフセットのリセット」をご参照ください。

  • この機能を一時的に無効にする必要がある場合は、チケットを送信してください。

次の例は、この動作を示しています。

  • コンソールの合計メッセージ蓄積とアラートの合計メッセージ蓄積が一致しません。

    Kafka コンシューマーグループ詳細ページで[Prometheus Monitoring]タブを選択します。上部の[Total Message Accumulation]には 13,568 と表示されていますが、下部の[Total Message Accumulation]折れ線グラフでは、過去 30 分間蓄積が安定していることが示されています。

  • コンソールの合計メッセージ蓄積は異常な蓄積を除外します。

    コンシューマーグループ詳細ページでは、[Total Message Accumulation]が上部のカードに表示されます。[Consumption Status]タブでは、[Accumulation]列に各トピックの蓄積が表形式で表示されます。

  • トピックの消費詳細には、コンシューマーオフセットが最小オフセットよりも小さい異常な蓄積を持つパーティションが表示されます。

    たとえば、パーティション 0 の[Consumer Offset]は 1 ですが、[Minimum Offset]は 97,413,417,052 です。[Accumulation]は -- と表示され、合計には含まれません。