Author: Patrick Hunt (follow me on twitter)
This project provides a unix “top” like utility for ZooKeeper. It is compatible with Python2.6, Python2.7 and Python3.
Prereq:
Ensure zoo.cg on all nodes whitelists the minimum four letter words for zktop to work:
4lw.commands.whitelist=stat,srst
Running:
./zktop.py --servers "localhost:2181,localhost:2182,localhost:2183"
or – omitting the port numbers, defaulting to 2181 -
./zktop.py --servers "server1,server2,server3"
or, for a ZK-style configuration file:
./zktop.py --config zk.conf
shows a screen like:
Ensemble -- nodecount:10 zxid:0x1300000001 sessions:4 SERVER PORT M OUTST RECVD SENT CONNS MINLAT AVGLAT MAXLAT localhost 2181 F 0 93 92 2 2 7 13 localhost 2182 F 0 37 36 1 0 0 0 localhost 2183 L 0 36 35 1 0 0 0 CLIENT PORT I QUEUE RECVD SENT 127.0.0.1 34705 1 0 56 56 127.0.0.1 35943 1 0 1 0 127.0.0.1 33999 1 0 1 0 127.0.0.1 37988 1 0 1 0
From the official site: “ZooKeeper is a high-performance coordination service for distributed applications.”
It exposes common services – such as naming, configuration management, synchronization, and group services – in a simple interface so you don’t have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols.
0) Top line is overall cluster status
1-n) Lines 1-n are for the n servers
n+1 and below are for client connections
Usage: zktop.py [options] Options: -h, --help show this help message and exit --servers=SERVERS comma separated list of host:port (default localhost:2181) -n, --names resolve session name from ip (default False) --fix_330 workaround for a bug in ZK 3.3.0 -v VERBOSITY, --verbosity=VERBOSITY log level verbosity (DEBUG, INFO, WARN(ING), ERROR, CRITICAL/FATAL)) -l LOGFILE, --logfile=LOGFILE directory in which to place log file, or empty for none -c CONFIGFILE, --config=CONFIGFILE zookeeper configuration file to lookup servers from
—fix_330 works around a bug in ZooKeeper 3.3.0, it is only necessary if running the server against that version of ZooKeeper.
The screen refreshes every 3 seconds.
- ‘h’ help
- ‘q’ quits
- ‘r’ resets the server stats
- spacebar updates immediately
zktop is now installable from PyPi
pip install zktop
This project is licensed under the Apache License Version 2.0