このページでは、Apache Kafka バックエンドのデフォルトメトリックについて説明します。Javaエージェントには、Apache KafkaのProducerおよびConsumerによって公開された主要なメトリックに対するルールがあります。デフォルトで収集されないJMKメトリックをモニタリングするには、MBeanブラウザを使用してKafka JMXメトリックを選択し、それに対するルールを作成します。

Kafka Producer JMXメトリック

  • Response rate:Broker から Producer に応答が受信される比率
  • Request rate:Producer から Broker にリクエストデータが送信される比率
  • Request latency average:Producer による KafkaProducer.send() の実行から、Broker からの応答が受信されるまでの平均時間
  • Outgoing byte rate:Producerのネットワークスループット
  • IO wait time:CPUがアイドル状態で、少なくとも1つのI/Oオペレーションが進行中である時間の割合
  • Record error rate:結果としてエラーになった1秒あたりの平均レコード送信回数
  • Waiting threads:レコードがキューに入れられるまでバッファメモリを待機しているブロック済みユーザースレッドの数
  • Requests in flight:現在、応答を待機している未処理リクエストの数
  • Network IO rate:すべての接続でのネットワークオペレーション、読み取り、または書き込みの1秒あたりの平均数

Kafka Consumer JMXメトリック

  • Records lag max:時間枠内のパーティションのレコード数に関する最大ラグ
  • Bytes consumed rate:1秒あたりに消費されたバイトの平均数
  • Fetch rate:1秒あたりのフェッチリクエストの数
  • Records consumed rate:1秒あたりに消費されたレコードの平均数
  • Fetch latency max:フェッチリクエストにかかる最大時間

KafkaサーバーJMXメトリック

  • broker-request-total-time-ms合計エンドツーエンド時間(ミリ秒)。
  • broker-request-send-response-ms:キューから取り出された応答が非ブロッキング IO を介してリモートで送信されます。このメトリックでは、応答がキューから取り出されてから送信が完了するまでの時間が示されます。 
  • broker-request-response-queue-ms:応答もキューに追加されます。ネットワークプロセッサごとのキュー数は 1 です。この応答はネットワークプロセッサによってキューから取り出され、返送されます。このメトリックでは、このキューで待機に費やされた時間が示されます。 
  • broker-request-remote-time-msリクエストをリモート処理する必要がある場合は、このメトリックでリモート処理に費やされた時間が示されます。たとえば、Producer リクエストの場合、acks を -1 に設定すると、フォロワーから肯定応答が受信されるまでリクエストが完了しません。このメトリックでは、フォロワーの待機に費やされた時間が示されます。フェッチするデータが十分でない場合は、フェッチリクエストが遅延する可能性もあります。このメトリックでは、その時間も考慮されます。
  • broker-request-processing-msリクエストが KafkaAPI で処理されます。このメトリックでは、処理に費やされた時間が示されます。このメトリックが高い場合は、関連するリクエストハンドラをデバッグします。 
  • broker-request-queue-time-msリクエストが共通キューに追加されます。キュー内の項目は、リクエストハンドラスレッドで処理されます。これらのハンドラスレッドの数は、num.io.threads パラメータを使用して構成できます。このメトリックでは、このキュー内でリクエストに費やされた平均時間が示されます。このメトリックが高い場合は、ハンドラスレッドを増やします。