• Stars
    star
    327
  • Rank 128,686 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 15 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

top for Apache ZooKeeper

ZooKeeper top

Author: Patrick Hunt (follow me on twitter)

Summary

This project provides a unix โ€œtopโ€ like utility for ZooKeeper. It is compatible with Python2.6, Python2.7 and Python3.

Example

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

Whatโ€™s Apache ZooKeeper?

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.

zktop.py

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

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

PyPi

zktop is now installable from PyPi

pip install zktop

License

This project is licensed under the Apache License Version 2.0