Google Cloud Managed Service for Apache Kafka クラスタをモニタリングする

Managed Service for Apache Kafka は、Kafka クラスタのモニタリングに使用できる指標を収集します。このページでは、 Google Cloud コンソールでこれらの指標を表示する方法について説明します。

概要

Managed Service for Apache Kafka は、オープンソースの Kafka ディストリビューションで使用可能な複数の指標と、コンシューマー グループのオフセット ラグなどのサービス固有の指標をエクスポートします。

指標は、次の 4 つのリソース カテゴリに分類されます。

  • クラスタ: これらの指標は、クラスタの全体的な健全性を維持するのに役立ちます。

  • トピック: パブリッシャーとコンシューマーのレートとエラーが含まれます。Kafka アプリケーションの全体的な健全性と、ブローカー固有の問題をモニタリングします。

  • トピック パーティション: これらの指標は、キーの分布の不均一など、個々のパーティションに固有のパフォーマンスの問題をモニタリングしてデバッグすることを目的としています。

  • トピック パーティション コンシューマー グループ: これらの指標は、主にコンシューマー ラグなど、コンシューマー アプリケーションの健全性をモニタリングします。コンシューマー グループのオープンソース Kafka エラー指標は、パーティション別には使用できません。トピック レベルでのみ使用できます。

一部の指標はブローカー インデックスでグループ化できます。ブローカー インデックスに基づいて、そのブローカーがプロビジョニングされているゾーンを検索できます。詳細については、ブローカーを表示するをご覧ください。

Kafka クラスタの指標を表示する

指標は次の方法で表示できます。

  • [クラスタの詳細] ページには、クラスタ、トピック、コンシューマー グループのモニタリング ダッシュボードが含まれています。これらのダッシュボードには、クラスタの全体的な健全性とパフォーマンスを確認できる事前定義されたグラフが含まれています。

  • Metrics Explorer を使用すると、利用可能なすべての指標を表示したり、カスタムグラフを作成したり、複数のクラスタ間で指標を集計したりできます。

必要なロールと権限

モニタリング グラフを表示するために必要な権限を取得するには、プロジェクトに対する Managed Kafka 閲覧者 roles/managedkafka.Viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

モニタリング ダッシュボードを使用する

Managed Service for Apache Kafka クラスタのモニタリング ダッシュボードを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[クラスタ] ページに移動します。

    [クラスタ] に移動

  2. クラスタの名前をクリックします。

  3. クラスタの指標を表示するには、[モニタリング] タブを選択します。

  4. クラスタ内のトピックの指標を表示するには:

    1. [リソース] タブを選択します。

    2. [トピック] リストで、トピックの名前をクリックします。

    3. [トピックの詳細] ページで、[モニタリング] タブを選択します。

  5. クラスタ内のコンシューマー グループの指標を表示するには:

    1. [リソース] タブを選択します。

    2. [コンシューマー グループ] リストで、コンシューマー グループの名前をクリックします。

    3. [コンシューマー グループの詳細] ページで、[モニタリング] タブを選択します。

詳細については、Kafka クラスタを表示するをご覧ください。

Metrics Explorer を使用する

Metrics Explorer を使用して Managed Service for Apache Kafka の指標を表示する手順は次のとおりです。

  1. Google Cloud コンソールで、Metrics Explorer のページに移動します。

    Metrics Explorer に移動

  2. [構成] セクションで [指標を選択] をクリックします。

  3. フィルタに「Apache Kafka」と入力します。

  4. [アクティブなリソース] で、次のいずれかを選択します。

    • Apache Kafka クラスタ

    • Apache Kafka トピック

    • Apache Kafka トピック パーティション

    • Apache Kafka トピック パーティション コンシューマー グループ

  5. 指標を選択して [適用] をクリックします。

Metrics Explorer の詳細については、Metrics Explorer でグラフを作成するをご覧ください。

Managed Service for Apache Kafka の指標

次の表に、Kafka クラスタとクラスタ リソースのモニタリングによく使用される指標を示します。使用可能な指標の一覧については、Google Cloud 指標をご覧ください。

Managed Service for Apache Kafka サービスは、サービス URL managedkafka.googleapis.com で識別されます。

クラスタ指標

次の指標はクラスタに適用されます。特定のクラスタの指標を表示するには、cluster_id ラベルでフィルタします。

指標 説明 同等の MBean 名
cpu/core_usage_time クラスタの累積 CPU 使用率(vCPU 単位)。これは、クラスタの運用費用の全体像を把握するうえで役立ちます。 なし
cpu/limit クラスタに構成されている現在の CPU 数。cpu/usage 指標を使用して、CPU 使用率を比率としてモニタリングするために使用できます。 なし
memory/usage クラスタの現在の RAM 使用量。memory/limit 指標を使用して、RAM 使用率を比率としてモニタリングするために使用できます。 なし
memory/limit クラスタの現在の構成済み RAM サイズ。memory/usage 指標を使用して、RAM 使用率を比率としてモニタリングするために使用できます。 なし
cluster_byte_in_count すべてのトピックに送信されたクライアントからのバイト数の合計。 kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
cluster_byte_out_count すべてのトピックからクライアントに送信されたバイト数の合計。 kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
cluster_message_in_count すべてのトピックにパブリッシュされたメッセージの総数。 kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
request_count ブローカーに送信されたリクエストの総数 kafka.network:type=RequestMetrics,name=RequestsPerSec,request= {Produce|FetchConsumer|FetchFollower},version=([0-9]+)
request_byte_count クラスタに対して行われたリクエストの合計サイズ(バイト単位)。 kafka.network:type=RequestMetrics,name=RequestBytes,request= ([-.\w]+)
partitions このクラスタが処理する現在のパーティション数(ブローカー別)。 kafka.server:type=ReplicaManager,name=PartitionCount
request_latencies さまざまなパーセンタイルで、各リクエストにかかったミリ秒数 kafka.network:type=RequestMetrics,name=TotalTimeMs,request= {Produce|FetchConsumer|FetchFollower}
consumer_groups ブローカーから消費しているコンシューマー グループの現在の数 kafka.server:type=GroupMetadataManager,name=NumGroups
offline_partitions コントローラによって観測されたオフライン トピック パーティションの数。 kafka.controller:type=KafkaController,name=OfflinePartitionCount

トピックの指標

次の指標はトピックに適用されます。特定のトピックの指標を表示するには、cluster_id ラベルと topic_id ラベルでフィルタします。

指標 説明 同等の MBean 名
message_in_count トピックにパブリッシュされたメッセージの総数。 kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec, topic=([-.\w]+)
byte_in_count クライアントからトピックに送信された合計バイト数。 kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=([-.\w]+)
topic_request_count トピックに対して行われた生成リクエストとフェッチ リクエストの合計数。 kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=([-.\w]+)
topic_error_count トピックに対して行われた失敗した生成リクエストと失敗したフェッチ リクエストの合計数。 kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=([-.\w]+)
byte_out_count クライアントに送信されたバイト数の合計。 kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec, topic=([-.\w]+)

パーティション指標

次の指標はパーティションに適用されます。トピック内の特定のパーティションの指標を表示するには、cluster_idtopic_idpartition_index ラベルでフィルタします。

指標 説明 同等の MBean 名
consumer_lag リーダーと各フォロワー レプリカ間のメッセージのレプリケーション ラグ。 kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
log_segments 現在のログセグメントの数。これは、ストレージ ティアリングが正常な状態を維持するために役立ちます。 kafka.log:type=Log,name=NumLogSegments,topic=([-.\w]+),partition=([0-9]+)
first_offset トピック内の各パーティションの最初のオフセット。last_offset と組み合わせて使用すると、保存されているメッセージの総数の上限をモニタリングしたり、最も古いメッセージの実際のオフセットを見つけたりできます。 kafka.log:type=Log,name=LogStartOffset,topic=([-.\w]+),partition=([0-9]+)
last_offset パーティション内の最後のオフセット。これは、各パーティションの最新のオフセットを時間の経過とともに見つけるために使用できます。これは、過去の特定の時点からデータを再処理するために必要な特定のオフセットを特定するのに役立ちます。 kafka.log:type=Log,name=LogEndOffset,topic=([-.\w]+),partition=([0-9]+)
byte_size ディスク上のパーティションのサイズ(バイト単位)。 なし

コンシューマー グループの指標

次の指標はコンシューマー グループに適用されます。特定のコンシューマー グループの指標を表示するには、consumer_group_id ラベルでフィルタします。

指標 説明 同等の MBean 名
offset_lag 各パーティションのコンシューマー グループの最新のオフセットと最後にコミットされたオフセットの差。この指標は、コンシューマーがまだ正常に処理していない生成済みメッセージの数を見積もります。 なし

次のステップ