Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
97 lines (67 sloc) 2.89 KB

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

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

You can’t perform that action at this time.