このセクションでは、Managed Service for Apache Kafka のモニタリングに使用できるモニタリング指標の概要について説明します。このドキュメントでは、Monitoring を使用して Google Cloud コンソールで Managed Service for Apache Kafka の使用状況をモニタリングする方法についても説明します。
Managed Service for Apache Kafka の指標の完全なセットに加えて、他の Google Cloud リソースの指標も表示する場合は、Monitoring を使用します。
それ以外の場合は、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 指標を表示する手順は次のとおりです。
Google Cloud コンソールで、[モニタリング] ページに移動します。
ナビゲーション パネルで、[Metrics Explorer] を選択します。
[構成] セクションで [指標を選択] をクリックします。
フィルタに「
Apache Kafka」と入力します。[アクティブなリソース] で、次のいずれかを選択します。
Apache Kafka クラスタ
Apache Kafka トピック
Apache Kafka トピック パーティション
Apache Kafka トピック パーティション コンシューマー グループ
指標を選択して [適用] をクリックします。
特定の指標のページが開きます。
モニタリング ダッシュボードの詳細については、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 | 各パーティションのコンシューマー グループの最新のオフセットと最後にコミットされたオフセットの差。この指標は、コンシューマーがまだ正常に処理していない生成済みメッセージの数を見積もります。 | なし |