Commit Graph
6225 Commits
Author SHA1 Message Date
nicolargo e28bf6496f Add a new field in the process list to identifie Zombie process #3178 2025-07-05 10:32:11 +02:00
Ariel Otilibili a78e778b36 plugins: containers: Refactor
1. update()
Two branches share the same logic for updating stats. Moreover, intermediate
values where used in nested loops: for filtering keys, and for extending stats.

This could be done at once with chain.from_iterable().

Therefore four helpers are introduced:
- add_engine_into_container
- is_key_in_container_and_not_hidden
- is_key_absent_in_container
- get_containers_from_updated_watcher

A profiling shows the stats build time is the same after the refactor,

$ sudo make run-webserver 2>&1 | grep primitive
         31631 function calls (31566 primitive calls) in 0.028 seconds
         23537 function calls (23487 primitive calls) in 0.025 seconds
         23559 function calls (23509 primitive calls) in 0.014 seconds
         23549 function calls (23499 primitive calls) in 0.024 seconds
         23549 function calls (23499 primitive calls) in 0.026 seconds
         23559 function calls (23509 primitive calls) in 0.016 seconds
         23559 function calls (23509 primitive calls) in 0.022 seconds
         23544 function calls (23494 primitive calls) in 0.015 seconds
         23549 function calls (23499 primitive calls) in 0.023 seconds
         23544 function calls (23494 primitive calls) in 0.018 seconds

[snapshot of top three calls]
         31881 function calls (31816 primitive calls) in 0.029 seconds

   Ordered by: cumulative time
   List reduced from 536 to 3 due to restriction <3>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        3    0.000    0.000    0.029    0.010 __init__.py:250(<genexpr>)
        2    0.000    0.000    0.029    0.015 __init__.py:242(get_containers_from_updated_watcher)
        1    0.000    0.000    0.029    0.029 docker.py:248(update)

And before,

$ sudo make run-webserver 2>&1 | grep primitive
         31620 function calls (31555 primitive calls) in 0.021 seconds
         23526 function calls (23476 primitive calls) in 0.019 seconds
         23533 function calls (23483 primitive calls) in 0.024 seconds
         23538 function calls (23488 primitive calls) in 0.015 seconds
         23528 function calls (23478 primitive calls) in 0.023 seconds
         23528 function calls (23478 primitive calls) in 0.022 seconds
         23533 function calls (23483 primitive calls) in 0.016 seconds
         23538 function calls (23488 primitive calls) in 0.025 seconds
         23538 function calls (23488 primitive calls) in 0.029 seconds
         23538 function calls (23488 primitive calls) in 0.013 seconds

[snapshot of top three calls]
         31865 function calls (31800 primitive calls) in 0.024 seconds

   Ordered by: cumulative time
   List reduced from 531 to 3 due to restriction <3>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.024    0.024 docker.py:248(update)
       13    0.000    0.000    0.022    0.002 decorators.py:38(inner)
       13    0.000    0.000    0.022    0.002 client.py:244(_get)

2. msg_curse()
The conditions are directly used in any().

3. exit()
Minimum supported version is Python 3.9; loops use iterators by default.

itervalues() was introduced for compatility with Python 2. Commit 76ea71f2
("Remove Python 2 in docs and README files") removed Python 2 support.

Part-of: #2801
Link: https://docs.python.org/3/library/itertools.html#itertools.chain.from_iterable
Link: https://docs.python.org/3/library/profile.html#profile.Profile
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili 91902f0ffa plugins: containers: Refactor build_container_data
All the if-statements do the same actions:
- check the key is not disabled
- and add the corresponding callback to the building steps.

There could be done with a list comprehension on a dict.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili f747bdfa73 containers: Fix sorting
sort_keys() uses sort_by_these_keys() on the stats. So doing, one of the
retrieved values might be absent; and sort_keys() will fall back to the
default sorting method, which is the alphabetical order.

This is the case for dead or exited containers.

Instead of a key lookup, the get method of dict could be used.

GH issue: #3098
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili e4cdc14cd0 containers: processes: Refactor
Refactored sort_docker_stats() and sort_stats().

Useful for an upcoming commit.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
nicolargo dc165930b4 Refactor code to limit the complexity of update_views method in plugins #3171 2025-07-05 10:32:11 +02:00
nicolargo 03f23a582d Code refactoring - Rename plugin class to <Plugin name>Plugin instead of PluginModel #3169 2025-07-05 10:32:11 +02:00
Ariel Otilibili 1e92365c5e plugins: connections: refactor, version 2
Extracted update_with_net_connections_method and
update_with_nf_conntrack_method from update.

Part-of: #2801
Link: https://scrutinizer-ci.com/g/nicolargo/glances/code-structure/develop/py-function/glances.plugins.connections.PluginModel.update
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Nicolas Hennion a3e55145b8 Revert "plugins: connections: refactor" 2025-07-05 10:32:11 +02:00
Ariel Otilibili 72a1466e9f plugins: connections: refactor
Extracted update_with_net_connections_method and
update_with_nf_conntrack_method from update.

Part-of: #2801
Link: https://scrutinizer-ci.com/g/nicolargo/glances/code-structure/develop/py-function/glances.plugins.connections.PluginModel.update
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
nguuuquaaa c612899612 fix display checking logic 2025-07-05 10:32:11 +02:00
nguuuquaaa b86b201e6a fix broken matching when fs config has show value 2025-07-05 10:32:11 +02:00
nguuuquaaa c59931cb80 fix broken implementation of plugin.is_display/is_hide/is_show 2025-07-05 10:32:11 +02:00
nicolargo bfda524b4e [WEBUI] Irix mode (per core instead of per CPU percentage) not togglable #3158 2025-07-05 10:32:11 +02:00
nicolargo 0bbb20a127 Done bu display 0 on the WebUI CPU column in IRIS mode... Why ??? 2025-07-05 10:32:11 +02:00
Ariel Otilibili 54e57317be plugins: mem: reduce code complexity
Part of #2801.

Link: https://scrutinizer-ci.com/g/nicolargo/glances/code-structure/develop/py-function/glances.plugins.mem.PluginModel.update
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
wuhgit c473060740 Revision of confusing descriptions in the SMART section of the document 2025-07-05 10:32:11 +02:00
nicolargo 4e8b1f5508 Correct an issue with VMs bin test 2025-07-05 10:32:11 +02:00
nicolargo 82e59dbfda Add stats about running VMS (qemu/libvirt/kvm support through virsh) #1531 2025-07-05 10:32:11 +02:00
nicolargo fb81a2a5f7 Add stats about running VMS (qemu/libvirt/kvm support through virsh) #1531 2025-07-05 10:32:11 +02:00
Nicolas Hennion 50c440f739 Update faq.rst 2025-07-05 10:32:11 +02:00
Nicolas Hennion 9db02dc7ec Update faq.rst 2025-07-05 10:32:11 +02:00
Nicolas Hennion ae5eb61307 Container memory stats not displayed #3142 2025-07-05 10:32:11 +02:00
Tyler Kerr 080be4d845 strip unsupported line endings from password file 2025-07-05 10:32:11 +02:00
renovate[bot] c738f482e9 Update docker/build-push-action action to v6 2025-07-05 10:32:11 +02:00
nicolargo a550afbd25 Take into account @amard33p comment - https://github.com/nicolargo/glances/issues/2394#issuecomment-2794522951 2025-07-05 10:32:11 +02:00
nicolargo 941baba5b4 Improve unittest for CSV export #3150 2025-07-05 10:32:11 +02:00
nicolargo 91c132fe08 Remove quicklook from the exportable list 2025-07-05 10:32:11 +02:00
nicolargo 009212a04d Do not store data during InfluxDB test 2025-07-05 10:32:11 +02:00
nicolargo 43626d9d69 Improve unittest for InfluxDB plugin #3149 2025-07-05 10:32:11 +02:00
nicolargo ec8365817f Improve unittest for InfluxDB plugin #3149 2025-07-05 10:32:11 +02:00
nicolargo bdef92da4f Correct NoneType in update_view method 2025-07-05 10:32:11 +02:00
renovate[bot] 16dee18c52 chore(deps): update actions/stale action to v9 2025-07-05 10:32:11 +02:00
renovate[bot] d2de1424fb Update dependency windows to v2025 2025-07-05 10:32:10 +02:00
renovate[bot] daf6964f14 Update dependency ubuntu to v24 2025-07-05 10:32:10 +02:00
nicolargo cfc34e7cd4 Upgrade JS libs #3147 2025-07-05 10:32:10 +02:00
nicolargo 0d2f5e4ba3 Commit before lint 2025-07-05 10:32:10 +02:00
nicolargo 7de582fdb0 Update precommit hook 2025-07-05 10:32:10 +02:00
nicolargo 1378eb80ba Correct README file 2025-07-05 10:32:10 +02:00
nicolargo fe59850c28 Make the shtab optional 2025-07-05 10:32:10 +02:00
nicolargo 558ebbaec7 Add a new option --print-completion to generate shell tab completion - #3111 2025-07-05 10:32:10 +02:00
nicolargo 9e2504b056 Update documentation 2025-07-05 10:32:10 +02:00
nicolargo b4d5de96fc Add shtab as a dependency 2025-07-05 10:32:10 +02:00
nicolargo 0e181d9059 In the FS module, do not display threshold for volume mounted in 'ro' (read-only) #3143 2025-07-05 10:32:10 +02:00
kenrmayfield 25b550834a Update README.rst
Update Line: 
Glances Binary Package Versions per System Architecture for FreeBSD as of: 08 Mar 2025 04:05:21

Changed to:
Glances Binary Package Versions and Python Versions( pyXY-glances) per System Architecture for FreeBSD as of: 08 Mar 2025 04:05:21
2025-07-05 10:32:10 +02:00
kenrmayfield b30a29897e Update README.rst
Remove CHECK Link.  Not working correctly.  Need to wait until Main Repository has been Updated.  Then I can make a Link to the FreeBSD Glances Binary Package Version Picture.
2025-07-05 10:32:10 +02:00
kenrmayfield 451b1a2294 Update README.rst
Updated CHECK Link again due to Error in Syntax
2025-07-05 10:32:10 +02:00
kenrmayfield b23a4f6a3d Update README.rst
Updated CHECK Link for Python Version corresponding to Glances Binary Package
2025-07-05 10:32:10 +02:00
kenrmayfield 415abe2284 Update README.rst
Capitalize the words eye and system in the Title to Eye and System
2025-07-05 10:32:10 +02:00
kenrmayfield 7f5f2fd2b1 Update README.rst
Changed spelling of ports to Ports
2025-07-05 10:32:10 +02:00