diff --git a/CHANGELOG.md b/CHANGELOG.md index b79300f6f..6a4269ba6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ All notable changes to this project will be documented in this file. - hive: Add `4.1.0` ([#1295]). - hbase: Add `2.6.3` ([#1296]). - airflow,superset: Build from source ([#1304]). +- kafka: Add updated JMX config `server.yaml` for KRaft ([#1308]). ### Changed @@ -97,6 +98,7 @@ All notable changes to this project will be documented in this file. [#1300]: https://github.com/stackabletech/docker-images/pull/1300 [#1301]: https://github.com/stackabletech/docker-images/pull/1301 [#1304]: https://github.com/stackabletech/docker-images/pull/1304 +[#1308]: https://github.com/stackabletech/docker-images/pull/1308 ## [25.7.0] - 2025-07-23 diff --git a/kafka/stackable/jmx/broker.yaml b/kafka/stackable/jmx/broker.yaml index 0fd56def1..c867fed7f 100644 --- a/kafka/stackable/jmx/broker.yaml +++ b/kafka/stackable/jmx/broker.yaml @@ -2,103 +2,103 @@ lowercaseOutputName: 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.coordinator.(\w+)<>Value - name: kafka_coordinator_$1_$2_$3 - type: GAUGE + # 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.coordinator.(\w+)<>Value + name: kafka_coordinator_$1_$2_$3 + type: GAUGE -# Generic per-second counters with 0-2 key/value pairs -- pattern: kafka.(\w+)<>Count - name: kafka_$1_$2_$3_total - type: COUNTER - labels: - "$4": "$5" - "$6": "$7" -- pattern: kafka.(\w+)<>Count - name: kafka_$1_$2_$3_total - type: COUNTER - labels: - "$4": "$5" -- pattern: kafka.(\w+)<>Count - name: kafka_$1_$2_$3_total - type: COUNTER + # Generic per-second counters with 0-2 key/value pairs + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER -- pattern: kafka.server<>([a-z-]+) - name: kafka_server_quota_$3 - type: GAUGE - labels: - resource: "$1" - clientId: "$2" + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_quota_$3 + type: GAUGE + labels: + resource: "$1" + clientId: "$2" -- pattern: kafka.server<>([a-z-]+) - name: kafka_server_quota_$4 - type: GAUGE - labels: - resource: "$1" - user: "$2" - clientId: "$3" + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_quota_$4 + type: GAUGE + labels: + resource: "$1" + user: "$2" + clientId: "$3" -# Generic gauges with 0-2 key/value pairs -- pattern: kafka.(\w+)<>Value - name: kafka_$1_$2_$3 - type: GAUGE - labels: - "$4": "$5" - "$6": "$7" -- pattern: kafka.(\w+)<>Value - name: kafka_$1_$2_$3 - type: GAUGE - labels: - "$4": "$5" -- pattern: kafka.(\w+)<>Value - name: kafka_$1_$2_$3 - type: GAUGE + # Generic gauges with 0-2 key/value pairs + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>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+)<>Count - name: kafka_$1_$2_$3_count - type: COUNTER - labels: - "$4": "$5" - "$6": "$7" -- pattern: kafka.(\w+)<>(\d+)thPercentile - name: kafka_$1_$2_$3 - type: GAUGE - labels: - "$4": "$5" - "$6": "$7" - quantile: "0.$8" -- pattern: kafka.(\w+)<>Count - name: kafka_$1_$2_$3_count - type: COUNTER - labels: - "$4": "$5" -- pattern: kafka.(\w+)<>(\d+)thPercentile - name: kafka_$1_$2_$3 - type: GAUGE - labels: - "$4": "$5" - quantile: "0.$6" -- pattern: kafka.(\w+)<>Count - name: kafka_$1_$2_$3_count - type: COUNTER -- pattern: kafka.(\w+)<>(\d+)thPercentile - name: kafka_$1_$2_$3 - type: GAUGE - labels: - quantile: "0.$4" + # Emulate Prometheus 'Summary' metrics for the exported 'Histogram's. + # + # Note that these are missing the '_sum' metric! + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + "$6": "$7" + quantile: "0.$8" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + quantile: "0.$6" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + quantile: "0.$4" diff --git a/kafka/stackable/jmx/server.yaml b/kafka/stackable/jmx/server.yaml new file mode 100644 index 000000000..32a3d614d --- /dev/null +++ b/kafka/stackable/jmx/server.yaml @@ -0,0 +1,138 @@ +--- +lowercaseOutputName: 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.coordinator.(\w+)<>Value + name: kafka_coordinator_$1_$2_$3 + type: GAUGE + # Kraft current state info metric rule + - pattern: "kafka.server<>current-state: ([a-z]+)" + name: kafka_server_raft_metrics_current_state_info + type: GAUGE + value: 1 + labels: + "state": "$1" + # Kraft specific rules for raft-metrics, raft-channel-metrics, broker-metadata-metrics + - pattern: kafka.server<>([a-z-]+)-total + name: kafka_server_$1_$2_total + type: COUNTER + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_$1_$2 + type: GAUGE + + # Generic per-second counters with 0-2 key/value pairs + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_total + type: COUNTER + + # Quota specific rules + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_quota_$4 + type: GAUGE + labels: + resource: "$1" + user: "$2" + clientId: "$3" + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_quota_$3 + type: GAUGE + labels: + resource: "$1" + clientId: "$2" + - pattern: kafka.server<>([a-z-]+) + name: kafka_server_quota_$3 + type: GAUGE + labels: + resource: "$1" + user: "$2" + + # Generic gauges with 0-2 key/value pairs + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>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+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + labels: + "$4": "$5" + "$6": "$7" + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + "$6": "$7" + quantile: "0.$8" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + labels: + "$4": "$5" + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + "$4": "$5" + quantile: "0.$6" + - pattern: kafka.(\w+)<>Count + name: kafka_$1_$2_$3_count + type: COUNTER + - pattern: kafka.(\w+)<>(\d+)thPercentile + name: kafka_$1_$2_$3 + type: GAUGE + labels: + quantile: "0.$4" + + # Generic gauges for MeanRate Percent + # Ex) kafka.server<>MeanRate + - pattern: kafka.(\w+)<>MeanRate + name: kafka_$1_$2_$3_percent + type: GAUGE + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3_percent + type: GAUGE + - pattern: kafka.(\w+)<>Value + name: kafka_$1_$2_$3_percent + type: GAUGE + labels: + "$4": "$5"