2013-08-02 20:22:32 +04:00
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
2013-09-19 17:00:00 +04:00
< meta name = "generator" content = "Docutils 0.11: http://docutils.sourceforge.net/" / >
2013-08-02 20:22:32 +04:00
< title > Glances< / title >
< style type = "text/css" >
/*
:Author: Alessio Sergi
:Contact: al3hex at gmail dot com
Stylesheet for use with Docutils.
This file is the CSS for the Glances documentation.
*/
body {
margin-top: 1em;
margin-left: 1em;
max-width: 80em;
font-family: serif;
font-size: 16px;
}
h1 {
font-size: 20px;
}
h1.title {
font-size: 22px;
}
h2, h3, p.topic-title {
font-size: 18px;
}
.first {
/* override p.topic-title margin styles */
margin-top: 0 ! important;
}
a {
color: #0055df;
text-decoration: none;
}
a:hover {
color: #339999;
text-decoration: underline;
}
a:visited {
color: #800080;
}
a.toc-backref {
text-decoration: none;
color: black;
}
blockquote {
padding-left: 1ex;
border-left: 1px solid #008000;
max-width: 30em;
}
p.topic-title {
font-weight: bold;
}
pre.code {
margin-left: 2em;
margin-right: 2em;
}
.console {
background-color: #eeeeee;
border: 1px solid #cccccc;
max-width: 60em;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px 3px 3px 3px;
}
span.option, tt.docutils {
white-space: nowrap;
border: 1px dotted #008000;
padding: 1px;
background-color: #eeeeee;
}
.literal, .literal-block, .option, .var {
font-family: monospace;
font-size: 10pt;
}
dl.docutils {
margin-left: 2em;
}
dl.docutils dd {
margin-bottom: 0.5em;
}
ol.simple {
margin-left: 0.5em;
}
table.docutils {
margin-left: 2em;
}
td.option-group {
padding-right: 1em;
}
< / style >
< / head >
< body >
< div class = "document" id = "glances" >
< h1 class = "title" > Glances< / h1 >
2013-11-17 23:02:00 +04:00
< p > This manual describes < em > Glances< / em > version 1.7.3.< / p >
2013-08-02 20:22:32 +04:00
< p > Copyright © 2012-2013 Nicolas Hennion < < a class = "reference external" href = "mailto:nicolas@nicolargo.com" > nicolas@ nicolargo.com< / a > > < / p >
2013-11-17 23:02:00 +04:00
< p > November 2013< / p >
2013-08-02 20:22:32 +04:00
< div class = "contents topic" id = "table-of-contents" >
< p class = "topic-title first" > Table of Contents< / p >
< ul class = "simple" >
2013-08-09 14:27:33 +04:00
< li > < a class = "reference internal" href = "#introduction" id = "id7" > Introduction< / a > < / li >
< li > < a class = "reference internal" href = "#usage" id = "id8" > Usage< / a > < ul >
< li > < a class = "reference internal" href = "#standalone-mode" id = "id9" > Standalone mode< / a > < / li >
< li > < a class = "reference internal" href = "#client-server-mode" id = "id10" > Client/Server mode< / a > < / li >
2013-08-02 20:22:32 +04:00
< / ul >
< / li >
2013-08-09 14:27:33 +04:00
< li > < a class = "reference internal" href = "#command-reference" id = "id11" > Command reference< / a > < ul >
< li > < a class = "reference internal" href = "#command-line-options" id = "id12" > Command-line options< / a > < / li >
< li > < a class = "reference internal" href = "#interactive-commands" id = "id13" > Interactive commands< / a > < / li >
2013-08-02 20:22:32 +04:00
< / ul >
< / li >
2013-08-09 14:27:33 +04:00
< li > < a class = "reference internal" href = "#configuration" id = "id14" > Configuration< / a > < / li >
< li > < a class = "reference internal" href = "#anatomy-of-the-application" id = "id15" > Anatomy of the application< / a > < ul >
< li > < a class = "reference internal" href = "#legend" id = "id16" > Legend< / a > < / li >
< li > < a class = "reference internal" href = "#header" id = "id17" > Header< / a > < / li >
< li > < a class = "reference internal" href = "#cpu" id = "id18" > CPU< / a > < / li >
< li > < a class = "reference internal" href = "#load" id = "id19" > Load< / a > < / li >
< li > < a class = "reference internal" href = "#memory" id = "id20" > Memory< / a > < / li >
< li > < a class = "reference internal" href = "#network" id = "id21" > Network< / a > < / li >
< li > < a class = "reference internal" href = "#sensors" id = "id22" > Sensors< / a > < / li >
< li > < a class = "reference internal" href = "#disk-i-o" id = "id23" > Disk I/O< / a > < / li >
< li > < a class = "reference internal" href = "#file-system" id = "id24" > File system< / a > < / li >
< li > < a class = "reference internal" href = "#processes-list" id = "id25" > Processes list< / a > < / li >
< li > < a class = "reference internal" href = "#monitored-processes-list" id = "id26" > Monitored processes list< / a > < / li >
< li > < a class = "reference internal" href = "#logs" id = "id27" > Logs< / a > < / li >
< li > < a class = "reference internal" href = "#footer" id = "id28" > Footer< / a > < / li >
2013-08-02 20:22:32 +04:00
< / ul >
< / li >
2013-08-09 14:27:33 +04:00
< li > < a class = "reference internal" href = "#api-documentation" id = "id29" > API documentation< / a > < / li >
< li > < a class = "reference internal" href = "#support" id = "id30" > Support< / a > < / li >
2013-08-02 20:22:32 +04:00
< / ul >
< / div >
< div class = "section" id = "introduction" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id7" > Introduction< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< p > Glances is a cross-platform curses-based monitoring tool which aims to
present a maximum of information in a minimum of space, ideally to fit
in a classical 80x24 terminal or higher to have additional information.< / p >
< p > Glances can adapt dynamically the displayed information depending on the
terminal size. It can also work in a client/server mode for remote monitoring.< / p >
< p > Glances is written in Python and uses the < a class = "reference external" href = "https://code.google.com/p/psutil/" > psutil< / a > library to get information from your system.< / p >
< p > Console (80x24)< / p >
< img alt = "images/screenshot.png" src = "images/screenshot.png" / >
< p > Full view (> 80x24)< / p >
< img alt = "images/screenshot-wide.png" src = "images/screenshot-wide.png" / >
< / div >
< div class = "section" id = "usage" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id8" > Usage< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< div class = "section" id = "standalone-mode" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id9" > Standalone mode< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > Simply run:< / p >
< pre class = "code console literal-block" >
< span class = "generic prompt" > $< / span > glances
< / pre >
< / div >
< div class = "section" id = "client-server-mode" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id10" > Client/Server mode< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > If you want to remotely monitor a machine, called < tt class = "docutils literal" > server< / tt > , from another one, called < tt class = "docutils literal" > client< / tt > ,
just run on the server:< / p >
< pre class = "code console literal-block" >
< span class = "generic output" > server$ glances -s< / span >
< / pre >
< p > and on the client:< / p >
< pre class = "code console literal-block" >
< span class = "generic output" > client$ glances -c @ server< / span >
< / pre >
2013-08-03 03:11:11 +04:00
< p > where < tt class = "docutils literal" > @ server< / tt > is the IP address or hostname of the server.< / p >
2013-08-02 20:22:32 +04:00
< p > In server mode, you can set the bind address < tt class = "docutils literal" > < span class = "pre" > -B< / span > ADDRESS< / tt > and listening TCP port < tt class = "docutils literal" > < span class = "pre" > -p< / span > PORT< / tt > .< / p >
< p > In client mode, you can set the TCP port of the server < tt class = "docutils literal" > < span class = "pre" > -p< / span > PORT< / tt > .< / p >
< p > Default binding address is < tt class = "docutils literal" > 0.0.0.0< / tt > (Glances will listen on all the network interfaces) and TCP port is < tt class = "docutils literal" > 61209< / tt > .< / p >
< p > In client/server mode, limits are set by the server side.< / p >
< p > You can also set a password to access to the server < tt class = "docutils literal" > < span class = "pre" > -P< / span > password< / tt > .< / p >
2013-08-14 16:24:14 +04:00
< p > Glances is < tt class = "docutils literal" > IPv6< / tt > compatible. Just use the < tt class = "docutils literal" > < span class = "pre" > -B< / span > ::< / tt > option to bind to all IPv6 addresses.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< / div >
< div class = "section" id = "command-reference" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id11" > Command reference< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< div class = "section" id = "command-line-options" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id12" > Command-line options< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< table class = "docutils option-list" frame = "void" rules = "none" >
< col class = "option" / >
< col class = "description" / >
< tbody valign = "top" >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -b< / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Display network rate in Byte per second (default: bit per second)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -B < var > IP< / var > < / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Bind server to the given IPv4/IPv6 address or hostname< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -c < var > IP< / var > < / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Connect to a Glances server by IPv4/IPv6 address or hostname< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > -C < var > FILE< / var > < / span > < / kbd > < / td >
2013-09-19 17:00:00 +04:00
< td > Path to the configuration file< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -d< / span > < / kbd > < / td >
< td > Disable disk I/O module< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -e< / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Enable sensors module (requires pysensors, Linux-only)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > -f < var > FILE< / var > < / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Set the HTML output folder or CSV file< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -h< / span > < / kbd > < / td >
< td > Display the help and exit< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -m< / span > < / kbd > < / td >
< td > Disable mount module< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -n< / span > < / kbd > < / td >
< td > Disable network module< / td > < / tr >
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > -o < var > OUTPUT< / var > < / span > < / kbd > < / td >
2013-08-02 20:22:32 +04:00
< td > Define additional output (available: HTML or CSV)< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -p < var > PORT< / var > < / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Define the client/server TCP port (default: 61209)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > -P < var > PASSWORD< / var > < / span > < / kbd > < / td >
2013-08-02 20:22:32 +04:00
< td > Define a client/server password< / td > < / tr >
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > --password< / span > < / kbd > < / td >
< td > Define a client/server password from the prompt< / td > < / tr >
< tr > < td class = "option-group" >
2013-08-02 20:22:32 +04:00
< kbd > < span class = "option" > -r< / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Disable process list (for low CPU consumption)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -s< / span > < / kbd > < / td >
< td > Run Glances in server mode< / td > < / tr >
< tr > < td class = "option-group" >
2013-11-17 23:02:00 +04:00
< kbd > < span class = "option" > -t < var > SECONDS< / var > < / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Set refresh time in seconds (default: 3 sec)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -v< / span > < / kbd > < / td >
< td > Display the version and exit< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -y< / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Enable hddtemp module (requires hddtemp)< / td > < / tr >
2013-08-02 20:22:32 +04:00
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -z< / span > < / kbd > < / td >
< td > Do not use the bold color attribute< / td > < / tr >
< tr > < td class = "option-group" >
< kbd > < span class = "option" > -1< / span > < / kbd > < / td >
2013-08-14 16:24:14 +04:00
< td > Start Glances in per-CPU mode< / td > < / tr >
2013-08-02 20:22:32 +04:00
< / tbody >
< / table >
< / div >
< div class = "section" id = "interactive-commands" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id13" > Interactive commands< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > The following commands (key pressed) are supported while in Glances:< / p >
< dl class = "docutils" >
< dt > < tt class = "docutils literal" > a< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > < p class = "first" > Sort process list automatically< / p >
2013-08-02 20:22:32 +04:00
< ul class = "last simple" >
2013-08-14 16:24:14 +04:00
< li > If CPU iowait < tt class = "docutils literal" > > 60%< / tt > , sort processes by I/O read and write< / li >
2013-08-02 20:22:32 +04:00
< li > If CPU < tt class = "docutils literal" > > 70%< / tt > , sort processes by CPU usage< / li >
< li > If MEM < tt class = "docutils literal" > > 70%< / tt > , sort processes by memory usage< / li >
< / ul >
< / dd >
< dt > < tt class = "docutils literal" > b< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Switch between bit/s or Byte/s for network I/O< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > c< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Sort processes by CPU usage< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > d< / tt > < / dt >
< dd > Show/hide disk I/O stats< / dd >
< dt > < tt class = "docutils literal" > f< / tt > < / dt >
< dd > Show/hide file system stats< / dd >
< dt > < tt class = "docutils literal" > h< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Show/hide the help screen< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > i< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Sort processes by I/O rate (may need root privileges on some OSes)< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > l< / tt > < / dt >
< dd > Show/hide log messages< / dd >
< dt > < tt class = "docutils literal" > m< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Sort processes by MEM usage< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > n< / tt > < / dt >
< dd > Show/hide network stats< / dd >
< dt > < tt class = "docutils literal" > p< / tt > < / dt >
< dd > Sort processes by name< / dd >
2013-08-14 16:24:14 +04:00
< dt > < tt class = "docutils literal" > q< / tt > < / dt >
< dd > Quit< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > s< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > Show/hide sensors stats (only available with -e flag)< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > t< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > View network I/O as combination< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > u< / tt > < / dt >
2013-08-14 16:24:14 +04:00
< dd > View cumulative network I/O< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > w< / tt > < / dt >
< dd > Delete finished warning log messages< / dd >
< dt > < tt class = "docutils literal" > x< / tt > < / dt >
< dd > Delete finished warning and critical log messages< / dd >
2013-08-14 16:24:14 +04:00
< dt > < tt class = "docutils literal" > y< / tt > < / dt >
< dd > Show/hide hddtemp stats (only available with -y flag)< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > 1< / tt > < / dt >
< dd > Switch between global CPU and per-CPU stats< / dd >
< / dl >
< / div >
< / div >
< div class = "section" id = "configuration" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id14" > Configuration< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< p > No configuration file is mandatory to use Glances.< / p >
< p > Furthermore a configuration file is needed for setup limits and/or monitored processes list.< / p >
< p > By default, the configuration file is under:< / p >
2013-09-19 17:00:00 +04:00
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field" > < th class = "field-name" > Linux:< / th > < td class = "field-body" > < tt class = "docutils literal" > /etc/glances/glances.conf< / tt > < / td >
< / tr >
< tr class = "field" > < th class = "field-name" > *BSD and OS X:< / th > < td class = "field-body" > < tt class = "docutils literal" > /usr/local/etc/glances/glances.conf< / tt > < / td >
< / tr >
< tr class = "field" > < th class = "field-name" > Windows:< / th > < td class = "field-body" > < tt class = "docutils literal" > < span class = "pre" > %APPDATA%\glances\glances.conf< / span > < / tt > < / td >
< / tr >
< / tbody >
< / table >
< p > On Windows XP, the < tt class = "docutils literal" > %APPDATA%< / tt > path is:< / p >
2013-08-02 20:22:32 +04:00
< pre class = "code console literal-block" >
2013-09-19 17:00:00 +04:00
< span class = "generic output" > C:\Documents and Settings\< User> \Application Data< / span >
2013-08-02 20:22:32 +04:00
< / pre >
2013-09-19 17:00:00 +04:00
< p > Since Windows Vista and newer versions:< / p >
2013-08-02 20:22:32 +04:00
< pre class = "code console literal-block" >
2013-09-19 17:00:00 +04:00
< span class = "generic output" > C:\Users\< User> \AppData\Roaming< / span >
2013-08-02 20:22:32 +04:00
< / pre >
2013-09-19 17:00:00 +04:00
< p > You can override the default configuration, located in one of the above
directories on your system, except for Windows.< / p >
< p > Just copy the < tt class = "docutils literal" > glances.conf< / tt > file to your < tt class = "docutils literal" > $XDG_CONFIG_HOME< / tt > directory, e.g. Linux:< / p >
2013-08-02 20:22:32 +04:00
< pre class = "code console literal-block" >
< span class = "generic output" > mkdir -p $XDG_CONFIG_HOME/glances
cp /etc/glances/glances.conf $XDG_CONFIG_HOME/glances/< / span >
< / pre >
< p > On OS X, you should copy the configuration file to < tt class = "docutils literal" > ~/Library/Application Support/glances/< / tt > .< / p >
< / div >
< div class = "section" id = "anatomy-of-the-application" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id15" > Anatomy of the application< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< div class = "section" id = "legend" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id16" > Legend< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< div class = "line-block" >
< div class = "line" > < tt class = "docutils literal" > GREEN< / tt > stat counter is < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > < tt class = "docutils literal" > BLUE< / tt > stat counter is < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > < tt class = "docutils literal" > MAGENTA< / tt > stat counter is < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > < tt class = "docutils literal" > RED< / tt > stat counter is < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
< / div >
< div class = "section" id = "header" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id17" > Header< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/header.png" src = "images/header.png" / >
2013-08-03 03:11:11 +04:00
< p > The header shows the OS name, release version, platform architecture and the hostname.
2013-08-02 20:22:32 +04:00
On Linux, it shows also the kernel version.< / p >
< / div >
< div class = "section" id = "cpu" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id18" > CPU< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > Short view:< / p >
< img alt = "images/cpu.png" src = "images/cpu.png" / >
< p > If enough horizontal space is available, extended CPU informations are displayed.< / p >
< p > Extended view:< / p >
< img alt = "images/cpu-wide.png" src = "images/cpu-wide.png" / >
< p > To switch to per-CPU stats, just hit the < tt class = "docutils literal" > 1< / tt > key:< / p >
< img alt = "images/per-cpu.png" src = "images/per-cpu.png" / >
< p > The CPU stats are shown as a percentage and for the configured refresh time.
The total CPU usage is displayed on the first line.< / p >
< div class = "line-block" >
< div class = "line" > If user|system|nice CPU is < tt class = "docutils literal" > < 50%< / tt > , then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > If user|system|nice CPU is < tt class = "docutils literal" > > 50%< / tt > , then status is set to < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > If user|system|nice CPU is < tt class = "docutils literal" > > 70%< / tt > , then status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > If user|system|nice CPU is < tt class = "docutils literal" > > 90%< / tt > , then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under the < tt class = "docutils literal" > [cpu]< / tt > section.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "load" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id19" > Load< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/load.png" src = "images/load.png" / >
2013-08-09 14:27:33 +04:00
< p > On the < em > No Sheep< / em > blog, < em > Zachary Tirrell< / em > defines the average load < a class = "footnote-reference" href = "#id4" id = "id1" > [1]< / a > :< / p >
2013-08-02 20:22:32 +04:00
< blockquote >
" 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." < / blockquote >
< p > Glances gets the number of CPU core to adapt the alerts.
Alerts on average load are only set on 5 and 15 min.
The first line also display the number of CPU core.< / p >
< div class = "line-block" >
< div class = "line" > If average load is < tt class = "docutils literal" > < 0.7*core< / tt > , then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > If average load is < tt class = "docutils literal" > > 0.7*core< / tt > , then status is set to < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > If average load is < tt class = "docutils literal" > > 1*core< / tt > , then status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > If average load is < tt class = "docutils literal" > > 5*core< / tt > , then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under the < tt class = "docutils literal" > [load]< / tt > section.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "memory" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id20" > Memory< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > Glances uses two columns: one for the < tt class = "docutils literal" > RAM< / tt > and another one for the < tt class = "docutils literal" > Swap< / tt > .< / p >
< img alt = "images/mem.png" src = "images/mem.png" / >
< p > If enough space is available, Glances displays extended informations:< / p >
< img alt = "images/mem-wide.png" src = "images/mem-wide.png" / >
< p > With Glances, alerts are only set for on used memory and used swap.< / p >
< div class = "line-block" >
< div class = "line" > If memory is < tt class = "docutils literal" > < 50%< / tt > , then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > If memory is < tt class = "docutils literal" > > 50%< / tt > , then status is set to < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > If memory is < tt class = "docutils literal" > > 70%< / tt > , then status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > If memory is < tt class = "docutils literal" > > 90%< / tt > , then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under the < tt class = "docutils literal" > [memory]< / tt > and < tt class = "docutils literal" > [swap]< / tt > sections.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "network" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id21" > Network< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/network.png" src = "images/network.png" / >
< p > Glances displays the network interface bit rate. The unit is adapted
dynamically (bits per second, kbits per second, Mbits per second, etc).< / p >
< p > Alerts are only set if the network interface maximum speed is available.< / p >
< p > For example, on a 100 Mbps ethernet interface, the warning status is set
if the bit rate is higher than 70 Mbps.< / p >
< div class = "line-block" >
< div class = "line" > If bit rate is < tt class = "docutils literal" > < 50%< / tt > , then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > If bit rate is < tt class = "docutils literal" > > 50%< / tt > , then status is set to < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > If bit rate is < tt class = "docutils literal" > > 70%< / tt > , then status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > If bit rate is < tt class = "docutils literal" > > 90%< / tt > , then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
< / div >
< div class = "section" id = "sensors" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id22" > Sensors< / a > < / h2 >
2013-09-19 17:00:00 +04:00
< p > Glances can displays the sensors informations trough < cite > lm-sensors< / cite > (only available on Linux).< / p >
< p > As of lm-sensors, a filter is processed in order to display temperature only:< / p >
2013-08-09 14:27:33 +04:00
< img alt = "images/sensors.png" src = "images/sensors.png" / >
< p > Glances can also grab hard disk temperature through the < cite > hddtemp< / cite > daemon (see here < a class = "footnote-reference" href = "#id5" id = "id2" > [2]< / a > to install hddtemp on your system):< / p >
< img alt = "images/hddtemp.png" src = "images/hddtemp.png" / >
2013-08-03 03:11:11 +04:00
< p > To enable the lm-sensors module:< / p >
2013-08-02 20:22:32 +04:00
< pre class = "code console literal-block" >
< span class = "generic prompt" > $< / span > glances -e
< / pre >
2013-08-03 03:11:11 +04:00
< p > To enable the hddtemp module:< / p >
< pre class = "code console literal-block" >
< span class = "generic prompt" > $< / span > glances -y
< / pre >
2013-08-02 20:22:32 +04:00
< p > There is no alert on this information.< / p >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under the < tt class = "docutils literal" > [temperature]< / tt > and < tt class = "docutils literal" > [hddtemperature]< / tt > sections.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "disk-i-o" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id23" > Disk I/O< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/diskio.png" src = "images/diskio.png" / >
< p > Glances displays the disk I/O throughput. The unit is adapted dynamically.< / p >
2013-08-09 14:27:33 +04:00
< p > < em > Note< / em > : There is no alert on this information.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "file-system" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id24" > File system< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/fs.png" src = "images/fs.png" / >
< p > Glances displays the used and total file system disk space. The unit is
adapted dynamically.< / p >
< p > Alerts are set for used disk space:< / p >
< div class = "line-block" >
< div class = "line" > If disk used is < tt class = "docutils literal" > < 50%< / tt > , then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
< div class = "line" > If disk used is < tt class = "docutils literal" > > 50%< / tt > , then status is set to < tt class = "docutils literal" > " CAREFUL" < / tt > < / div >
< div class = "line" > If disk used is < tt class = "docutils literal" > > 70%< / tt > , then status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< div class = "line" > If disk used is < tt class = "docutils literal" > > 90%< / tt > , then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
< / div >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under < tt class = "docutils literal" > [filesystem]< / tt > section.< / p >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "processes-list" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id25" > Processes list< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< p > Compact view:< / p >
< img alt = "images/processlist.png" src = "images/processlist.png" / >
< p > Full view:< / p >
< img alt = "images/processlist-wide.png" src = "images/processlist-wide.png" / >
2013-08-03 03:11:11 +04:00
< p > Three views are available for processes:< / p >
< ul class = "simple" >
< li > Processes summary< / li >
< li > Optional monitored processes list (new in 1.7)< / li >
< li > Processes list< / li >
< / ul >
2013-08-02 20:22:32 +04:00
< p > By default, or if you hit the < tt class = "docutils literal" > a< / tt > key, the processes list is automatically
sorted by CPU of memory usage.< / p >
2013-08-03 22:33:00 +04:00
< p > < em > Note< / em > : limit values can be overwritten in the configuration file under the < tt class = "docutils literal" > [process]< / tt > section.< / p >
2013-08-02 20:22:32 +04:00
< p > The number of processes in the list is adapted to the screen size.< / p >
< dl class = "docutils" >
< dt > < tt class = "docutils literal" > VIRT< / tt > < / dt >
2013-12-15 13:23:06 +04:00
< dd > Total program size (VMS)< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > RES< / tt > < / dt >
2013-12-15 13:23:06 +04:00
< dd > Resident set size (RSS)< / dd >
2013-08-02 20:22:32 +04:00
< dt > < tt class = "docutils literal" > CPU%< / tt > < / dt >
< dd > % of CPU used by the process< / dd >
< dt > < tt class = "docutils literal" > MEM%< / tt > < / dt >
< dd > % of MEM used by the process< / dd >
< dt > < tt class = "docutils literal" > PID< / tt > < / dt >
< dd > Process ID< / dd >
< dt > < tt class = "docutils literal" > USER< / tt > < / dt >
< dd > User ID per process< / dd >
< dt > < tt class = "docutils literal" > NI< / tt > < / dt >
< dd > Nice level of the process< / dd >
< dt > < tt class = "docutils literal" > S< / tt > < / dt >
< dd > Process status< / dd >
< dt > < tt class = "docutils literal" > TIME+< / tt > < / dt >
< dd > Cumulative CPU time used< / dd >
< dt > < tt class = "docutils literal" > IOR/s< / tt > < / dt >
< dd > Per process IO read rate (in Byte/s)< / dd >
< dt > < tt class = "docutils literal" > IOW/s< / tt > < / dt >
< dd > Per process IO write rate (in Byte/s)< / dd >
< dt > < tt class = "docutils literal" > NAME< / tt > < / dt >
< dd > Process name or command line< / dd >
< / dl >
< p > Process status legend:< / p >
< dl class = "docutils" >
< dt > < tt class = "docutils literal" > R< / tt > < / dt >
< dd > running< / dd >
< dt > < tt class = "docutils literal" > S< / tt > < / dt >
< dd > sleeping (may be interrupted)< / dd >
< dt > < tt class = "docutils literal" > D< / tt > < / dt >
< dd > disk sleep (may not be interrupted)< / dd >
< dt > < tt class = "docutils literal" > T< / tt > < / dt >
< dd > traced/stopped< / dd >
< dt > < tt class = "docutils literal" > Z< / tt > < / dt >
< dd > zombie< / dd >
< / dl >
< / div >
< div class = "section" id = "monitored-processes-list" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id26" > Monitored processes list< / a > < / h2 >
2013-08-03 03:11:11 +04:00
< p > New in version 1.7. Optional.< / p >
< p > The monitored processes list allows user, through the configuration file,
to group processes and quickly show if the number of running process is not good.< / p >
2013-08-09 14:27:33 +04:00
< img alt = "images/monitored.png" src = "images/monitored.png" / >
2013-08-02 20:22:32 +04:00
< p > Each item is defined by:< / p >
< ul class = "simple" >
2013-08-03 03:11:11 +04:00
< li > < tt class = "docutils literal" > description< / tt > : description of the processes (max 16 chars).< / li >
< li > < tt class = "docutils literal" > regex< / tt > : regular expression of the processes to monitor.< / li >
< li > < tt class = "docutils literal" > command< / tt > (optional): full path to shell command/script for extended stat. Should return a single line string. Use with caution.< / li >
< li > < tt class = "docutils literal" > countmin< / tt > (optional): minimal number of processes. A warning will be displayed if number of processes < count.< / li >
< li > < tt class = "docutils literal" > countmax< / tt > (optional): maximum number of processes. A warning will be displayed if number of processes > count.< / li >
2013-08-02 20:22:32 +04:00
< / ul >
< p > Up to 10 items can be defined.< / p >
2013-09-19 17:00:00 +04:00
< p > For example, if you want to monitor the Nginx processes on a Web server, the following definition should do the job:< / p >
2013-08-03 03:11:11 +04:00
< pre class = "code console literal-block" >
< span class = "generic output" > [monitor]
2013-09-19 17:00:00 +04:00
list_1_description=Nginx server
2013-08-02 20:22:32 +04:00
list_1_regex=.*nginx.*
list_1_command=nginx -v
list_1_countmin=1
2013-08-03 03:11:11 +04:00
list_1_countmax=4< / span >
2013-08-02 20:22:32 +04:00
< / pre >
< p > If you also want to monitor the PHP-FPM daemon processes, you should add another item:< / p >
2013-08-03 03:11:11 +04:00
< pre class = "code console literal-block" >
< span class = "generic output" > [monitor]
2013-09-19 17:00:00 +04:00
list_1_description=Nginx server
2013-08-02 20:22:32 +04:00
list_1_regex=.*nginx.*
list_1_command=nginx -v
list_1_countmin=1
list_1_countmax=4
list_1_description=PHP-FPM
list_1_regex=.*php-fpm.*
list_1_countmin=1
2013-08-03 03:11:11 +04:00
list_1_countmax=20< / span >
2013-08-02 20:22:32 +04:00
< / pre >
2013-09-19 17:00:00 +04:00
< p > In client/server mode, the list is defined on the server side.
A new method, called getAllMonitored, is available in the APIs and get the JSON representation of the monitored processes list.< / p >
< p > Alerts are set as following:< / p >
2013-08-09 14:27:33 +04:00
< div class = "line-block" >
< div class = "line" > If number of processes is 0, then status is set to < tt class = "docutils literal" > " CRITICAL" < / tt > < / div >
2013-09-19 17:00:00 +04:00
< div class = "line" > If number of processes is min < current < max, then status is set to < tt class = "docutils literal" > " OK" < / tt > < / div >
2013-08-09 14:27:33 +04:00
< div class = "line" > Else status is set to < tt class = "docutils literal" > " WARNING" < / tt > < / div >
< / div >
2013-08-02 20:22:32 +04:00
< / div >
< div class = "section" id = "logs" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id27" > Logs< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/logs.png" src = "images/logs.png" / >
< p > A log messages list is displayed in the bottom of the screen if (and only if):< / p >
< ul class = "simple" >
< li > at least one < tt class = "docutils literal" > WARNING< / tt > or < tt class = "docutils literal" > CRITICAL< / tt > alert was occurred< / li >
< li > space is available in the bottom of the console/terminal< / li >
< / ul >
< p > Each alert message displays the following information:< / p >
< ol class = "arabic simple" >
< li > start date< / li >
< li > end date< / li >
< li > alert name< / li >
2013-09-19 17:00:00 +04:00
< li > {min/avg/max} values or number of running processes for monitored processes list alerts< / li >
2013-08-02 20:22:32 +04:00
< / ol >
< / div >
< div class = "section" id = "footer" >
2013-08-09 14:27:33 +04:00
< h2 > < a class = "toc-backref" href = "#id28" > Footer< / a > < / h2 >
2013-08-02 20:22:32 +04:00
< img alt = "images/footer.png" src = "images/footer.png" / >
< p > Glances displays the current date & time and access to the embedded help screen.< / p >
2013-09-19 17:00:00 +04:00
< p > If one or mode batteries were found on your machine and if the batinfo Python library < a class = "footnote-reference" href = "#id6" id = "id3" > [3]< / a >
is installed on your system then Glances displays the available percent capacity in the middle on the footer.< / p >
2013-08-09 14:27:33 +04:00
< img alt = "images/battery.png" src = "images/battery.png" / >
2013-08-02 20:22:32 +04:00
< p > If you have ran Glances in client mode < tt class = "docutils literal" > < span class = "pre" > -c< / span > < / tt > , you can also see if the client is connected to the server.< / p >
< p > If client is connected:< / p >
< img alt = "images/client-connected.png" src = "images/client-connected.png" / >
< p > else:< / p >
< img alt = "images/client-disconnected.png" src = "images/client-disconnected.png" / >
< p > On the left, you can easily see if you are connected to a Glances server.< / p >
< / div >
< / div >
< div class = "section" id = "api-documentation" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id29" > API documentation< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< p > Glances uses a < a class = "reference external" href = "http://docs.python.org/2/library/simplexmlrpcserver.html" > XML-RPC server< / a > and can be used by another client software.< / p >
< p > API documentation is available at < a class = "reference external" href = "https://github.com/nicolargo/glances/wiki/The-Glances-API-How-To" > https://github.com/nicolargo/glances/wiki/The-Glances-API-How-To< / a > < / p >
< / div >
< div class = "section" id = "support" >
2013-08-09 14:27:33 +04:00
< h1 > < a class = "toc-backref" href = "#id30" > Support< / a > < / h1 >
2013-08-02 20:22:32 +04:00
< p > To report a bug or a feature request use the bug tracking system at < a class = "reference external" href = "https://github.com/nicolargo/glances/issues" > https://github.com/nicolargo/glances/issues< / a > < / p >
< p > Feel free to contribute!< / p >
2013-08-09 14:27:33 +04:00
< table class = "docutils footnote" frame = "void" id = "id4" rules = "none" >
2013-08-02 20:22:32 +04:00
< colgroup > < col class = "label" / > < col / > < / colgroup >
< tbody valign = "top" >
< tr > < td class = "label" > < a class = "fn-backref" href = "#id1" > [1]< / a > < / td > < td > < a class = "reference external" href = "http://nosheep.net/story/defining-unix-load-average/" > http://nosheep.net/story/defining-unix-load-average/< / a > < / td > < / tr >
< / tbody >
< / table >
2013-08-09 14:27:33 +04:00
< table class = "docutils footnote" frame = "void" id = "id5" rules = "none" >
< colgroup > < col class = "label" / > < col / > < / colgroup >
< tbody valign = "top" >
2013-08-10 17:38:12 +04:00
< tr > < td class = "label" > < a class = "fn-backref" href = "#id2" > [2]< / a > < / td > < td > < a class = "reference external" href = "http://www.cyberciti.biz/tips/howto-monitor-hard-drive-temperature.html" > http://www.cyberciti.biz/tips/howto-monitor-hard-drive-temperature.html< / a > < / td > < / tr >
2013-08-09 14:27:33 +04:00
< / tbody >
< / table >
< table class = "docutils footnote" frame = "void" id = "id6" rules = "none" >
< colgroup > < col class = "label" / > < col / > < / colgroup >
< tbody valign = "top" >
2013-08-10 17:38:12 +04:00
< tr > < td class = "label" > < a class = "fn-backref" href = "#id3" > [3]< / a > < / td > < td > < a class = "reference external" href = "https://github.com/nicolargo/batinfo" > https://github.com/nicolargo/batinfo< / a > < / td > < / tr >
2013-08-09 14:27:33 +04:00
< / tbody >
< / table >
2013-08-02 20:22:32 +04:00
< / div >
< / div >
< / body >
< / html >