Skip to content

Releases: nicolargo/glances

Glances 4.2.0

20 Oct 16:46
Compare
Choose a tag to compare

Enhancements:

  • Call process_iter.clear_cache() (PsUtil 6+) when Glances user force a refresh (F5 or CTRL-R) #2753
  • PsUtil 6+ no longer check PID reused #2755
  • Add support for automatically hiding network interfaces that are down or that don't have any IP addresses #2799

Bug corrected:

  • API: Network module is disabled but appears in endpoint "all" #2815
  • API is not compatible with requests containing special/encoding char #2820
  • 'j' hot key crashes Glances #2831
  • Raspberry PI - CPU info is not correct #2616
  • Graph export is broken if there is no graph section in Glances configuration file #2839
  • Glances API status check returns Error 405 - Method Not Allowed #2841
  • Rootless podman containers cause glances to fail with KeyError #2827
  • --export-process-filter Filter using complete command #2824
  • Exception when Glances is ran with limited plugin list #2822
  • Disable separator option do not work #2823

Continuous integration and documentation:

  • test test_107_fs_plugin_method fails on aarch64-linux #2819

Thanks to all contributors and bug reporters !

Special thanks to:

  • Bharath Vignesh J K
  • RazCrimson
  • Vadim Small

Glances 4.1.2

04 Jul 07:48
Compare
Choose a tag to compare

Version 4.1.2

Bug corrected:

  • AttributeError: 'CpuPercent' object has no attribute 'cpu_percent' #2859

Version 4.1.1

Bug corrected:

  • Sensors data is not exported using InfluxDB2 exporter #2856

Version 4.1.0

Enhancements:

  • Call process_iter.clear_cache() (PsUtil 6+) when Glances user force a refresh (F5 or CTRL-R) #2753
  • PsUtil 6+ no longer check PID reused #2755
  • Add support for automatically hiding network interfaces that are down or that don't have any IP addresses #2799

Bug corrected:

  • API: Network module is disabled but appears in endpoint "all" #2815
  • API is not compatible with requests containing spcial/encoding char #2820
  • 'j' hot key crashs Glances #2831
  • Raspberry PI - CPU info is not correct #2616
  • Graph export is broken if there is no graph section in Glances configuration file #2839
  • Glances API status check returns Error 405 - Method Not Allowed #2841
  • Rootless podman containers cause glances to fail with KeyError #2827
  • --export-process-filter Filter using complete command #2824
  • Exception when Glances is ran with limited plugin list #2822
  • Disable separator option do not work #2823

Continious integration and documentation:

  • test test_107_fs_plugin_method fails on aarch64-linux #2819

Thanks to all contibutors and bug reporters !

Special thanks to:

  • Bharath Vignesh J K
  • RazCrimson
  • Vadim Smal

Glances 4.1.1

29 Jun 16:11
Compare
Choose a tag to compare

Version 4.1.1

Bug corrected:

  • Sensors data is not exported using InfluxDB2 exporter #2856

Version 4.1.0

Enhancements:

  • Call process_iter.clear_cache() (PsUtil 6+) when Glances user force a refresh (F5 or CTRL-R) #2753
  • PsUtil 6+ no longer check PID reused #2755
  • Add support for automatically hiding network interfaces that are down or that don't have any IP addresses #2799

Bug corrected:

  • API: Network module is disabled but appears in endpoint "all" #2815
  • API is not compatible with requests containing spcial/encoding char #2820
  • 'j' hot key crashs Glances #2831
  • Raspberry PI - CPU info is not correct #2616
  • Graph export is broken if there is no graph section in Glances configuration file #2839
  • Glances API status check returns Error 405 - Method Not Allowed #2841
  • Rootless podman containers cause glances to fail with KeyError #2827
  • --export-process-filter Filter using complete command #2824
  • Exception when Glances is ran with limited plugin list #2822
  • Disable separator option do not work #2823

Continious integration and documentation:

  • test test_107_fs_plugin_method fails on aarch64-linux #2819

Thanks to all contibutors and bug reporters !

Special thanks to:

  • Bharath Vignesh J K
  • RazCrimson
  • Vadim Smal

Glances 4.0.8

08 Jun 08:33
Compare
Choose a tag to compare

Version 4.0.8

  • Make CORS option configurable security webui #2812
  • When Glances is installed via venv, default configuration file is not used documentation packaging #2803
  • GET /1272f6e9e8f9d6bfd6de.png results in 404 bug webui #2781 by Emporea was closed May 25, 2024
  • Screen frequently flickers when outputting to local display bug needs test #2490
  • Retire ujson for being in maintenance mode dependencies enhancement #2791

Glances 4.0.7

31 May 06:50
Compare
Choose a tag to compare

Version 4.0.7

  • cpu_hz_current not available on NetBSD #2792
  • SensorType change in REST API breaks compatibility in 4.0.4 #2788

Version 4.0.6

  • No GPU info on Web View #2796

Version 4.0.5

  • SensorType change in REST API breaks compatibility in 4.0.4 #2788
  • Please make pydantic optional dependency, not required one #2777
  • Update the Grafana dashboard #2780
  • 4.0.4 - On Glances startup "ERROR -- Can not init battery class #2776
  • In codeSpace (with Python 3.8), an error occurs in ./unittest-restful.py #2773

Use Ruff as default Linter.

Version 4.0.4

Hostfix release for support sensors plugin on python 3.8

Version 4.0.3

Additional fixes for Sensor plugin

Version 4.0.2

  • hotfix: plugin(sensors) - race conditions btw fan_speed & temperature… #2766
  • fix: include requirements.txt and SECURITY.md for pypi dist #2761

Thanks to RazCrimson for the sensors patch !

Version 4.0.1

Correct issue with CI (miss pydantic dep).

Version 4.0.0

New Features

Export individual processes stats

Thanks to the new software architecture it is now possible to export individual processes stats.

You should define the processes to export from the configuration file (section processlist /option export)
or via the --export-process-filter option on the command line.

Those options are a comma separated list of Glances filter (example bellow):

  • python.*: Filter processes name or command line starting with python
  • .python.: Filter processes name or command line containing python
  • username:nicolargo: Processes belong to nicolargo user
  • cmdline:/usr/bin.*: Processes starting by /usr/bin

The following example exports all processes with the name 'python' or 'bash':

[processlist]
export=.*python.*,.*bash.*

Note: or the --export-process-filter ".python.,.bash." option in the command line.

Another example exports all processes belong to 'nicolargo' user:

[processlist]
export=username:nicolargo

Note: or the --export-process-filter "username:nicolargo" option in the command line.

Last example with the output result in a CSV file, with the following command line example:

glances -C ./conf/glances.conf --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin processlist --quiet

the output CSV file (with the PID as primary key) will look like:

timestamp,845992.memory_percent,845992.status,845992.num_threads,845992.cpu_timesuser,845992.cpu_timessystem,845992.cpu_timeschildren_user,845992.cpu_timeschildren_system,845992.cpu_timesiowait,845992.memory_inforss,845992.memory_infovms,845992.memory_infoshared,845992.memory_infotext,845992.memory_infolib,845992.memory_infodata,845992.memory_infodirty,845992.name,845992.io_counters,845992.nice,845992.cpu_percent,845992.pid,845992.gidsreal,845992.gidseffective,845992.gidssaved,845992.key,845992.time_since_update,845992.cmdline,845992.username,total,running,sleeping,thread,pid_max
2024-04-03 18:39:55,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0
2024-04-03 18:39:57,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0

Note: more details in issue #794.

GPU plugin now support AMD GPU

Lasts Linux Kernel expose the GPU stats in the /sys/class/drm folder.

So, additionally to NVidia cards and without any external lib, Glances can display AMD GPU stats:

image

GPU plugin software architecture has been re-factorized in order to easily add others cards in the future (Intel).

Note: more details in issue #993.

Wifi plugin is back

As Glances version 4 is no longer supported Python 2, Wifi plugin has been refactor and do not need any external library.

Glances parses the /proc/net/wireless file on new Linux kernel.

image

Note: more details in issue #1377.

Refactor alias configuration

Alias has been completely refactor for all plugins in order to make it easier to configure.

Glances version 3.x and lower:

sda1_alias=InternalDisk 
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

Note: more details in issue #1735.

Fields descriptions and units are now available through the API

You can now get stat description and unit through the Glances version 4 API.

$ curl http://0.0.0.0:61208/api/4/cpu/total
{"total":6.3}
$ curl http://0.0.0.0:61208/api/4/cpu/total/description
"Sum of all CPU percentages (except idle)."
$ curl http://0.0.0.0:61208/api/4/cpu/total/unit
"percent"

Note: more details in issue #2630.

Make the left menu configurable

It is now possible to configure the plugins list displayed in the Curses and Web interfaces thanks to the left_menu option in the outputs section of the Glances configuration file:

[outputs]
left_menu=network,diskio

Display:

image

Quick look plugin is now configurable

By default it displays CPU, Memory and Load information.

image

Example to cam back to the Glances version 3.0 configuration (with swap instead of load):

[quicklook]
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,swap
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|

Note: More information in issue #2662.

Enhance per CPU display

Number of cores increase, so the "Per CPU" plugin has been adpated in order to display the top 'n' CPU consuption ('n' is configurable from the Glances configuration file through the max_cpu_display option in the percpu section (default is 4 CPUs).

image

Note: see more details in issue #2734.

Display guest CPU statistic in the CPU plugin

On Linux, guest CPU is percentage of time a virtual CPU spends servicing another virtual CPU under the control of the kernel.

image

  • Ability to hide Engine and Pod columns in Containers #2423

A new logo !

Last and not least, thanks to Elad @eBarazi...

image

a new logo is released...

image

Improvements

Speed up Glances launch

Glances version 3 takes between 2 and 3 seconds to start.
Glances version 4 takes less than 1 seconds to start, with all plugins.

See #1534 for more information.

Huge improvement of the Restful API documentation

More example and information available in the single page documentation: https://github.com/nicolargo/glances/blob/develop/docs/api.rst

Breaking changes

Python version

Support of Python 2 has been removed. Glances needs Python 3.8 or higher.

Python dependencies

For package maintainers, please note that standards dependencies have changed.

Minimal requirements for Glances version 4 are:

  • psutil
  • defusedxml
  • packaging
  • ujson
  • pydantic
  • fastapi (for WebUI / RestFull API)
  • uvicorn (for WebUI / RestFull API)
  • jinja2 (for WebUI / RestFull API)

Majors changes between Glances version 3 and version 4:

  • Bottle has been replaced by FastAPI and Uvicorn
  • CouchDB has been replaced by PyCouchDB
  • nvidia-ml-py has been replaced by py3nvml
  • pysnmp has been replaced by pysnmp-lextudio

APIs

  • XML/RPC API have changed between Glances 3 and Glances 4. It is not possible to use a Glances 3.x client with a Glances 4.x.
  • Restful API upgraded to version 4 (default entry point is http://localhost:61208/api/4).

Alias definition change in the configuration file

Glances version 3.x and lower:

sda1_alias=InternalDisk
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

More details in issue #1735.

Others

  • Alert data model change from a list of list to a list of dict #2633
  • Docker memory usage uses the same algorithm than docker stats #2637

All the issues corrected in this version

Enhancements:

  • Export individual processes stats #794
  • [WebUI] Feature Request: Ability to hide Engine and Pod columns in Containers #2423
  • [IP plugin] Make the public ip information more configurable (not only from the Censys service) #2732
  • Getting field information (description, unit) from the API #2630
  • Refactor alias configuration and allow alias for fs devices #1735
  • Improve alert with mininimal interval/duration configuration keys #2558
  • --stdout plugin.attr is not compliant with plugins returning list of dicts #2446
  • Lot's of log messages when a proxy is used with the Podman plugin #2714
  • [WEBUI & CURSES] Make the left menu configurable #2648
  • [WEBUI] Custom system header information #2695
  • [CURSES] Use normal color for normal text instead of an arbitrary color #2687
  • [WEBUI] Showin...
Read more

Glances 4.0.6

25 May 10:14
Compare
Choose a tag to compare

New Features

Export individual processes stats

Thanks to the new software architecture it is now possible to export individual processes stats.

You should define the processes to export from the configuration file (section processlist /option export)
or via the --export-process-filter option on the command line.

Those options are a comma separated list of Glances filter (example bellow):

  • python.*: Filter processes name or command line starting with python
  • .python.: Filter processes name or command line containing python
  • username:nicolargo: Processes belong to nicolargo user
  • cmdline:/usr/bin.*: Processes starting by /usr/bin

The following example exports all processes with the name 'python' or 'bash':

[processlist]
export=.*python.*,.*bash.*

Note: or the --export-process-filter ".python.,.bash." option in the command line.

Another example exports all processes belong to 'nicolargo' user:

[processlist]
export=username:nicolargo

Note: or the --export-process-filter "username:nicolargo" option in the command line.

Last example with the output result in a CSV file, with the following command line example:

glances -C ./conf/glances.conf --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin processlist --quiet

the output CSV file (with the PID as primary key) will look like:

timestamp,845992.memory_percent,845992.status,845992.num_threads,845992.cpu_timesuser,845992.cpu_timessystem,845992.cpu_timeschildren_user,845992.cpu_timeschildren_system,845992.cpu_timesiowait,845992.memory_inforss,845992.memory_infovms,845992.memory_infoshared,845992.memory_infotext,845992.memory_infolib,845992.memory_infodata,845992.memory_infodirty,845992.name,845992.io_counters,845992.nice,845992.cpu_percent,845992.pid,845992.gidsreal,845992.gidseffective,845992.gidssaved,845992.key,845992.time_since_update,845992.cmdline,845992.username,total,running,sleeping,thread,pid_max
2024-04-03 18:39:55,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0
2024-04-03 18:39:57,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0

Note: more details in issue #794.

GPU plugin now support AMD GPU

Lasts Linux Kernel expose the GPU stats in the /sys/class/drm folder.

So, additionally to NVidia cards and without any external lib, Glances can display AMD GPU stats:

image

GPU plugin software architecture has been re-factorized in order to easily add others cards in the future (Intel).

Note: more details in issue #993.

Wifi plugin is back

As Glances version 4 is no longer supported Python 2, Wifi plugin has been refactor and do not need any external library.

Glances parses the /proc/net/wireless file on new Linux kernel.

image

Note: more details in issue #1377.

Refactor alias configuration

Alias has been completely refactor for all plugins in order to make it easier to configure.

Glances version 3.x and lower:

sda1_alias=InternalDisk 
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

Note: more details in issue #1735.

Fields descriptions and units are now available through the API

You can now get stat description and unit through the Glances version 4 API.

$ curl http://0.0.0.0:61208/api/4/cpu/total
{"total":6.3}
$ curl http://0.0.0.0:61208/api/4/cpu/total/description
"Sum of all CPU percentages (except idle)."
$ curl http://0.0.0.0:61208/api/4/cpu/total/unit
"percent"

Note: more details in issue #2630.

Make the left menu configurable

It is now possible to configure the plugins list displayed in the Curses and Web interfaces thanks to the left_menu option in the outputs section of the Glances configuration file:

[outputs]
left_menu=network,diskio

Display:

image

Quick look plugin is now configurable

By default it displays CPU, Memory and Load information.

image

Example to cam back to the Glances version 3.0 configuration (with swap instead of load):

[quicklook]
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,swap
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|

Note: More information in issue #2662.

Enhance per CPU display

Number of cores increase, so the "Per CPU" plugin has been adpated in order to display the top 'n' CPU consuption ('n' is configurable from the Glances configuration file through the max_cpu_display option in the percpu section (default is 4 CPUs).

image

Note: see more details in issue #2734.

Display guest CPU statistic in the CPU plugin

On Linux, guest CPU is percentage of time a virtual CPU spends servicing another virtual CPU under the control of the kernel.

image

  • Ability to hide Engine and Pod columns in Containers #2423

A new logo !

Last and not least, thanks to Elad @eBarazi...

image

a new logo is released...

image

Improvements

Speed up Glances launch

Glances version 3 takes between 2 and 3 seconds to start.
Glances version 4 takes less than 1 seconds to start, with all plugins.

See #1534 for more information.

Huge improvement of the Restful API documentation

More example and information available in the single page documentation: https://github.com/nicolargo/glances/blob/develop/docs/api.rst

Breaking changes

Python version

Support of Python 2 has been removed. Glances needs Python 3.8 or higher.

Python dependencies

For package maintainers, please note that standards dependencies have changed.

Minimal requirements for Glances version 4 are:

  • psutil
  • defusedxml
  • packaging
  • ujson
  • pydantic
  • fastapi (for WebUI / RestFull API)
  • uvicorn (for WebUI / RestFull API)
  • jinja2 (for WebUI / RestFull API)

Majors changes between Glances version 3 and version 4:

  • Bottle has been replaced by FastAPI and Uvicorn
  • CouchDB has been replaced by PyCouchDB
  • nvidia-ml-py has been replaced by py3nvml
  • pysnmp has been replaced by pysnmp-lextudio

APIs

  • XML/RPC API have changed between Glances 3 and Glances 4. It is not possible to use a Glances 3.x client with a Glances 4.x.
  • Restful API upgraded to version 4 (default entry point is http://localhost:61208/api/4).

Alias definition change in the configuration file

Glances version 3.x and lower:

sda1_alias=InternalDisk
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

More details in issue #1735.

Others

  • Alert data model change from a list of list to a list of dict #2633
  • Docker memory usage uses the same algorithm than docker stats #2637

All the issues corrected in this version

Enhancements:

  • Export individual processes stats #794
  • [WebUI] Feature Request: Ability to hide Engine and Pod columns in Containers #2423
  • [IP plugin] Make the public ip information more configurable (not only from the Censys service) #2732
  • Getting field information (description, unit) from the API #2630
  • Refactor alias configuration and allow alias for fs devices #1735
  • Improve alert with mininimal interval/duration configuration keys #2558
  • --stdout plugin.attr is not compliant with plugins returning list of dicts #2446
  • Lot's of log messages when a proxy is used with the Podman plugin #2714
  • [WEBUI & CURSES] Make the left menu configurable #2648
  • [WEBUI] Custom system header information #2695
  • [CURSES] Use normal color for normal text instead of an arbitrary color #2687
  • [WEBUI] Showing the full arguments on the command column of the TASKS #2634
  • Add graph export for GPU plugin (related to #2542)
  • Refactor Alert data model from list of list to list of dict #2633
  • Use enum instead of int for callback API version. #2712
  • Make the alerts number configurable (related to #2558)
  • [WebUI] Added smart plugin support #2435
  • No more threshold display in the WebUI cpu/mem and memswap plugins #2420
  • Refactor Glances curses code #2580
  • Replace Bottle by FastAPI #2181
  • Replace py3nvml with nvidia-ml-py #2688

Bug corrected:

  • Crash when reading timezone for generating alert #2659
  • Newline in container command corrupts display / hides container #2733
  • RAID plugin not showing up in Glances web UI (Docker install) #2716
  • Alerts showing different time than time plugin #2214
  • OpenBSD crash on start without a swap file/partition #2719
  • Folders plugin always fails on special directories #2518
  • Update dependency urllib3 to v2 #2397
  • Crach when ENTER key is ...
Read more

Glances 4.0.4

17 May 07:20
Compare
Choose a tag to compare

New Features

Export individual processes stats

Thanks to the new software architecture it is now possible to export individual processes stats.

You should define the processes to export from the configuration file (section processlist /option export)
or via the --export-process-filter option on the command line.

Those options are a comma separated list of Glances filter (example bellow):

  • python.*: Filter processes name or command line starting with python
  • .python.: Filter processes name or command line containing python
  • username:nicolargo: Processes belong to nicolargo user
  • cmdline:/usr/bin.*: Processes starting by /usr/bin

The following example exports all processes with the name 'python' or 'bash':

[processlist]
export=.*python.*,.*bash.*

Note: or the --export-process-filter ".python.,.bash." option in the command line.

Another example exports all processes belong to 'nicolargo' user:

[processlist]
export=username:nicolargo

Note: or the --export-process-filter "username:nicolargo" option in the command line.

Last example with the output result in a CSV file, with the following command line example:

glances -C ./conf/glances.conf --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin processlist --quiet

the output CSV file (with the PID as primary key) will look like:

timestamp,845992.memory_percent,845992.status,845992.num_threads,845992.cpu_timesuser,845992.cpu_timessystem,845992.cpu_timeschildren_user,845992.cpu_timeschildren_system,845992.cpu_timesiowait,845992.memory_inforss,845992.memory_infovms,845992.memory_infoshared,845992.memory_infotext,845992.memory_infolib,845992.memory_infodata,845992.memory_infodirty,845992.name,845992.io_counters,845992.nice,845992.cpu_percent,845992.pid,845992.gidsreal,845992.gidseffective,845992.gidssaved,845992.key,845992.time_since_update,845992.cmdline,845992.username,total,running,sleeping,thread,pid_max
2024-04-03 18:39:55,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0
2024-04-03 18:39:57,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0

Note: more details in issue #794.

GPU plugin now support AMD GPU

Lasts Linux Kernel expose the GPU stats in the /sys/class/drm folder.

So, additionally to NVidia cards and without any external lib, Glances can display AMD GPU stats:

image

GPU plugin software architecture has been re-factorized in order to easily add others cards in the future (Intel).

Note: more details in issue #993.

Wifi plugin is back

As Glances version 4 is no longer supported Python 2, Wifi plugin has been refactor and do not need any external library.

Glances parses the /proc/net/wireless file on new Linux kernel.

image

Note: more details in issue #1377.

Refactor alias configuration

Alias has been completely refactor for all plugins in order to make it easier to configure.

Glances version 3.x and lower:

sda1_alias=InternalDisk 
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

Note: more details in issue #1735.

Fields descriptions and units are now available through the API

You can now get stat description and unit through the Glances version 4 API.

$ curl http://0.0.0.0:61208/api/4/cpu/total
{"total":6.3}
$ curl http://0.0.0.0:61208/api/4/cpu/total/description
"Sum of all CPU percentages (except idle)."
$ curl http://0.0.0.0:61208/api/4/cpu/total/unit
"percent"

Note: more details in issue #2630.

Make the left menu configurable

It is now possible to configure the plugins list displayed in the Curses and Web interfaces thanks to the left_menu option in the outputs section of the Glances configuration file:

[outputs]
left_menu=network,diskio

Display:

image

Quick look plugin is now configurable

By default it displays CPU, Memory and Load information.

image

Example to cam back to the Glances version 3.0 configuration (with swap instead of load):

[quicklook]
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,swap
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|

Note: More information in issue #2662.

Enhance per CPU display

Number of cores increase, so the "Per CPU" plugin has been adpated in order to display the top 'n' CPU consuption ('n' is configurable from the Glances configuration file through the max_cpu_display option in the percpu section (default is 4 CPUs).

image

Note: see more details in issue #2734.

Display guest CPU statistic in the CPU plugin

On Linux, guest CPU is percentage of time a virtual CPU spends servicing another virtual CPU under the control of the kernel.

image

  • Ability to hide Engine and Pod columns in Containers #2423

A new logo !

Last and not least, thanks to Elad @eBarazi...

image

a new logo is released...

image

Improvements

Speed up Glances launch

Glances version 3 takes between 2 and 3 seconds to start.
Glances version 4 takes less than 1 seconds to start, with all plugins.

See #1534 for more information.

Huge improvement of the Restful API documentation

More example and information available in the single page documentation: https://github.com/nicolargo/glances/blob/develop/docs/api.rst

Breaking changes

Python version

Support of Python 2 has been removed. Glances needs Python 3.8 or higher.

Python dependencies

For package maintainers, please note that standards dependencies have changed.

Minimal requirements for Glances version 4 are:

  • psutil
  • defusedxml
  • packaging
  • ujson
  • pydantic
  • fastapi (for WebUI / RestFull API)
  • uvicorn (for WebUI / RestFull API)
  • jinja2 (for WebUI / RestFull API)

Majors changes between Glances version 3 and version 4:

  • Bottle has been replaced by FastAPI and Uvicorn
  • CouchDB has been replaced by PyCouchDB
  • nvidia-ml-py has been replaced by py3nvml
  • pysnmp has been replaced by pysnmp-lextudio

APIs

  • XML/RPC API have changed between Glances 3 and Glances 4. It is not possible to use a Glances 3.x client with a Glances 4.x.
  • Restful API upgraded to version 4 (default entry point is http://localhost:61208/api/4).

Alias definition change in the configuration file

Glances version 3.x and lower:

sda1_alias=InternalDisk
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

More details in issue #1735.

Others

  • Alert data model change from a list of list to a list of dict #2633
  • Docker memory usage uses the same algorithm than docker stats #2637

All the issues corrected in this version

Enhancements:

  • Export individual processes stats #794
  • [WebUI] Feature Request: Ability to hide Engine and Pod columns in Containers #2423
  • [IP plugin] Make the public ip information more configurable (not only from the Censys service) #2732
  • Getting field information (description, unit) from the API #2630
  • Refactor alias configuration and allow alias for fs devices #1735
  • Improve alert with mininimal interval/duration configuration keys #2558
  • --stdout plugin.attr is not compliant with plugins returning list of dicts #2446
  • Lot's of log messages when a proxy is used with the Podman plugin #2714
  • [WEBUI & CURSES] Make the left menu configurable #2648
  • [WEBUI] Custom system header information #2695
  • [CURSES] Use normal color for normal text instead of an arbitrary color #2687
  • [WEBUI] Showing the full arguments on the command column of the TASKS #2634
  • Add graph export for GPU plugin (related to #2542)
  • Refactor Alert data model from list of list to list of dict #2633
  • Use enum instead of int for callback API version. #2712
  • Make the alerts number configurable (related to #2558)
  • [WebUI] Added smart plugin support #2435
  • No more threshold display in the WebUI cpu/mem and memswap plugins #2420
  • Refactor Glances curses code #2580
  • Replace Bottle by FastAPI #2181
  • Replace py3nvml with nvidia-ml-py #2688

Bug corrected:

  • Crash when reading timezone for generating alert #2659
  • Newline in container command corrupts display / hides container #2733
  • RAID plugin not showing up in Glances web UI (Docker install) #2716
  • Alerts showing different time than time plugin #2214
  • OpenBSD crash on start without a swap file/partition #2719
  • Folders plugin always fails on special directories #2518
  • Update dependency urllib3 to v2 #2397
  • Crach when ENTER key is ...
Read more

v4.0.3

15 May 07:59
Compare
Choose a tag to compare
  • Bug fixes for sensors plugin

Full Changelog: v4.0.2...v4.0.3

Glances 4.0.2

13 May 21:03
Compare
Choose a tag to compare

DRAFT UNDER CONSTRUCTION


New Features

Export individual processes stats

Thanks to the new software architecture it is now possible to export individual processes stats.

You should define the processes to export from the configuration file (section processlist /option export)
or via the --export-process-filter option on the command line.

Those options are a comma separated list of Glances filter (example bellow):

  • python.*: Filter processes name or command line starting with python
  • .python.: Filter processes name or command line containing python
  • username:nicolargo: Processes belong to nicolargo user
  • cmdline:/usr/bin.*: Processes starting by /usr/bin

The following example exports all processes with the name 'python' or 'bash':

[processlist]
export=.*python.*,.*bash.*

Note: or the --export-process-filter ".python.,.bash." option in the command line.

Another example exports all processes belong to 'nicolargo' user:

[processlist]
export=username:nicolargo

Note: or the --export-process-filter "username:nicolargo" option in the command line.

Last example with the output result in a CSV file, with the following command line example:

glances -C ./conf/glances.conf --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin processlist --quiet

the output CSV file (with the PID as primary key) will look like:

timestamp,845992.memory_percent,845992.status,845992.num_threads,845992.cpu_timesuser,845992.cpu_timessystem,845992.cpu_timeschildren_user,845992.cpu_timeschildren_system,845992.cpu_timesiowait,845992.memory_inforss,845992.memory_infovms,845992.memory_infoshared,845992.memory_infotext,845992.memory_infolib,845992.memory_infodata,845992.memory_infodirty,845992.name,845992.io_counters,845992.nice,845992.cpu_percent,845992.pid,845992.gidsreal,845992.gidseffective,845992.gidssaved,845992.key,845992.time_since_update,845992.cmdline,845992.username,total,running,sleeping,thread,pid_max
2024-04-03 18:39:55,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0
2024-04-03 18:39:57,3.692938041968513,S,138,1702.88,567.89,1752.79,244.18,0.0,288919552,12871561216,95182848,856064,0,984535040,0,firefox,1863281664,0,0.5,845992,1000,1000,1000,pid,2.2084147930145264,/snap/firefox/3836/usr/lib/firefox/firefox,nicolargo,403,1,333,1511,0

Note: more details in issue #794.

GPU plugin now support AMD GPU

Lasts Linux Kernel expose the GPU stats in the /sys/class/drm folder.

So, additionally to NVidia cards and without any external lib, Glances can display AMD GPU stats:

image

GPU plugin software architecture has been re-factorized in order to easily add others cards in the future (Intel).

Note: more details in issue #993.

Wifi plugin is back

As Glances version 4 is no longer supported Python 2, Wifi plugin has been refactor and do not need any external library.

Glances parses the /proc/net/wireless file on new Linux kernel.

image

Note: more details in issue #1377.

Refactor alias configuration

Alias has been completely refactor for all plugins in order to make it easier to configure.

Glances version 3.x and lower:

sda1_alias=InternalDisk 
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

Note: more details in issue #1735.

Fields descriptions and units are now available through the API

You can now get stat description and unit through the Glances version 4 API.

$ curl http://0.0.0.0:61208/api/4/cpu/total
{"total":6.3}
$ curl http://0.0.0.0:61208/api/4/cpu/total/description
"Sum of all CPU percentages (except idle)."
$ curl http://0.0.0.0:61208/api/4/cpu/total/unit
"percent"

Note: more details in issue #2630.

Make the left menu configurable

It is now possible to configure the plugins list displayed in the Curses and Web interfaces thanks to the left_menu option in the outputs section of the Glances configuration file:

[outputs]
left_menu=network,diskio

Display:

image

Quick look plugin is now configurable

By default it displays CPU, Memory and Load information.

image

Example to cam back to the Glances version 3.0 configuration (with swap instead of load):

[quicklook]
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,swap
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|

Note: More information in issue #2662.

Enhance per CPU display

Number of cores increase, so the "Per CPU" plugin has been adpated in order to display the top 'n' CPU consuption ('n' is configurable from the Glances configuration file through the max_cpu_display option in the percpu section (default is 4 CPUs).

image

Note: see more details in issue #2734.

Display guest CPU statistic in the CPU plugin

On Linux, guest CPU is percentage of time a virtual CPU spends servicing another virtual CPU under the control of the kernel.

image

  • Ability to hide Engine and Pod columns in Containers #2423

A new logo !

Last and not least, thanks to Elad @eBarazi...

image

a new logo is released...

image

Improvements

Speed up Glances launch

Glances version 3 takes between 2 and 3 seconds to start.
Glances version 4 takes less than 1 seconds to start, with all plugins.

See #1534 for more information.

Huge improvement of the Restful API documentation

More example and information available in the single page documentation: https://github.com/nicolargo/glances/blob/develop/docs/api.rst

Breaking changes

Python version

Support of Python 2 has been removed. Glances needs Python 3.8 or higher.

Python dependencies

For package maintainers, please note that standards dependencies have changed.

Minimal requirements for Glances version 4 are:

  • psutil
  • defusedxml
  • packaging
  • ujson
  • pydantic
  • fastapi (for WebUI / RestFull API)
  • uvicorn (for WebUI / RestFull API)
  • jinja2 (for WebUI / RestFull API)

Majors changes between Glances version 3 and version 4:

  • Bottle has been replaced by FastAPI and Uvicorn
  • CouchDB has been replaced by PyCouchDB
  • nvidia-ml-py has been replaced by py3nvml
  • pysnmp has been replaced by pysnmp-lextudio

APIs

  • XML/RPC API have changed between Glances 3 and Glances 4. It is not possible to use a Glances 3.x client with a Glances 4.x.
  • Restful API upgraded to version 4 (default entry point is http://localhost:61208/api/4).

Alias definition change in the configuration file

Glances version 3.x and lower:

sda1_alias=InternalDisk
sdb1_alias=ExternalDisk

Glances version 4.x and higher:

alias=sda1:InternalDisk,sdb1:ExternalDisk

More details in issue #1735.

Others

  • Alert data model change from a list of list to a list of dict #2633
  • Docker memory usage uses the same algorithm than docker stats #2637

All the issues corrected in this version

Enhancements:

  • Export individual processes stats #794
  • [WebUI] Feature Request: Ability to hide Engine and Pod columns in Containers #2423
  • [IP plugin] Make the public ip information more configurable (not only from the Censys service) #2732
  • Getting field information (description, unit) from the API #2630
  • Refactor alias configuration and allow alias for fs devices #1735
  • Improve alert with mininimal interval/duration configuration keys #2558
  • --stdout plugin.attr is not compliant with plugins returning list of dicts #2446
  • Lot's of log messages when a proxy is used with the Podman plugin #2714
  • [WEBUI & CURSES] Make the left menu configurable #2648
  • [WEBUI] Custom system header information #2695
  • [CURSES] Use normal color for normal text instead of an arbitrary color #2687
  • [WEBUI] Showing the full arguments on the command column of the TASKS #2634
  • Add graph export for GPU plugin (related to #2542)
  • Refactor Alert data model from list of list to list of dict #2633
  • Use enum instead of int for callback API version. #2712
  • Make the alerts number configurable (related to #2558)
  • [WebUI] Added smart plugin support #2435
  • No more threshold display in the WebUI cpu/mem and memswap plugins #2420
  • Refactor Glances curses code #2580
  • Replace Bottle by FastAPI #2181
  • Replace py3nvml with nvidia-ml-py #2688

Bug corrected:

  • Crash when reading timezone for generating alert #2659
  • Newline in container command corrupts display / hides container #2733
  • RAID plugin not showing up in Glances web UI (Docker install) #2716
  • Alerts showing different time than time plugin #2214
  • OpenBSD crash on start without a swap file/partition #2719
  • Folders plugin always fails on special directories #2518
  • Update dependency urllib3 to v2 #2397
    ...
Read more

v3.4.0.5

24 Mar 12:32
Compare
Choose a tag to compare

Version 3.4.0.5

Correct issur with GPU plugin in Docker images #2705

Version 3.4.0.4

Cyber security patch (update some deps in the WebUI and Docker image)

Version 3.4.0.3

Bugs corrected:

* Add glances binary to '/usr/local/bin' + Update ENV PATH to include '/venv/bin' in Dockerfiles #2419
* No more threshold display in the WebUI cpu/mem and memswap plugins #2420

Version 3.4.0.2

Bugs corrected:

* Cannot start Glances 3.4.0.1 on Windows 10: SIGHUP not defined #2408
* Influxdb2 export not working #2407

Version 3.4.0.1

Bug corrected:

* 3.4.0 crash on startupwith minimal deps #2401

Version 3.4.0

Enhancements:

* Enhance process "extended stats" display (in Curses interface) #2225
  _You can now *pin* a specific process to the top of the process list_
* Improve Glances start time by disabling Docker and Podman version getter - Related to #1985
* Customizable InfluxDB2 export interval #2348
* Improve kill signal management #2194
* Display a critical error message if Glances is ran with both webserver and rpcserver mode
* Refactor the Cloud plugin, disable it by default in the default configuration file - Related to #2279
* Correct clear-text logging of sensitive information (security alert #29)
* Use of a broken or weak cryptographic hashing algorithm (SHA256) on password storage #2175

Bug corrected:

* Correct issue (error message) concerning the Cloud plugin - Related to #2392
* InfluxDB2 export doesn't process folders correctly - missing key #2327
* Index error when displaying programs on MacOS #2360
* Dissociate 2 sensors with exactly the same names #2280
* All times displayed in UTC - Container not using TZ/localtime (Docker) #2278
* It is not possible to return API data for a particular mount point (FS plugin) #1162

Documentation and CI:

* chg: Dockerfile - structured & cleaner build process #2386
* Ubuntu is back as additional Docker images. Alpine stays the default one. Related to #2185
* Improve Makefile amd docker-compose to support Podman and GPU
* Workaround to pin urlib3<2.0 - Related to #2392
* Error while generating the documentation (ModuleNotFoundError: No module named 'glances') #2391
* Update Flamegraph (memory profiling)
* Improve template for issue report and feature request
* Parameters in the VIRT column #2343
* Graph generation documentation is not clear #2336
* docs: Docker - include tag details
* Add global architecture diagram (Excalidraw)
* Links to documents in sample glances.conf are not valid. #2271
* Add semgrep support
* Smartmontools missing from full docker image #2262
* Improve documentation regarding regexp in configuration file
* Improve documentation about the [ip] plugin #2251

Cyber security update:

* All libs have been updated to the latest version
  Full roadmap here: https://github.com/nicolargo/glances/milestone/62?closed=1

Refactor the Docker images factory, from now, Alpine and Ubuntu images will be provided (nicolargo/glances):

  • latest-full for a full Alpine Glances image (latest release) with all dependencies
  • latest for a basic Alpine Glances (latest release) version with minimal dependencies (Bottle and Docker)
  • dev for a basic Alpine Glances image (based on development branch) with all dependencies (Warning: may be instable)
  • ubuntu-latest-full for a full Ubuntu Glances image (latest release) with all dependencies
  • ubuntu-latest for a basic Ubuntu Glances (latest release) version with minimal dependencies (Bottle and Docker)
  • ubuntu-dev for a basic Ubuntu Glances image (based on development branch) with all dependencies (Warning: may be instable)

Contributors for this version:

* Nicolargo
* RazCrimson: a very special thanks to @RazCrimson for his huge work on this version !
* Bharath Vignesh J K
* Raz Crimson
* fr4nc0is
* Florian Calvet
* Ali Erdinç Köroğlu
* Jose Vicente Nunez
* Rui Chen
* Ryan Horiguchi
* mfridge
* snyk-bot