1+ {{- if .Values.cluster.jmxMetrics.enabled -}}
2+ kind : ConfigMap
3+ apiVersion : v1
4+ metadata :
5+ name : {{ include "strimzi-cluster.fullname" $ }}-jmx-metrics
6+ labels :
7+ {{- include "strimzi-cluster.labels" $ | nindent 4 }}
8+ data :
9+ # See https://github.com/strimzi/strimzi-kafka-operator/blob/main/examples/metrics/kafka-metrics.yaml
10+ kafka-metrics-config.yml : |
11+ # See https://github.com/prometheus/jmx_exporter for more info about JMX Prometheus Exporter metrics
12+ lowercaseOutputName: true
13+ rules:
14+ # Special cases and very specific rules
15+ - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
16+ name: kafka_server_$1_$2
17+ type: GAUGE
18+ labels:
19+ clientId: "$3"
20+ topic: "$4"
21+ partition: "$5"
22+ - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
23+ name: kafka_server_$1_$2
24+ type: GAUGE
25+ labels:
26+ clientId: "$3"
27+ broker: "$4:$5"
28+ - pattern: kafka.server<type=(.+), cipher=(.+), protocol=(.+), listener=(.+), networkProcessor=(.+)><>connections
29+ name: kafka_server_$1_connections_tls_info
30+ type: GAUGE
31+ labels:
32+ cipher: "$2"
33+ protocol: "$3"
34+ listener: "$4"
35+ networkProcessor: "$5"
36+ - pattern: kafka.server<type=(.+), clientSoftwareName=(.+), clientSoftwareVersion=(.+), listener=(.+), networkProcessor=(.+)><>connections
37+ name: kafka_server_$1_connections_software
38+ type: GAUGE
39+ labels:
40+ clientSoftwareName: "$2"
41+ clientSoftwareVersion: "$3"
42+ listener: "$4"
43+ networkProcessor: "$5"
44+ - pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total):"
45+ name: kafka_server_$1_$4
46+ type: COUNTER
47+ labels:
48+ listener: "$2"
49+ networkProcessor: "$3"
50+ - pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+):"
51+ name: kafka_server_$1_$4
52+ type: GAUGE
53+ labels:
54+ listener: "$2"
55+ networkProcessor: "$3"
56+ - pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total)
57+ name: kafka_server_$1_$4
58+ type: COUNTER
59+ labels:
60+ listener: "$2"
61+ networkProcessor: "$3"
62+ - pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+)
63+ name: kafka_server_$1_$4
64+ type: GAUGE
65+ labels:
66+ listener: "$2"
67+ networkProcessor: "$3"
68+ # Some percent metrics use MeanRate attribute
69+ # Ex) kafka.server<type=(KafkaRequestHandlerPool), name=(RequestHandlerAvgIdlePercent)><>MeanRate
70+ - pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>MeanRate
71+ name: kafka_$1_$2_$3_percent
72+ type: GAUGE
73+ # Generic gauges for percents
74+ - pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>Value
75+ name: kafka_$1_$2_$3_percent
76+ type: GAUGE
77+ - pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*, (.+)=(.+)><>Value
78+ name: kafka_$1_$2_$3_percent
79+ type: GAUGE
80+ labels:
81+ "$4": "$5"
82+ # Generic per-second counters with 0-2 key/value pairs
83+ - pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+), (.+)=(.+)><>Count
84+ name: kafka_$1_$2_$3_total
85+ type: COUNTER
86+ labels:
87+ "$4": "$5"
88+ "$6": "$7"
89+ - pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+)><>Count
90+ name: kafka_$1_$2_$3_total
91+ type: COUNTER
92+ labels:
93+ "$4": "$5"
94+ - pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*><>Count
95+ name: kafka_$1_$2_$3_total
96+ type: COUNTER
97+ # Generic gauges with 0-2 key/value pairs
98+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Value
99+ name: kafka_$1_$2_$3
100+ type: GAUGE
101+ labels:
102+ "$4": "$5"
103+ "$6": "$7"
104+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Value
105+ name: kafka_$1_$2_$3
106+ type: GAUGE
107+ labels:
108+ "$4": "$5"
109+ - pattern: kafka.(\w+)<type=(.+), name=(.+)><>Value
110+ name: kafka_$1_$2_$3
111+ type: GAUGE
112+ # Emulate Prometheus 'Summary' metrics for the exported 'Histogram's.
113+ # Note that these are missing the '_sum' metric!
114+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Count
115+ name: kafka_$1_$2_$3_count
116+ type: COUNTER
117+ labels:
118+ "$4": "$5"
119+ "$6": "$7"
120+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
121+ name: kafka_$1_$2_$3
122+ type: GAUGE
123+ labels:
124+ "$4": "$5"
125+ "$6": "$7"
126+ quantile: "0.$8"
127+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Count
128+ name: kafka_$1_$2_$3_count
129+ type: COUNTER
130+ labels:
131+ "$4": "$5"
132+ - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
133+ name: kafka_$1_$2_$3
134+ type: GAUGE
135+ labels:
136+ "$4": "$5"
137+ quantile: "0.$6"
138+ - pattern: kafka.(\w+)<type=(.+), name=(.+)><>Count
139+ name: kafka_$1_$2_$3_count
140+ type: COUNTER
141+ - pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
142+ name: kafka_$1_$2_$3
143+ type: GAUGE
144+ labels:
145+ quantile: "0.$4"
146+ # KRaft overall related metrics
147+ # distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
148+ - pattern: "kafka.server<type=raft-metrics><>(.+-total|.+-max):"
149+ name: kafka_server_raftmetrics_$1
150+ type: COUNTER
151+ - pattern: "kafka.server<type=raft-metrics><>(current-state): (.+)"
152+ name: kafka_server_raftmetrics_$1
153+ value: 1
154+ type: UNTYPED
155+ labels:
156+ $1: "$2"
157+ - pattern: "kafka.server<type=raft-metrics><>(.+):"
158+ name: kafka_server_raftmetrics_$1
159+ type: GAUGE
160+ # KRaft "low level" channels related metrics
161+ # distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
162+ - pattern: "kafka.server<type=raft-channel-metrics><>(.+-total|.+-max):"
163+ name: kafka_server_raftchannelmetrics_$1
164+ type: COUNTER
165+ - pattern: "kafka.server<type=raft-channel-metrics><>(.+):"
166+ name: kafka_server_raftchannelmetrics_$1
167+ type: GAUGE
168+ # Broker metrics related to fetching metadata topic records in KRaft mode
169+ - pattern: "kafka.server<type=broker-metadata-metrics><>(.+):"
170+ name: kafka_server_brokermetadatametrics_$1
171+ type: GAUGE
172+ {{- end }}
0 commit comments