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