Skip to content

Commit 5a2b8c7

Browse files
authored
Merge pull request #128 from Yolean/metrics-jmx-for-brokers
Add Kafka Prometheus metrics export
2 parents 35aa519 + a564ed2 commit 5a2b8c7

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

prometheus/10-metrics-config.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
kind: ConfigMap
2+
metadata:
3+
name: jmx-config
4+
namespace: kafka
5+
apiVersion: v1
6+
data:
7+
8+
jmx-kafka-prometheus.yml: |+
9+
lowercaseOutputName: true
10+
jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:5555/jmxrmi
11+
ssl: false
12+
whitelistObjectNames: ["kafka.server:*","kafka.controller:*","java.lang:*"]
13+
rules:
14+
- pattern : kafka.server<type=ReplicaFetcherManager, name=MaxLag, clientId=(.+)><>Value
15+
- pattern : kafka.server<type=BrokerTopicMetrics, name=(BytesInPerSec|BytesOutPerSec|MessagesInPerSec), topic=(.+)><>OneMinuteRate
16+
- pattern : kafka.server<type=KafkaRequestHandlerPool, name=RequestHandlerAvgIdlePercent><>OneMinuteRate
17+
- pattern : kafka.server<type=Produce><>queue-size
18+
- pattern : kafka.server<type=ReplicaManager, name=(PartitionCount|UnderReplicatedPartitions)><>(Value|OneMinuteRate)
19+
- pattern : kafka.server<type=controller-channel-metrics, broker-id=(.+)><>(.*)
20+
- pattern : kafka.server<type=socket-server-metrics, networkProcessor=(.+)><>(.*)
21+
- pattern : kafka.server<type=Fetch><>queue-size
22+
- pattern : kafka.server<type=SessionExpireListener, name=(.+)><>OneMinuteRate
23+
- pattern : kafka.controller<type=KafkaController, name=(.+)><>Value
24+
- pattern : java.lang<type=OperatingSystem><>SystemCpuLoad
25+
- pattern : java.lang<type=Memory><HeapMemoryUsage>used
26+
- pattern : java.lang<type=OperatingSystem><>FreePhysicalMemorySize
27+
28+
jmx-zookeeper-prometheus.yaml: |+
29+
rules:
30+
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d)><>(\\w+)"
31+
name: "zookeeper_$2"
32+
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d), name1=replica.(\\d)><>(\\w+)"
33+
name: "zookeeper_$3"
34+
labels:
35+
replicaId: "$2"
36+
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d), name1=replica.(\\d), name2=(\\w+)><>(\\w+)"
37+
name: "zookeeper_$4"
38+
labels:
39+
replicaId: "$2"
40+
memberType: "$3"
41+
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d), name1=replica.(\\d), name2=(\\w+), name3=(\\w+)><>(\\w+)"
42+
name: "zookeeper_$4_$5"
43+
labels:
44+
replicaId: "$2"
45+
memberType: "$3"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# meant to be applied using
2+
# kubectl --namespace kafka patch statefulset kafka --patch "$(cat prometheus/50-kafka-jmx-exporter-patch.yml )"
3+
apiVersion: apps/v1beta2
4+
kind: StatefulSet
5+
metadata:
6+
name: kafka
7+
namespace: kafka
8+
spec:
9+
template:
10+
metadata:
11+
annotations:
12+
prometheus.io/scrape: "true"
13+
prometheus.io/port: "5556"
14+
spec:
15+
containers:
16+
- name: metrics
17+
image: solsson/kafka-prometheus-jmx-exporter@sha256:a23062396cd5af1acdf76512632c20ea6be76885dfc20cd9ff40fb23846557e8
18+
command:
19+
- java
20+
- -XX:+UnlockExperimentalVMOptions
21+
- -XX:+UseCGroupMemoryLimitForHeap
22+
- -XX:MaxRAMFraction=1
23+
- -XshowSettings:vm
24+
- -jar
25+
- jmx_prometheus_httpserver.jar
26+
- "5556"
27+
- /etc/jmx-kafka/jmx-kafka-prometheus.yml
28+
ports:
29+
- containerPort: 5556
30+
resources:
31+
requests:
32+
cpu: 0m
33+
memory: 60Mi
34+
limits:
35+
memory: 120Mi
36+
volumeMounts:
37+
- name: jmx-config
38+
mountPath: /etc/jmx-kafka
39+
volumes:
40+
- name: jmx-config
41+
configMap:
42+
name: jmx-config

0 commit comments

Comments
 (0)