Start of `jmx_exporter` is only delayed for 10 sec
[demos/kafka/monitoring] / kafka / jmx-exporter-config.yml
1 startDelaySeconds: 10
2 lowercaseOutputName: true
3 lowercaseOutputLabelNames: true
4 cacheRules: true
5 blacklistObjectNames:
6   - "kafka.consumer:type=*,id=*"
7   - "kafka.consumer:type=*,client-id=*"
8   - "kafka.consumer:type=*,client-id=*,node-id=*"
9   - "kafka.producer:type=*,id=*"
10   - "kafka.producer:type=*,client-id=*"
11   - "kafka.producer:type=*,client-id=*,node-id=*"
12   - "kafka.*:type=kafka-metrics-count,*"
13   # This will ignore the admin client metrics from Kafka Brokers and will blacklist certain metrics
14   # that do not make sense for ingestion.
15   # "kafka.admin.client:type=*, node-id=*, client-id=*"
16   # "kafka.admin.client:type=*, client-id=*"
17   # "kafka.admin.client:type=*, id=*"
18   - "kafka.admin.client:*"
19   - "kafka.server:type=*,cipher=*,protocol=*,listener=*,networkProcessor=*"
20   - "kafka.server:type=*"
21   - "kafka.server:type=app-info,id=*"
22   - "kafka.rest:*"
23   - "rest.utils:*"
24   - "io.confluent.common.security.jetty:*"
25   - "io.confluent.rest:*"
26   - "confluent.metadata.service:type=app-info,id=*"
27   - "confluent.metadata.service:type=app-info,client-id=*"
28   - "confluent.metadata:type=kafkaauthstore,*"
29 rules:
30   # This is by far the biggest contributor to the number of sheer metrics being produced.
31   # Always keep it on the top for the case of probability when so many metrics will hit the first condition and exit.
32   # "kafka.cluster:type=*, name=*, topic=*, partition=*"
33   # "kafka.log:type=*,name=*, topic=*, partition=*"
34   - pattern: kafka.(\w+)<type=(.+), name=(.+), topic=(.+), partition=(.+)><>Value
35     name: kafka_$1_$2_$3
36     type: GAUGE
37     labels:
38       topic: "$4"
39       partition: "$5"
40   # "kafka.server:type=*,name=*, client-id=*, topic=*, partition=*"
41   - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
42     name: kafka_server_$1_$2
43     type: GAUGE
44     labels:
45       clientId: "$3"
46       topic: "$4"
47       partition: "$5"
48   - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
49     name: kafka_server_$1_$2
50     type: GAUGE
51     labels:
52       clientId: "$3"
53       broker: "$4:$5"
54   # "kafka.network:type=*, name=*, request=*, error=*"
55   # "kafka.network:type=*, name=*, request=*, version=*"
56   - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>(Count|Value)
57     name: kafka_$1_$2_$3
58     labels:
59       "$4": "$5"
60       "$6": "$7"
61   - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
62     name: kafka_$1_$2_$3
63     type: GAUGE
64     labels:
65       "$4": "$5"
66       "$6": "$7"
67       quantile: "0.$8"
68   # "kafka.rest:type=*, topic=*, partition=*, client-id=*"
69   # "kafka.rest:type=*, cipher=*, protocol=*, client-id=*"
70   - pattern: kafka.(\w+)<type=(.+), (.+)=(.+), (.+)=(.+), (.+)=(.+)><>Value
71     name: kafka_$1_$2
72     labels:
73       "$3": "$4"
74       "$5": "$6"
75       "$7": "$8"
76   # Count and Value
77   # "kafka.server:type=*, name=*, topic=*"
78   # "kafka.server:type=*, name=*, clientId=*"
79   # "kafka.server:type=*, name=*, delayedOperation=*"
80   # "kafka.server:type=*, name=*, fetcherType=*"
81   # "kafka.network:type=*, name=*, networkProcessor=*"
82   # "kafka.network:type=*, name=*, processor=*"
83   # "kafka.network:type=*, name=*, request=*"
84   # "kafka.network:type=*, name=*, listener=*"
85   # "kafka.log:type=*, name=*, logDirectory=*"
86   # "kafka.log:type=*, name=*, op=*"
87   # "kafka.rest:type=*, node-id=*, client-id=*"
88   - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>(Count|Value)
89     name: kafka_$1_$2_$3
90     labels:
91       "$4": "$5"
92   # "kafka.consumer:type=*, topic=*, client-id=*"
93   # "kafka.producer:type=*, topic=*, client-id=*"
94   # "kafka.rest:type=*, topic=*, client-id=*"
95   # "kafka.server:type=*, broker-id=*, fetcher-id=*"
96   # "kafka.server:type=*, listener=*, networkProcessor=*"
97   - pattern: kafka.(\w+)<type=(.+), (.+)=(.+), (.+)=(.+)><>(Count|Value)
98     name: kafka_$1_$2
99     labels:
100       "$3": "$4"
101       "$5": "$6"
102   # - pattern: "kafka.(.+)<type=(.+), (.+)=(.+), (.+)=(.+)><>(.+):"
103   #   name: kafka_$1_$2
104   #   labels:
105   #     "$3": "$4"
106   #     "$5": "$6"
107   #     attribute_name: "$7"
108   # "kafka.network:type=*, name=*"
109   # "kafka.server:type=*, name=*"
110   # "kafka.controller:type=*, name=*"
111   # "kafka.databalancer:type=*, name=*"
112   # "kafka.log:type=*, name=*"
113   # "kafka.utils:type=*, name=*"
114   - pattern: kafka.(\w+)<type=(.+), name=(.+)><>(Count|Value)
115     name: kafka_$1_$2_$3
116   # "kafka.producer:type=*, client-id=*"
117   # "kafka.producer:type=*, id=*"
118   # "kafka.rest:type=*, client-id=*"
119   # "kafka.rest:type=*, http-status-code=*"
120   # "kafka.server:type=*, BrokerId=*"
121   # "kafka.server:type=*, listener=*"
122   # "kafka.server:type=*, id=*"
123   - pattern: kafka.(\w+)<type=(.+), (.+)=(.+)><>Value
124     name: kafka_$1_$2
125     labels:
126       "$3": "$4"
127   # - pattern: "kafka.(.+)<type=(.+), (.+)=(.+)><>(.+):"
128   #   name: kafka_$1_$2
129   #   labels:
130   #     "$3": "$4"
131   #     attribute_name: "$5"
132   - pattern: kafka.server<type=KafkaRequestHandlerPool, name=RequestHandlerAvgIdlePercent><>OneMinuteRate
133     name: kafka_server_kafkarequesthandlerpool_requesthandleravgidlepercent_total
134     type: GAUGE
135   # "kafka.server:type=*, listener=*, networkProcessor=*, clientSoftwareName=*, clientSoftwareVersion=*"
136   - pattern: kafka.server<type=socket-server-metrics, clientSoftwareName=(.+), clientSoftwareVersion=(.+), listener=(.+), networkProcessor=(.+)><>connections
137     name: kafka_server_socketservermetrics_connections
138     type: GAUGE
139     labels:
140       client_software_name: "$1"
141       client_software_version: "$2"
142       listener: "$3"
143       network_processor: "$4"
144   - pattern: "kafka.server<type=socket-server-metrics, listener=(.+), networkProcessor=(.+)><>(.+):"
145     name: kafka_server_socketservermetrics_$3
146     type: GAUGE
147     labels:
148       listener: "$1"
149       network_processor: "$2"
150   # - pattern: "kafka.server<type=socket-server-metrics, listener=(.+)><>(.+):"
151   #   name: kafka_server_socketservermetrics
152   #   type: GAUGE
153   #   labels:
154   #     listener: "$1"
155   #     attribute_name: "$2"
156   # "kafka.coordinator.group:type=*, name=*"
157   # "kafka.coordinator.transaction:type=*, name=*"
158   - pattern: kafka.coordinator.(\w+)<type=(.+), name=(.+)><>(Count|Value)
159     name: kafka_coordinator_$1_$2_$3
160   # Percentile
161   - pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
162     name: kafka_$1_$2_$3
163     type: GAUGE
164     labels:
165       "$4": "$5"
166       quantile: "0.$6"
167   - pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
168     name: kafka_$1_$2_$3
169     type: GAUGE
170     labels:
171       quantile: "0.$4"
172   # Additional Rules for Confluent Server Metrics
173   # 'confluent.metadata:type=*, name=*, topic=*, partition=*'
174   - pattern: confluent.(\w+)<type=(.+), (.+)=(.+), (.+)=(.+), (.+)=(.+)><>(Value|Count)
175     name: confluent_$1_$2
176     type: GAUGE
177     labels:
178       "$3": "$4"
179       "$5": "$6"
180       "$7": "$8"
181   # 'confluent.metadata.service:type=*, node-id=*, client-id=*'
182   - pattern: confluent.(.+)<type=(.+), (.+)=(.+), (.+)=(.+)><>Value
183     name: confluent_$1_$2
184     type: GAUGE
185     labels:
186       "$3": "$4"
187       "$5": "$6"
188   # 'confluent.metadata.service:type=*, node-id=*, client-id=*'
189   - pattern: 'confluent.metadata.service<type=(.+), (.+)=(.+), (.+)=(.+)><>(.+):'
190     name: $1
191     type: GAUGE
192     labels:
193       "$2": "$3"
194       "$4": "$5"
195       attribute_name: "$6"
196   # 'confluent.metadata.service:type=*, client-id=*'
197   # 'confluent.metadata.service:type=*, id=*'
198   # 'confluent.metadata:type=*, name=*'
199   # 'confluent.license:type=*, name=*'
200   - pattern: confluent.(.+)<type=(.+), (.+)=(.+)><>Value
201     name: confluent_$1_$2
202     type: GAUGE
203     labels:
204       "$3": "$4"
205   - pattern: 'confluent.(.+)<type=(.+), (.+)=(.+)><>(.+):'
206     name: confluent_$1_$2
207     type: GAUGE
208     labels:
209       "$3": "$4"
210       attribute_name: "$5"
211   # Quotas
212   - pattern : 'kafka.server<type=(Produce|Fetch|Request), user=(.+), client-id=(.+)><>(.+):'
213     name: kafka_server_$1_$4
214     type: GAUGE
215     labels:
216       user: "$2"
217       client-id: "$3"
218   
219   - pattern : 'kafka.server<type=(Produce|Fetch|Request), user=(.+)><>(.+):'
220     name: kafka_server_$1_$3
221     type: GAUGE
222     labels:
223       user: "$2"
224   
225   - pattern : 'kafka.server<type=(Produce|Fetch|Request), client-id=(.+)><>(.+):'
226     name: kafka_server_$1_$3
227     type: GAUGE
228     labels:
229       client-id: "$2"