237 lines
7.5 KiB
YAML
237 lines
7.5 KiB
YAML
|
{{- if index .Values "data-prepper" "enabled" }}
|
||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||
|
kind: KafkaNodePool
|
||
|
metadata:
|
||
|
name: kraft
|
||
|
labels:
|
||
|
strimzi.io/cluster: telemetry
|
||
|
{{- include "kubezero-lib.labels" . | nindent 4 }}
|
||
|
spec:
|
||
|
replicas: 1
|
||
|
roles:
|
||
|
- controller
|
||
|
- broker
|
||
|
storage:
|
||
|
type: jbod
|
||
|
volumes:
|
||
|
- id: 0
|
||
|
type: persistent-claim
|
||
|
size: 4Gi
|
||
|
deleteClaim: true
|
||
|
kraftMetadata: shared
|
||
|
---
|
||
|
|
||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||
|
kind: Kafka
|
||
|
metadata:
|
||
|
name: telemetry
|
||
|
annotations:
|
||
|
strimzi.io/node-pools: enabled
|
||
|
strimzi.io/kraft: enabled
|
||
|
{{- include "kubezero-lib.labels" . | nindent 4 }}
|
||
|
spec:
|
||
|
kafka:
|
||
|
version: 3.8.0
|
||
|
metadataVersion: 3.8-IV0
|
||
|
listeners:
|
||
|
- name: plain
|
||
|
port: 9092
|
||
|
type: internal
|
||
|
tls: false
|
||
|
- name: tls
|
||
|
port: 9093
|
||
|
type: internal
|
||
|
tls: true
|
||
|
config:
|
||
|
offsets.topic.replication.factor: 1
|
||
|
transaction.state.log.replication.factor: 1
|
||
|
transaction.state.log.min.isr: 1
|
||
|
default.replication.factor: 1
|
||
|
min.insync.replicas: 1
|
||
|
{{- if .Values.metrics.enabled }}
|
||
|
metricsConfig:
|
||
|
type: jmxPrometheusExporter
|
||
|
valueFrom:
|
||
|
configMapKeyRef:
|
||
|
name: kafka-metrics
|
||
|
key: kafka-metrics-config.yml
|
||
|
{{- end }}
|
||
|
# entityOperator:
|
||
|
# topicOperator: {}
|
||
|
# userOperator: {}
|
||
|
|
||
|
{{- if .Values.metrics.enabled }}
|
||
|
---
|
||
|
kind: ConfigMap
|
||
|
apiVersion: v1
|
||
|
metadata:
|
||
|
name: kafka-metrics
|
||
|
labels:
|
||
|
{{- include "kubezero-lib.labels" . | nindent 4 }}
|
||
|
data:
|
||
|
kafka-metrics-config.yml: |
|
||
|
# See https://github.com/prometheus/jmx_exporter for more info about JMX Prometheus Exporter metrics
|
||
|
lowercaseOutputName: true
|
||
|
rules:
|
||
|
# Special cases and very specific rules
|
||
|
- pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
|
||
|
name: kafka_server_$1_$2
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
clientId: "$3"
|
||
|
topic: "$4"
|
||
|
partition: "$5"
|
||
|
- pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
|
||
|
name: kafka_server_$1_$2
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
clientId: "$3"
|
||
|
broker: "$4:$5"
|
||
|
- pattern: kafka.server<type=(.+), cipher=(.+), protocol=(.+), listener=(.+), networkProcessor=(.+)><>connections
|
||
|
name: kafka_server_$1_connections_tls_info
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
cipher: "$2"
|
||
|
protocol: "$3"
|
||
|
listener: "$4"
|
||
|
networkProcessor: "$5"
|
||
|
- pattern: kafka.server<type=(.+), clientSoftwareName=(.+), clientSoftwareVersion=(.+), listener=(.+), networkProcessor=(.+)><>connections
|
||
|
name: kafka_server_$1_connections_software
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
clientSoftwareName: "$2"
|
||
|
clientSoftwareVersion: "$3"
|
||
|
listener: "$4"
|
||
|
networkProcessor: "$5"
|
||
|
- pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total):"
|
||
|
name: kafka_server_$1_$4
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
listener: "$2"
|
||
|
networkProcessor: "$3"
|
||
|
- pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+):"
|
||
|
name: kafka_server_$1_$4
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
listener: "$2"
|
||
|
networkProcessor: "$3"
|
||
|
- pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total)
|
||
|
name: kafka_server_$1_$4
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
listener: "$2"
|
||
|
networkProcessor: "$3"
|
||
|
- pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+)
|
||
|
name: kafka_server_$1_$4
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
listener: "$2"
|
||
|
networkProcessor: "$3"
|
||
|
# Some percent metrics use MeanRate attribute
|
||
|
# Ex) kafka.server<type=(KafkaRequestHandlerPool), name=(RequestHandlerAvgIdlePercent)><>MeanRate
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>MeanRate
|
||
|
name: kafka_$1_$2_$3_percent
|
||
|
type: GAUGE
|
||
|
# Generic gauges for percents
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>Value
|
||
|
name: kafka_$1_$2_$3_percent
|
||
|
type: GAUGE
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*, (.+)=(.+)><>Value
|
||
|
name: kafka_$1_$2_$3_percent
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
# Generic per-second counters with 0-2 key/value pairs
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+), (.+)=(.+)><>Count
|
||
|
name: kafka_$1_$2_$3_total
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
"$6": "$7"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+)><>Count
|
||
|
name: kafka_$1_$2_$3_total
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*><>Count
|
||
|
name: kafka_$1_$2_$3_total
|
||
|
type: COUNTER
|
||
|
# Generic gauges with 0-2 key/value pairs
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Value
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
"$6": "$7"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Value
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Value
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
# Emulate Prometheus 'Summary' metrics for the exported 'Histogram's.
|
||
|
# Note that these are missing the '_sum' metric!
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Count
|
||
|
name: kafka_$1_$2_$3_count
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
"$6": "$7"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
"$6": "$7"
|
||
|
quantile: "0.$8"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Count
|
||
|
name: kafka_$1_$2_$3_count
|
||
|
type: COUNTER
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
"$4": "$5"
|
||
|
quantile: "0.$6"
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Count
|
||
|
name: kafka_$1_$2_$3_count
|
||
|
type: COUNTER
|
||
|
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
|
||
|
name: kafka_$1_$2_$3
|
||
|
type: GAUGE
|
||
|
labels:
|
||
|
quantile: "0.$4"
|
||
|
# KRaft overall related metrics
|
||
|
# distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
|
||
|
- pattern: "kafka.server<type=raft-metrics><>(.+-total|.+-max):"
|
||
|
name: kafka_server_raftmetrics_$1
|
||
|
type: COUNTER
|
||
|
- pattern: "kafka.server<type=raft-metrics><>(current-state): (.+)"
|
||
|
name: kafka_server_raftmetrics_$1
|
||
|
value: 1
|
||
|
type: UNTYPED
|
||
|
labels:
|
||
|
$1: "$2"
|
||
|
- pattern: "kafka.server<type=raft-metrics><>(.+):"
|
||
|
name: kafka_server_raftmetrics_$1
|
||
|
type: GAUGE
|
||
|
# KRaft "low level" channels related metrics
|
||
|
# distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
|
||
|
- pattern: "kafka.server<type=raft-channel-metrics><>(.+-total|.+-max):"
|
||
|
name: kafka_server_raftchannelmetrics_$1
|
||
|
type: COUNTER
|
||
|
- pattern: "kafka.server<type=raft-channel-metrics><>(.+):"
|
||
|
name: kafka_server_raftchannelmetrics_$1
|
||
|
type: GAUGE
|
||
|
# Broker metrics related to fetching metadata topic records in KRaft mode
|
||
|
- pattern: "kafka.server<type=broker-metadata-metrics><>(.+):"
|
||
|
name: kafka_server_brokermetadatametrics_$1
|
||
|
type: GAUGE
|
||
|
{{- end }}
|
||
|
|
||
|
{{- end }}
|