I've got a sandbox cluster (without any control on topic creation) full of
unused topics and I'd like to cleanup all the those topics.
I was able to identify all the topics with 0 messages with the following
lines:

*#!/bin/bash*
*set -e*
*BROKERS="10.16.208.220:9092 <http://10.16.208.220:9092>,10.16.209.24:9092
<http://10.16.209.24:9092>,10.16.209.146:9092 <http://10.16.209.146:9092>"*
*ZOOKEEPER="10.16.209.44:2181 <http://10.16.209.44:2181>"*
*declare -a topics=($(/opt/kafka/bin/kafka-topics.sh --zookeeper
${ZOOKEEPER} --list | tr "\n" " "))*
*for topic in ${topics[@]}*
*do*
*    messages=$(/opt/kafka/bin/kafka-run-class.sh
kafka.tools.GetOffsetShell --broker-list ${BROKERS}  --topic $topic --time
-1| tr ":" " " | awk '{ sum += $3 } END { print sum }')*
*    echo "$topic has $messages messages"*
*done*

but I'd like to sample also the topic usage, and do a match between the 2
lists.
Is there any JMX metric I can use to make sure nobody is receiving/creating
messages for each topic like a total counter or read/write per topic?
Cassandra has something like that so I was wondering if Kafka has something
like that as well.
Looking forward to your reply.
Regards
L.

Reply via email to