kcat Kafka on the shell
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
kcat -b <broker> -L
kcat -b <broker> -t <topic> -C
kcat -b <broker> -t <topic> -C -e
kcat -b <broker> -t <topic> -P
kcat -b <broker> -G <group> <topic>
kcat -b <broker> -t <topic> -C -o -10 -e
kcat -b <broker> -t <topic> -C -J
kcat -b <broker> -X list
Concepts
- stdin one message per line
- Topic partition ordered log
- stdout payload or -f / -J
- Your tools jq, grep, files
Metadata
kcat -b <broker> -L
kcat -b <broker> -L -t <topic>
kcat -b <broker> -L -J
kcat -b <broker> -Q -t
<topic>:<p>:<ms>
Consume
kcat -b <broker> -t <topic> -C
kcat -b <broker> -t <topic> -C -e
kcat -b <broker> -t <topic> -C -p
<n>
kcat -b <broker> -t <topic> -C -o
beginning
kcat -b <broker> -t <topic> -C -o end
kcat -b <broker> -t <topic> -C -o
-<n>
kcat -b <broker> -t <topic> -C -o
<offset> -p <n>
kcat -b <broker> -t <topic> -C -c
<n>
kcat -b <broker> -t <topic> -C -o s@<ms>
-o e@<ms>
Output format
kcat -b <broker> -t <topic> -C -J
kcat -b <broker> -t <topic> -C -K:
kcat -b <broker> -t <topic> -C -f
'<fmt>'
kcat -b <broker> -t <topic> -C -f
'%t[%p]@%o %k=%s\n'
kcat -b <broker> -t <topic> -C -f
'%h\n'
| Token | Prints |
|---|---|
%s |
Payload |
%S |
Payload length |
%k |
Key |
%K |
Key length |
%t |
Topic |
%p |
Partition |
%o |
Offset |
%T |
Timestamp (ms) |
%h |
Headers |
%R |
Payload length, then payload (binary) |
Produce
kcat -b <broker> -t <topic> -P
kcat -b <broker> -t <topic> -P -l
<file>
kcat -b <broker> -t <topic> -P -K:
kcat -b <broker> -t <topic> -P -k
<key>
kcat -b <broker> -t <topic> -P -p
<n>
kcat -b <broker> -t <topic> -P -H
<name>=<value>
kcat -b <broker> -t <topic> -P -z
<codec>
kcat -b <broker> -t <topic> -P -Z -K:
kcat -b <broker> -t <topic> -P -D
'<delim>'
Consumer groups
kcat -b <broker> -G <group> <topic>
kcat -b <broker> -G <group> <topic1>
<topic2>
kcat -b <broker> -G <group> <topic> -X
auto.offset.reset=earliest
kcat -b <broker> -G <group> <topic>
-e
Config and security
kcat -F <file>
kcat -b <broker> -X <prop>=<value>
kcat -b <broker> -X list
kcat -b <broker> -X dump
kcat -b <broker> -X security.protocol=SSL -X
ssl.ca.location=<ca.pem>
kcat -b <broker> -X security.protocol=SASL_SSL -X
sasl.mechanism=PLAIN -X sasl.username=<user> -X
sasl.password=<pass>
kcat -b <broker> -X enable.idempotence=true -P -t
<topic>
bootstrap.servers=<broker>:9093security.protocol=SASL_SSLsasl.mechanism=PLAINsasl.username=<user>sasl.password=<pass>
Schemas
kcat -b <broker> -t <topic> -C -s avro -r
<registry-url>
Recipes
kcat -b <broker> -t orders -C -o -100 -e -J | jq .
echo 'user42:{"status":"paid"}' | kcat -b <broker> -t orders -P -K:kcat -b <broker> -t orders -C -e -K:
kcat -b <broker> -t orders -C -o s@1700000000000 -o e@1700003600000 -e > window.txt
kcat -b <src> -t orders -C -e -K: -u | kcat -b <dst> -t orders-copy -P -K:



