From: Kai Moritz Date: Sat, 7 Oct 2023 13:03:14 +0000 (+0200) Subject: JMX-Exporter für Prometheus auf Port 80 aktiviert X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fmonitoring%2Fjmx-exporter;p=demos%2Fkafka%2Ftraining JMX-Exporter für Prometheus auf Port 80 aktiviert * Siehe: https://github.com/prometheus/jmx_exporter * Bereits in Confluent eingebaute Version 0.18.0 verwendet --- diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 9d42dbf..fabce58 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -22,10 +22,12 @@ services: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" KAFKA_OPTS: + -javaagent:/usr/share/java/cp-base-new/jmx_prometheus_javaagent-0.18.0.jar=0.0.0.0:80:/etc/jmx-exporter.yml -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9100 -Dcom.sun.management.jmxremote.authenticate=false volumes: + - ./jmx-exporter.yml:/etc/jmx-exporter.yml:ro - kafka-1-data:/var/lib/kafka/data ports: - 9081:9081 @@ -46,10 +48,12 @@ services: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" KAFKA_OPTS: + -javaagent:/usr/share/java/cp-base-new/jmx_prometheus_javaagent-0.18.0.jar=0.0.0.0:80:/etc/jmx-exporter.yml -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9100 -Dcom.sun.management.jmxremote.authenticate=false volumes: + - ./jmx-exporter.yml:/etc/jmx-exporter.yml:ro - kafka-2-data:/var/lib/kafka/data ports: - 9092:9082 @@ -75,10 +79,12 @@ services: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" KAFKA_OPTS: + -javaagent:/usr/share/java/cp-base-new/jmx_prometheus_javaagent-0.18.0.jar=0.0.0.0:80:/etc/jmx-exporter.yml -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9100 -Dcom.sun.management.jmxremote.authenticate=false volumes: + - ./jmx-exporter.yml:/etc/jmx-exporter.yml:ro - kafka-3-data:/var/lib/kafka/data ports: - 9083:9083 diff --git a/docker/jmx-exporter.yml b/docker/jmx-exporter.yml new file mode 100644 index 0000000..fde0e7e --- /dev/null +++ b/docker/jmx-exporter.yml @@ -0,0 +1,70 @@ +lowercaseOutputName: true +lowercaseOutputLabelNames: true +rules: + # Special cases and very specific rules + - pattern : kafka.server<>Value + name: kafka_server_$1_$2 + type: GAUGE + labels: + clientId: "$3" + topic: "$4" + partition: "$5" + - pattern : kafka.server<>Value + name: kafka_server_$1_$2 + type: GAUGE + labels: + clientId: "$3" + broker: "$4:$5" + + - pattern : kafka.server<>OneMinuteRate + name: kafka_server_kafkarequesthandlerpool_requesthandleravgidlepercent_total + type: GAUGE + + - pattern: kafka.server<>connections + name: kafka_server_socketservermetrics_connections + type: GAUGE + labels: + client_software_name: "$1" + client_software_version: "$2" + listener: "$3" + network_processor: "$4" + + - pattern : 'kafka.server<>(.+):' + name: kafka_server_socketservermetrics_$3 + type: GAUGE + labels: + listener: "$1" + network_processor: "$2" + + # Count and Value + - pattern: kafka.(.+)<>(Count|Value) + name: kafka_$1_$2_$3 + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(.+)<>(Count|Value) + name: kafka_$1_$2_$3 + labels: + "$4": "$5" + - pattern: kafka.(.+)<>(Count|Value) + name: kafka_$1_$2_$3 + + # Percentile + - pattern: kafka.(.+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + "$6": "$7" + quantile: "0.$8" + - pattern: kafka.(.+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + quantile: "0.$6" + - pattern: kafka.(.+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + quantile: "0.$4"