JMX
If your Kafka brokers expose JMX metrics, Kouncil can leverage them to display additional metrics. This is done using advanced config, where you can specify JMX parameters for each broker, as follows:
kouncil:
clusters:
- name: transaction-cluster
brokers:
- host: 192.10.0.1
port: 9092
jmxPort: 5088
- host: 192.10.0.2
port: 9093
jmxPort: 5089
- host: 192.10.0.3
port: 9094
jmxPort: 5090
This example assumes that the broker does not require authentication to access JMX metrics - you only need to specify the JMX port. If JMX authentication is enabled, you can also specify the JMX username and password:
kouncil:
clusters:
- name: transaction-cluster
brokers:
- host: 192.10.0.1
port: 9092
jmxPort: 5088
jmxUser: jmxAdmin
jmxPassword: jmxPassword
- host: 192.10.0.2
port: 9093
jmxPort: 5088
jmxUser: jmxAdmin
jmxPassword: jmxPassword
- host: 192.10.0.3
port: 9094
jmxPort: 5088
jmxUser: jmxAdmin
jmxPassword: jmxPassword
It quickly becomes clear that, in many cases, the properties (jmxPort
, jmxUser
, jmxPassword
) will be identical for all brokers within the cluster. For that reason, you can specify them at the cluster level, and they will be propagated to each broker:
kouncil:
clusters:
- name: transaction-cluster
jmxPort: 5088
jmxUser: jmxAdmin
jmxPassword: jmxPassword
brokers:
- host: 192.10.0.1
port: 9092
- host: 192.10.0.2
port: 9093
- host: 192.10.0.3
port: 9094
All brokers within the transaction-cluster
will share the same JMX configuration (jmxPort
= 5088
, jmxUser
= jmxAdmin
, jmxPassword
= jmxPassword
).
Propagation of JMX parameters works independently for each parameter. For example, while all brokers may share the same JMX user and password, they can have different ports.
kouncil:
clusters:
- name: transaction-cluster
jmxUser: jmxAdmin
jmxPassword: jmxPassword
brokers:
- host: 192.10.0.1
port: 9092
jmxPort: 5088
- host: 192.10.0.2
port: 9093
jmxPort: 5089
- host: 192.10.0.3
port: 9094
jmxPort: 5090
Last updated