21.2. Cruise Control 操作の監視
Cruise Control は、ブローカー、トピック、およびパーティションの使用状況を追跡するために Kafka ブローカーを監視します。Cruise Control は、独自のパフォーマンスを監視するためのメトリックのセットも提供します。
Cruise Control メトリックレポーターは、Kafka ブローカーから未加工のメトリックデータを収集します。データは、Cruise Control によって自動的に作成されるトピックに生成されます。メトリクスは、Kafka クラスターの最適化提案の生成 に使用されます。
Cruise Control メトリックは、Cruise Control 操作のリアルタイム監視で利用できます。たとえば、Cruise Control メトリックを使用して、実行中のリバランス操作のステータスを監視したり、操作のパフォーマンスで検出された異常についてアラートを提供したりできます。
Cruise Control 設定で Prometheus JMX Exporter を有効にして Cruise Control メトリクスを公開します。
センサー として知られる利用可能な Cruise Control メトリクスの完全なリストは、Cruise Control のドキュメントを 参照してください。
21.2.1. 分散スコアの監視
Cruise Control メトリックには、分散スコアが含まれます。分散度は、Kafka クラスター内でワークロードがどの程度均等に分散されているかを示す尺度です。
分散スコア (balancedness-score
) の Cruise Control メトリクスは、KafkaRebalance
リソースの分散スコアとは異なる可能性があります。Cruise Control は anomaly.detection.goals
を使用して各スコアを計算します。これは、KafkaRebalance
リソースで使用される default.goals
と同じでない可能性があります。anomaly.detection.goals
は、Kafka
カスタムリソースの spec.cruiseControl.config
に指定されます。
KafkaRebalance
リソースを更新すると、最適化プロポーザルをフェッチします。以下の条件のいずれかが適用されると、キャッシュされた最新の最適化プロポーザルがフェッチされます。
-
KafkaRebalance
goals
は、Kafka
リソースのdefault.goals
セクションに設定されたゴールと一致する。 -
KafkaRebalance
goals
は指定されていない。
これ以外の場合は、Cruise Control は KafkaRebalance goals
に基づいて、新しい最適化プロポーザルを生成します。更新ごとに新しいプロポーザルが生成されると、パフォーマンスの監視に影響を及ぼす可能性があります。
21.2.2. 異常検出のアラートを設定する
Cruise Control の 異常検出 は、ブローカーの障害などの最適化ゴールの生成をブロックする条件のメトリクスデータを提供します。可視性を高める場合は、異常検出器が提供するメトリックを使用して、アラートを設定し、通知を送信できます。Cruise Control の 異常通知機能 を設定して、指定された通知チャネルを介してこれらのメトリクスに基づいてアラートをルーティングできます。または、Prometheus を設定して、異常検出器によって提供されるメトリックデータをスクレープし、アラートを生成することもできます。その後、Prometheus Alertmanager は Prometheus で生成されるアラートをルーティングできます。
Cruise Control ドキュメント には、AnomalyDetector
メトリクスおよび異常通知機能に関する情報が記載されています。