jmx_exporter icon indicating copy to clipboard operation
jmx_exporter copied to clipboard

Adding example for kafka kraft metrics

Open eskytthe opened this issue 2 years ago • 5 comments

Could also add this in a separate file if you like that approach better - or just as remarks in this file.

So this will add metrics for kafka.server:type=raft-metrics and kafka.server:type=broker-metadata-metrics - see https://kafka.apache.org/documentation/#kraft_monitoring. The currents patterns already cover kafka.controller:type=KafkaController.

Tested and running on kafka version 2.13-3.3.1

# HELP kafka_server_raft_metrics The average time in milliseconds to commit an entry in the raft log. kafka.server:name=null,type=raft-metrics,attribute=commit-latency-avg
# TYPE kafka_server_raft_metrics untyped
kafka_server_raft_metrics{name="commit-latency-avg",} NaN
kafka_server_raft_metrics{name="append-records-rate",} 0.0
kafka_server_raft_metrics{name="number-unknown-voter-connections",} 0.0
kafka_server_raft_metrics{name="election-latency-max",} NaN
kafka_server_raft_metrics{name="election-latency-avg",} NaN
kafka_server_raft_metrics{name="poll-idle-ratio-avg",} 0.34011684708415496
kafka_server_raft_metrics{name="current-vote",} -1.0
kafka_server_raft_metrics{name="commit-latency-max",} NaN
kafka_server_raft_metrics{name="high-watermark",} 1.8565754E7
kafka_server_raft_metrics{name="log-end-epoch",} 1424.0
kafka_server_raft_metrics{name="current-leader",} 2.0
kafka_server_raft_metrics{name="log-end-offset",} 1.8565755E7
kafka_server_raft_metrics{name="fetch-records-rate",} 2.013533586400396
kafka_server_raft_metrics{name="current-epoch",} 1424.0

# HELP kafka_server_broker_metadata The number of errors encountered by the BrokerMetadataPublisher while applying a new MetadataImage based on the latest MetadataDelta. kafka.server:name=null,type=broker-metadata-metrics,attribute=metadata-apply-error-count
# TYPE kafka_server_broker_metadata untyped
kafka_server_broker_metadata{name="metadata-apply-error-count",} 0.0
kafka_server_broker_metadata{name="last-applied-record-lag-ms",} 790.0
kafka_server_broker_metadata{name="last-applied-record-timestamp",} 1.682605212322E12
kafka_server_broker_metadata{name="metadata-load-error-count",} 0.0
kafka_server_broker_metadata{name="last-applied-record-offset",} 1.8390788E7

And we also get these:

# HELP kafka_server_raft_channel_metrics The total number of new connections established kafka.server:name=null,type=raft-channel-metrics,attribute=connection-creation-total
# TYPE kafka_server_raft_channel_metrics untyped
kafka_server_raft_channel_metrics{name="connection-creation-total",} 1.0
kafka_server_raft_channel_metrics{name="response-rate",} 2.005304353451064
kafka_server_raft_channel_metrics{name="select-rate",} 6.242318390581539
kafka_server_raft_channel_metrics{name="connection-close-total",} 0.0
kafka_server_raft_channel_metrics{name="network-io-rate",} 4.204670418526425
kafka_server_raft_channel_metrics{name="io-ratio",} 6.027092308687496E-4
kafka_server_raft_channel_metrics{name="io-time-ns-total",} 5.184752573E9
kafka_server_raft_channel_metrics{name="request-total",} 20053.0
kafka_server_raft_channel_metrics{name="successful-reauthentication-rate",} 0.0
kafka_server_raft_channel_metrics{name="io-wait-ratio",} 1.9730736790866161
kafka_server_raft_channel_metrics{name="outgoing-byte-rate",} 266.73461336138877
kafka_server_raft_channel_metrics{name="successful-authentication-rate",} 0.0
kafka_server_raft_channel_metrics{name="request-size-max",} 133.0
kafka_server_raft_channel_metrics{name="failed-authentication-rate",} 0.0
kafka_server_raft_channel_metrics{name="network-io-total",} 41682.0
kafka_server_raft_channel_metrics{name="incoming-byte-total",} 3208372.0
kafka_server_raft_channel_metrics{name="failed-reauthentication-rate",} 0.0
kafka_server_raft_channel_metrics{name="response-total",} 20052.0
kafka_server_raft_channel_metrics{name="incoming-byte-rate",} 318.8433921987192
kafka_server_raft_channel_metrics{name="io-wait-time-ns-total",} 2.0013717331819E13
kafka_server_raft_channel_metrics{name="connection-close-rate",} 0.0
kafka_server_raft_channel_metrics{name="request-size-avg",} 133.0
kafka_server_raft_channel_metrics{name="iotime-total",} 5.184752573E9
kafka_server_raft_channel_metrics{name="connection-creation-rate",} 0.0
kafka_server_raft_channel_metrics{name="successful-authentication-total",} 0.0
kafka_server_raft_channel_metrics{name="successful-authentication-no-reauth-total",} 0.0
kafka_server_raft_channel_metrics{name="connection-count",} 1.0
kafka_server_raft_channel_metrics{name="io-waittime-total",} 2.0013717331819E13
kafka_server_raft_channel_metrics{name="io-wait-time-ns-avg",} 3.160802694818653E8
kafka_server_raft_channel_metrics{name="reauthentication-latency-max",} NaN
kafka_server_raft_channel_metrics{name="failed-authentication-total",} 0.0
kafka_server_raft_channel_metrics{name="failed-reauthentication-total",} 0.0
kafka_server_raft_channel_metrics{name="io-time-ns-avg",} 96552.14507772021
kafka_server_raft_channel_metrics{name="request-rate",} 2.005523408732246
kafka_server_raft_channel_metrics{name="select-total",} 62068.0
kafka_server_raft_channel_metrics{name="successful-reauthentication-total",} 0.0
kafka_server_raft_channel_metrics{name="reauthentication-latency-avg",} NaN
kafka_server_raft_channel_metrics{name="outgoing-byte-total",} 2666969.0

eskytthe avatar Apr 28 '23 14:04 eskytthe

@eskytthe Thanks for the PR!

Since the most common pattern (at least initially) for using KRaft will be with standalone nodes (replacing ZK nodes), a KRaft-specific example would be great.

Do you want to add it to this PR or create a new one?

dhoard avatar Apr 29 '23 20:04 dhoard

This needs a DCO sign-off. You can use git commit -s --amend to add it.

SuperQ avatar May 09 '23 07:05 SuperQ

Just back from holiday will look at both things asap :-)

eskytthe avatar May 09 '23 12:05 eskytthe

@eskytthe any updates?

dhoard avatar Jul 22 '23 18:07 dhoard