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

Google Cloud コンソールまたは Cloud Monitoring API を使用して、Managed Service for Apache Kafka をモニタリングできます。

このセクションでは、Managed Service for Apache Kafka のモニタリングに使用できるモニタリング指標の概要について説明します。このドキュメントでは、Monitoring を使用して Google Cloud コンソールで Managed Service for Apache Kafka の使用状況をモニタリングする方法についても説明します。

Managed Service for Apache Kafka 指標の概要

Managed Service for Apache Kafka は、オープンソースの Kafka ディストリビューションで使用可能な複数の指標と、コンシューマー グループのオフセット ラグなどのサービス固有の指標をエクスポートします。モニタリングの場合、Managed Service for Apache Kafka サービスはサービス URL managedkafka.googleapis.com で識別されます。

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

  • クラスタ: これらの指標は、クラスタ全体の健全性を維持することを目的としています。

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

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

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

一部の指標はブローカー別にグループ化できます。Managed Service for Apache Kafka サービス自体はブローカーをリソースとして公開しませんが、ブローカーのモニタリングは、ブローカーの過負荷によるレイテンシなどの障害シナリオを検出するために不可欠です。

指標の名前は、サービス API URL、モニタリング対象リソース、指標を含む命名規則に従います。たとえば、トピック message_in_count の指標識別子は managedkafka.googleapis.com/Topic/message_in_count です。

これらの指標にアクセスするには、単一の Managed Service for Apache Kafka 指標を表示するをご覧ください。

始める前に

Monitoring を使用する前に、課金が有効になっている Managed Service for Apache Kafka プロジェクトが準備されていることを確認します。これを行う方法の 1 つは、Managed Service for Apache Kafka のクイックスタートを完了することです。

必要なロールと権限

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

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

このロールの詳細については、Managed Service for Apache Kafka の事前定義ロールをご覧ください。

単一の Managed Service for Apache Kafka 指標を表示する

Google Cloud コンソールを使用して 1 つの Managed Service for Apache Kafka 指標を表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[モニタリング] ページに移動します。

    [モニタリング] に移動

  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。

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

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

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

    • Apache Kafka クラスタ

    • Apache Kafka トピック

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

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

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

    特定の指標のページが開きます。

モニタリング ダッシュボードの詳細については、Cloud Monitoring のドキュメントをご覧ください。

クラスタ指標

指標 説明 同等の 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

トピックの指標

指標 説明 同等の 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]+)

パーティション指標

指標 説明 同等の 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 ディスク上のパーティションのサイズ(バイト単位)。 -

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

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

次のステップ