21.3. 指标文件示例
您可以在 Apache Kafka 的 Streams 提供 的示例配置文件 中找到 Grafana 仪表板和其他指标配置文件示例。
由 Apache Kafka Streams 提供的指标文件示例
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
- Apache Kafka 组件的不同流的 Grafana 仪表板示例。
- 2
- Grafana 镜像的安装文件。
- 3
- 用于提取 CPU、内存和磁盘卷使用情况的指标的额外配置,它们直接来自节点上的 OpenShift cAdvisor 代理和 kubelet。
- 4
- 用于通过 Alertmanager 发送通知的 hook 定义。
- 5
- 用于部署和配置 Alertmanager 的资源。
- 6
- 与 Prometheus Alertmanager 搭配使用的警报规则示例(使用 Prometheus 部署)。
- 7
- Prometheus 镜像的安装资源文件。
- 8
- Prometheus Operator 将 PodMonitor 定义转换为 Prometheus 服务器的作业,以便直接从 Pod 中提取指标数据。
- 9
- 启用指标的 Kafka Bridge 资源。
- 10
- 为 Kafka Connect 定义 Prometheus JMX Exporter 重新标记规则的指标配置。
- 11
- 为 Cruise 控制定义 Prometheus JMX Exporter 重新标记规则的指标配置。
- 12
- 为 Kafka 和 ZooKeeper 定义 Prometheus JMX Exporter 重新标记规则的指标配置。
- 13
- 为 Kafka MirrorMaker 2 定义 Prometheus JMX Exporter 重新标记规则的指标配置。
21.3.1. Prometheus 指标配置示例
Apache Kafka 的 Streams 使用 Prometheus JMX Exporter 通过 HTTP 端点公开指标,该端点可以被 Prometheus 服务器提取。
Grafana 仪表板依赖于 Prometheus JMX Exporter 重新标记规则,这些规则在自定义资源配置中为 Apache Kafka 组件定义。
标签是一个 name-value 对。重新标记是动态写入标签的过程。例如,标签的值可能源自 Kafka 服务器和客户端 ID 的名称。
Apache Kafka 的流提供了带有重新标记规则的自定义资源配置 YAML 文件示例。在部署 Prometheus 指标配置时,您可以部署示例自定义资源,或者将指标配置复制到您自己的自定义资源定义中。
组件 | 自定义资源 | YAML 文件示例 |
---|---|---|
Kafka 和 ZooKeeper |
|
|
Kafka Connect |
|
|
Kafka MirrorMaker 2 |
|
|
Kafka Bridge |
|
|
Sything Control |
|
|
21.3.2. 警报通知的 Prometheus 规则示例
警报通知的 Prometheus 规则示例提供了 Apache Kafka 的 Streams 提供的 指标配置文件示例。规则在 prometheus-rules.yaml
示例中指定,用于在 Prometheus 部署中使用。
prometheus-rules.yaml
文件包含以下组件的示例规则:
- Kafka
- ZooKeeper
- Entity 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
参数进行配置。例如,如果 ZooKeepertickTime=3000
,3 ticks (3 x 3000)等于 9000 毫秒。 -
ZookeeperRunningOutOfSpace
指标和警报的可用性取决于所使用的 OpenShift 配置和存储实现。某些平台的存储实现可能无法提供指标提供警报所需的可用空间的信息。
Alertmanager 可以配置为使用电子邮件、聊天消息或其他通知方法。根据您的特定需求,调整示例规则的默认配置。
21.3.3. Grafana 仪表板示例
如果部署 Prometheus 以提供指标,您可以使用 Apache Kafka 提供的流 Grafana 仪表板示例来监控 Apache Kafka 组件的 Streams。
示例仪表板在 examples/metrics/grafana-dashboards
目录中作为 JSON 文件提供。
所有仪表板都提供 JVM 指标,以及特定于组件的指标。例如,Apache Kafka operator 的 Streams 的 Grafana 仪表板提供有关它们正在处理的协调或自定义资源数量的信息。
示例仪表板不显示 Kafka 支持的所有指标。仪表板填充了用于监控的指标集合。
组件 | JSON 文件示例 |
---|---|
Apache Kafka operator 的流 |
|
Kafka |
|
ZooKeeper |
|
Kafka Connect |
|
Kafka MirrorMaker 2 |
|
Kafka Bridge |
|
Sything Control |
|
Kafka Exporter |
|
当 Kafka Exporter 不可用指标时,因为集群中没有流量,Kafka Exporter Grafana 仪表板将显示 N/A
用于数字字段,且没有 显示图形的数据
。