21.3. メトリクスファイルの例
Grafana ダッシュボードおよびその他のメトリック設定ファイルの例は、Streams for Apache Kafka によって提供される 設定ファイルの例 を参照してください。
Streams for Apache Kafka で提供されるメトリックファイルの例
metrics ├── grafana-dashboards 1 │ ├── strimzi-cruise-control.json │ ├── strimzi-kafka-bridge.json │ ├── strimzi-kafka-connect.json │ ├── strimzi-kafka-exporter.json │ ├── strimzi-kafka-mirror-maker-2.json │ ├── strimzi-kafka.json │ ├── strimzi-operators.json │ └── strimzi-zookeeper.json ├── grafana-install │ └── grafana.yaml 2 ├── prometheus-additional-properties │ └── prometheus-additional.yaml 3 ├── prometheus-alertmanager-config │ └── alert-manager-config.yaml 4 ├── prometheus-install │ ├── alert-manager.yaml 5 │ ├── prometheus-rules.yaml 6 │ ├── prometheus.yaml 7 │ └── strimzi-pod-monitor.yaml 8 ├── kafka-bridge-metrics.yaml 9 ├── kafka-connect-metrics.yaml 10 ├── kafka-cruise-control-metrics.yaml 11 ├── kafka-metrics.yaml 12 └── kafka-mirror-maker-2-metrics.yaml 13
- 1
- 異なる Streams for Apache Kafka コンポーネントの Grafana ダッシュボードの例。
- 2
- Grafana イメージのインストールファイル。
- 3
- CPU、メモリー、およびディスクボリュームの使用状況についてのメトリックをスクレープする追加の設定。これらのメトリックは、ノード上の OpenShift cAdvisor エージェントおよび kubelet から直接提供されます。
- 4
- Alertmanager による通知送信のためのフック定義。
- 5
- Alertmanager をデプロイおよび設定するためのリソース。
- 6
- Prometheus Alertmanager と使用するアラートルールの例 (Prometheus とデプロイ)。
- 7
- Prometheus イメージのインストールリソースファイル。
- 8
- Prometheus Operator によって Prometheus サーバーのジョブに変換される PodMonitor の定義。これにより、Pod から直接メトリックデータをスクレープできます。
- 9
- メトリックが有効になっている Kafka Bridge リソース。
- 10
- Kafka Connect に対する Prometheus JMX Exporter の再ラベル付けルールを定義するメトリック設定。
- 11
- Cruise Control に対する Prometheus JMX Exporter の再ラベル付けルールを定義するメトリック設定。
- 12
- Kafka および ZooKeeper に対する Prometheus JMX Exporter の再ラベル付けルールを定義するメトリック設定。
- 13
- Kafka Mirror Maker 2 に対する Prometheus JMX Exporter の再ラベル付けルールを定義するメトリクス設定。
21.3.1. Prometheus メトリクス設定の例
Streams for Apache Kafka は、Prometheus JMX Exporter を使用して、Prometheus サーバーによってスクレープできる HTTP エンドポイント経由でメトリックを公開します。
Grafana ダッシュボードは、カスタムリソース設定の Streams for Apache Kafka コンポーネントに対して定義される Prometheus JMX Exporter の再ラベル付けルールに依存します。
ラベルは名前と値のペアです。再ラベル付けは、ラベルを動的に書き込むプロセスです。たとえば、ラベルの値は Kafka サーバーおよびクライアント ID の名前から派生されます。
Streams for Apache Kafka は、再ラベル付けルールが含まれるカスタムリソース設定 YAML ファイルのサンプルを提供します。Prometheus メトリック設定をデプロイする場合、カスタムリソースのサンプルをデプロイすることや、メトリック設定を独自のカスタムリソース定義にコピーすることができます。
コンポーネント | カスタムリソース | サンプル YAML ファイル |
---|---|---|
Kafka および ZooKeeper |
|
|
Kafka Connect |
|
|
Kafka MirrorMaker 2 |
|
|
Kafka Bridge |
|
|
Cruise Control |
|
|
21.3.2. アラート通知の Prometheus ルールの例
アラート通知の Prometheus ルールの例は、Streams for Apache Kafka によって提供される メトリック設定ファイルの例 と共に提供されます。ルールは、Prometheus デプロイメント で使用するための prometheus-rules.yaml
ファイルのサンプルに指定されています。
prometheus-rules.yaml
ファイルには、以下のコンポーネントのルールの例が含まれます。
- Kafka
- ZooKeeper
- Entitiy Operator
- Kafka Connect
- Kafka Bridge
- MirrorMaker
- Kafka Exporter
各ルールの例の説明は、ファイルに記載されています。
アラートルールによって、メトリックで監視される特定条件についての通知が提供されます。ルールは Prometheus サーバーで宣言されますが、アラート通知は Prometheus Alertmanager で対応します。
Prometheus アラートルールでは、継続的に評価される PromQL 表現を使用して条件が記述されます。
アラート表現が true になると、条件が満たされ、Prometheus サーバーからアラートデータが Alertmanager に送信されます。次に Alertmanager は、そのデプロイメントに設定された通信方法を使用して通知を送信します。
アラートルールの定義に関する一般的な留意点:
-
for
プロパティーは、ルールと併用し、アラートがトリガーされるまでに、条件を維持する必要のある期間を決定します。 -
ティック (tick) は ZooKeeper の基本的な時間単位です。ミリ秒単位で測定され、
Kafka.spec.zookeeper.config
のtickTime
パラメーターを使用して設定されます。たとえば、ZooKeeper でtickTime=3000
の場合、3 ティック (3 x 3000) は 9000 ミリ秒と等しくなります。 -
ZookeeperRunningOutOfSpace
メトリックおよびアラートを利用できるかどうかは、使用される OpenShift 設定およびストレージ実装によります。特定のプラットフォームのストレージ実装では、メトリクスによるアラートの提供に必要な利用可能な領域について情報が提供されない場合があります。
Alertmanager は、電子メール、チャットメッセージなどの通知方法を使用するように設定できます。ルールの例に含まれるデフォルト設定は、特定のニーズに合わせて調整してください。
21.3.3. Grafana ダッシュボードのサンプル
Prometheus をデプロイしてメトリックを提供する場合は、Streams for Apache Kafka で提供される Grafana ダッシュボードのサンプルを使用して、Streams for Apache Kafka コンポーネントを監視できます。
ダッシュボードのサンプルは、examples/metrics/grafana-dashboards
ディレクトリーに JSON ファイルで提供されます。
すべてのダッシュボードは、JVM メトリクスに加えてコンポーネントに固有のメトリクスを提供します。たとえば、Streams for Apache Kafka Operator の Grafana ダッシュボードは、調整の数または処理中のカスタムリソースに関する情報を提供します。
ダッシュボードのサンプルには、Kafka でサポートされるすべてのメトリックは表示されません。ダッシュボードには、監視用の代表的なメトリックのセットが表示されます。
コンポーネント | JSON ファイルの例: |
---|---|
Streams for Apache Kafka Operator |
|
Kafka |
|
ZooKeeper |
|
Kafka Connect |
|
Kafka MirrorMaker 2 |
|
Kafka Bridge |
|
Cruise Control |
|
Kafka Exporter |
|
クラスターにまだトラフィックがないため、Kafka Exporter でメトリックを使用できない場合、Kafka Exporter の Grafana ダッシュボードでは、数値フィールドに N/A
が、グラフに No data to show
が表示されます。