diff --git a/NEWS b/NEWS index 5bceeea2ccd7102d20942596b4044ac09b79d3f8..54ce003eaa84e8a9d53544315d3c4dac2a6a6014 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ Version 1.3.6 * Add control before libs import * Change static Python path (issue #20) + * Correct a bug with a network interface disaippear (issue #27) * Add French and Spanish translation (thx to Jean Bob) Version 1.3.5 diff --git a/README b/README index e28dce2e70e4ec9d752dfff2a6e4c93fc823ac9a..d6ec36246a57964a6dedc547c5028c29d6ab701c 100644 --- a/README +++ b/README @@ -20,12 +20,12 @@ Packages exist for Arch, Fedora, Redhat ... Get the latest version: - $ wget https://github.com/downloads/nicolargo/glances/glances-1.3.5.tar.gz + $ wget https://github.com/downloads/nicolargo/glances/glances-1.3.6.tar.gz Glances use a standard GNU style installer: - $ tar zxvf glances-1.3.5.tar.gz - $ cd glances-1.3.5 + $ tar zxvf glances-1.3.6.tar.gz + $ cd glances-1.3.6 $ ./configure $ make $ sudo make install diff --git a/README-fr b/README-fr index cbd7a0fcf56a3160b280fe1a5d2bc5cef1767a4d..370cc62236e6775d16bf021fc791699bcf316e77 100644 --- a/README-fr +++ b/README-fr @@ -27,14 +27,14 @@ Le projet Glances est hébergé sur GitHUB: https://github.com/nicolargo/glances Pour l'installer, il suffit de suivre les instructions suivantes depuis un terminal. -Récupération de la dernière version (1.3.5): +Récupération de la dernière version (1.3.6): - $ wget https://github.com/downloads/nicolargo/glances/glances-1.3.5.tar.gz + $ wget https://github.com/downloads/nicolargo/glances/glances-1.3.6.tar.gz Procédez ensuite à l'installation: - $ tar zxvf glances-1.3.5.tar.gz - $ cd glances-1.3.5 + $ tar zxvf glances-1.3.6.tar.gz + $ cd glances-1.3.6 $ ./configure $ make $ sudo make install diff --git a/README.md b/README.md deleted file mode 120000 index 100b93820ade4c16225673b4ca62bb3ade63c313..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -README \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d6ec36246a57964a6dedc547c5028c29d6ab701c --- /dev/null +++ b/README.md @@ -0,0 +1,228 @@ +Glances -- Eye on your system +============================= + +## Description + +Glances is a CLI curses based monitoring tool for GNU/Linux or BSD OS. + +Glances uses the libstatgrab library to get information from your system. +It is developed in Python and uses the python-statgrab lib. + +![screenshot](https://github.com/nicolargo/glances/raw/master/screenshot.png) + +## Installation + +### From package manager + +Packages exist for Arch, Fedora, Redhat ... + +### From source + +Get the latest version: + + $ wget https://github.com/downloads/nicolargo/glances/glances-1.3.6.tar.gz + +Glances use a standard GNU style installer: + + $ tar zxvf glances-1.3.6.tar.gz + $ cd glances-1.3.6 + $ ./configure + $ make + $ sudo make install + +Pre-requisites: + +* Python 2.6+ (not tested with Python 3+) +* python-statgrab 0.5+ (did NOT work with python-statgrab 0.4) + +Notes: For Debian. +The Debian Squeeze repos only include the python-statgrab 0.4. +You had to install the version 0.5 using the following commands: + + $ sudo apt-get install libstatgrab-dev pkg-config python-dev make + $ wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz + $ tar zxvf pystatgrab-0.5.tar.gz + $ cd pystatgrab-0.5/ + $ ./setup.py build + $ sudo ./setup.py install + +Notes: For Ubuntu 10.04 and 10.10. +The instruction to install the version 0.5 are here: +https://github.com/nicolargo/glances/issues/5#issuecomment-3033194 + +## Running + +Easy: + + $ glances.py + +## User guide + +By default, stats are refreshed every second, to change this setting, you can +use the -t option. For exemple to set the refrech rate to 5 seconds: + + $ glances.py -t 5 + +Importants stats are colored: + +* GREEN: stat counter is "OK" +* BLUE: stat counter is "CAREFUL" +* MAGENTA: stat counter is "WARNING" +* RED: stat counter is "CRITICAL" + +When Glances is running, you can press: + +* 'h' to display an help message whith the keys you can press +* 'a' to set the automatic mode. The processes are sorted automatically + + If CPU > 70%, sort by process "CPU consumption" + + If MEM > 70%, sort by process "memory size" + +* 'c' to sort the processes list by CPU consumption +* 'd' Disable or enable the disk IO stats +* 'f' Disable or enable the file system stats +* 'm' to sort the processes list by process size +* 'n' Disable or enable the network interfaces stats +* 'q' Exit + +### Header + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/header.png) + +The header shows the Glances version, the host name and the operating +system name, version and architecture. + +### CPU + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/cpu.png) + +The CPU states are shown as a percentage and for the configured refresh +time. + +If user|kernel|nice CPU is < 50%, then status is set to "OK". + +If user|kernel|nice CPU is > 50%, then status is set to "CAREFUL". + +If user|kernel|nice CPU is > 70%, then status is set to "WARNING". + +If user|kernel|nice CPU is > 90%, then status is set to "CRITICAL". + +### Load + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/load.png) + +On the Nosheep blog, Zach defines the average load: "In short it is the +average sum of the number of processes waiting in the run-queue plus the +number currently executing over 1, 5, and 15 minute time periods." + +Glances gets the number of CPU cores to adapt the alerts. With Glances, +alerts on average load are only set on 5 and 15 mins. + +If average load is < O.7*Core, then status is set to "OK". + +If average load is > O.7*Core, then status is set to "CAREFUL". + +If average load is > 1*Core, then status is set to "WARNING". + +If average load is > 5*Core, then status is set to "CRITICAL". + +### Memory + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/mem.png) + +Glances uses tree columns: memory (RAM), swap and "real". + +Real used memory is: used - cache. + +Real free memory is: free + cache. + +With Glances, alerts are only set for on used swap and real memory. + +If memory is < 50%, then status is set to "OK". + +If memory is > 50%, then status is set to "CAREFUL". + +If memory is > 70%, then status is set to "WARNING". + +If memory is > 90%, then status is set to "CRITICAL". + +### Network bit rate + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/network.png) + +Glances display the network interface bit rate. The unit is adapted +dynamicaly (bits per second, Kbits per second, Mbits per second...). + +Alerts are set only if the network interface maximum speed is available. + +If bitrate is < 50%, then status is set to "OK". + +If bitrate is > 50%, then status is set to "CAREFUL". + +If bitrate is > 70%, then status is set to "WARNING". + +If bitrate is > 90%, then status is set to "CRITICAL". + +For exemple, on a 100 Mbps Ethernet interface, the warning status is set +if the bit rate is higher than 70 Mbps. + +### Disk I/O + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/diskio.png) + +Glances display the disk I/O throughput. The unit is adapted dynamicaly +(bytes per second, Kbytes per second, Mbytes per second...). + +There is no alert on this information. + +### Filesystem + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/fs.png) + +Glances display the total and used filesytem disk space. The unit is +adapted dynamicaly (bytes per second, Kbytes per second, Mbytes per +second...). + +Alerts are set for used disk space: + +If disk used is < 50%, then status is set to "OK". + +If disk used is > 50%, then status is set to "CAREFUL". + +If disk used is > 70%, then status is set to "WARNING". + +If disk used is > 90%, then status is set to "CRITICAL". + +### Processes + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/processlist.png) + +Glances displays a summary and a list of processes. + +By default (or if you hit the 'a' key) the process list is automaticaly +sorted by CPU of memory consumption. + +The number of processes in the list is adapted to the screen size. + +### Footer + +![screenshot](https://github.com/nicolargo/glances/raw/master/doc/footer.png) + +Glances displays a caption and the current time/date. + +## Localisation + +To generate french locale execute as root or sudo : +i18n_francais_generate.sh + +To generate spanish locale execute as root or sudo : +i18n_espanol_generate.sh + +## Todo + +You are welcome to contribute to this software. + +* Packaging for Debian, Ubuntu, BSD... +* Check the needed Python library in the configure.ac +* Add file system stats when the python-statgrab is corrected diff --git a/buildout.cfg b/buildout.cfg index 25ab376fc716bb267c02882e633d0a6d7bc59141..d87898f5f9f3db926ba4fb1c4452fa6d4b6cbc6c 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -30,7 +30,7 @@ include-site-packages = false allowed-eggs-from-site-packages = false [config] -glances_version = 1.3.5 +glances_version = 1.3.6 pystatgrab_version = 0.5 pystatgrab_download_url = http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab diff --git a/man/glances.1 b/man/glances.1 index d88af0a45729a4163e2d9827e1b7b4f9aec88c6e..7022971980790a02120a701ead3b4cfd69d7681e 100644 --- a/man/glances.1 +++ b/man/glances.1 @@ -1,4 +1,4 @@ -.TH glances 1 "January, 2012" "version 1.3.5" "USER COMMANDS" +.TH glances 1 "January, 2012" "version 1.3.6" "USER COMMANDS" .SH NAME glances \- CLI curses based monitoring tool .SH SYNOPSIS diff --git a/setup.py b/setup.py index ecb11d59f9053868cc78d0a5a2439f94fb21a620..308efbe30943451f8ad5d870ce478ada95a5af55 100644 --- a/setup.py +++ b/setup.py @@ -11,8 +11,8 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() setup( name='Glances', - version='1.3.5', - download_url='https://github.com/downloads/nicolargo/glances/glances-1.3.5.tar.gz', + version='1.3.6', + download_url='https://github.com/downloads/nicolargo/glances/glances-1.3.6.tar.gz', url='https://github.com/nicolargo/glances', description='CLI curses-based monitoring tool', author='Nicolas Hennion', diff --git a/src/glances.py b/src/glances.py index 5947e5274bb1edb7b5b786061c287fc83ecd1fe9..dbf6829c54294e3aee3bf48c47c72e066f106f91 100755 --- a/src/glances.py +++ b/src/glances.py @@ -4,7 +4,7 @@ # # Pre-requisites: python-statgrab 0.5 or > # -# Copyright (C) Nicolargo 2011 +# Copyright (C) Nicolargo 2012 # # under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or @@ -53,7 +53,7 @@ except: #================== # The glances version id -__version__ = "1.3.5" +__version__ = "1.3.6" # Class #====== @@ -702,12 +702,18 @@ class glancesScreen(): self.term_window.addnstr(self.network_y, self.network_x+10, _("Rx/ps"), 8) self.term_window.addnstr(self.network_y, self.network_x+20, _("Tx/ps"), 8) # Adapt the maximum interface to the screen + ret = 2 for i in range(0, min(screen_y-self.network_y-3, len(network))): + try: + speed[network[i]['interface_name']] + except: + break elapsed_time = max (1, network[i]['systime']) self.term_window.addnstr(self.network_y+1+i, self.network_x, network[i]['interface_name']+':', 8) self.term_window.addnstr(self.network_y+1+i, self.network_x+10, self.__autoUnit(network[i]['rx']/elapsed_time*8) + "b", 8, self.__getColor(network[i]['rx']/elapsed_time*8, speed[network[i]['interface_name']])) self.term_window.addnstr(self.network_y+1+i, self.network_x+20, self.__autoUnit(network[i]['tx']/elapsed_time*8) + "b", 8, self.__getColor(network[i]['tx']/elapsed_time*8, speed[network[i]['interface_name']])) - return i+3 + ret = ret + 1 + return ret return 0