Compare commits

...

1854 Commits

Author SHA1 Message Date
nicolargo 17266144c8 Merge branch 'issue3400' into develop 2026-01-10 16:23:13 +01:00
nicolargo 7da3111b76 Process widget is broken in Homepage since a few dev release #3400 2026-01-10 16:23:01 +01:00
nicolargo 131d0aec8d Merge branch 'issue3127' into develop 2026-01-04 18:58:34 +01:00
nicolargo 3f060c684b Improve CPU name in Quicklook plugin for ARM prcessors #3127 2026-01-04 18:58:21 +01:00
nicolargo 37d2fe13d0 Make public IP address retreiving call async 2026-01-03 15:42:31 +01:00
nicolargo 0d8352c9c7 Update README 2026-01-03 15:21:24 +01:00
nicolargo ad9d52b5b0 Remove Netifaces2 from requirements file 2026-01-03 15:15:15 +01:00
nicolargo 22f7be01cb Merge branch 'issue3130' into develop 2026-01-03 15:14:20 +01:00
nicolargo 326c2fef51 Remove Netifaces dependency and use a pure Python to get Default Gateway.
Ip address and Net mask are now retreived thanks to PSutil.
2026-01-03 15:12:53 +01:00
nicolargo a3195463a0 Add system test for NATS exporter 2026-01-03 14:21:26 +01:00
nicolargo 84324615c5 Align conf file between default and the one used in Docker compose 2026-01-03 09:32:34 +01:00
nicolargo fa9bb2cdab Add Ruff formater in pre-hook 2026-01-03 09:25:27 +01:00
nicolargo d97c5cd5b9 Format and lint the code 2026-01-03 09:21:43 +01:00
nicolargo 420305a24a Merge branch 'issue3385' into develop 2026-01-03 09:18:45 +01:00
nicolargo 603f1ee8a4 Option to revert to using arrows to switch sorting? #3385 2026-01-03 09:18:25 +01:00
nicolargo 62e0b784bd Format/Lint code 2026-01-03 09:03:32 +01:00
nicolargo 1e25b4b130 Merge branch 'drake7707-develop' into develop 2026-01-03 09:00:39 +01:00
nicolargo 8b76cd458e Reduced cyclomatic complexity - Each function now does one thing
Better readability - Descriptive function names explain intent
Easier testing - Helper functions can be tested independently
Consistent style - f-strings used throughout
Removed code smells - No more pass statements in conditionals, no assert for validation
2026-01-03 09:00:05 +01:00
nicolargo 5cbbe91e1f Regenerate the WebUI and lint the code 2026-01-03 08:52:19 +01:00
Drakarah 862ac41b58 Merge branch 'develop' of https://github.com/nicolargo/glances into develop 2026-01-03 07:33:53 +00:00
Drakarah c8b2a90f3b Format the smart data in the web ui the same way as curses output 2026-01-03 07:33:09 +00:00
nicolargo 6e844f3c8b Update doc 2026-01-02 18:10:00 +01:00
nicolargo 91279b9144 Lint and format the code 2026-01-02 18:07:28 +01:00
nicolargo 7160cd8ae4 Merge branch 'issue3341-NATS' into develop 2026-01-02 18:00:30 +01:00
nicolargo 4bd36a34a1 Refactor NATS export to use async base class
Replace custom event loop threading implementation with GlancesExportAsyncio
base class. This simplifies the code by delegating async lifecycle management
to the parent class and using standardized _async_init(), _async_exit(), and
_async_export() methods instead of manual thread and event loop handling.
2026-01-02 17:28:52 +01:00
nicolargo 6cedd16753 Add test for NATS in the Makefile 2026-01-02 17:02:49 +01:00
nicolargo 12083f33fc Remove debug message 2026-01-02 09:42:03 +01:00
nicolargo b7c6cce373 First version ok. Log message should be removed. Code should be tested. 2025-12-30 19:04:07 +01:00
nicolargo ba932e72bd Read only container (with docker-compose) #3382 2025-12-30 10:40:36 +01:00
nicolargo 5d9593b393 Lint the code 2025-12-26 18:47:01 +01:00
nicolargo 5886321156 Lint code 2025-12-26 18:27:13 +01:00
nicolargo f72b3e226e Merge branch 'issue3387' into develop 2025-12-26 18:22:31 +01:00
nicolargo b9a89006a2 Sort by time do not work anymore #3387 2025-12-26 18:22:20 +01:00
nicolargo 1353b22445 Revert "Switch Docker Alpine based images to hardened"
This reverts commit f3b3b42e29.
2025-12-23 14:33:55 +01:00
nicolargo f058360b52 Merge branch 'issue3280' into develop 2025-12-23 14:15:16 +01:00
nicolargo f3b3b42e29 Switch Docker Alpine based images to hardened 2025-12-23 14:14:58 +01:00
nicolargo be199ef044 Merge branch 'issue3359_Improve_DockerFile' into develop 2025-12-22 10:58:30 +01:00
nicolargo 15d252a40b Some imporovement regarding Dockerfile - #3359 2025-12-22 10:58:09 +01:00
Drakarah 0b141ff92d update doc 2025-12-22 09:42:32 +00:00
Drakarah 60f304c313 auto unit on curses output 2025-12-22 09:38:14 +00:00
Drakarah 29d7a15dab Add a hide_attributes to well hide attributes 2025-12-22 09:17:20 +00:00
Drakarah f837614a69 Use proper labels instead of attribute keys (if possible) 2025-12-22 07:43:52 +00:00
Drakarah 3247b0dc33 Change proposed by @webdjoe (https://github.com/nicolargo/glances/pull/3355?notification_referrer_id=NT_kwDOAFGpVLMyMDY1Mjk5NjMyMTo1MzUxNzY0#issuecomment-3679451101) 2025-12-22 07:30:12 +00:00
Drakarah 507079491a Merge branch 'develop' of https://github.com/nicolargo/glances into develop 2025-12-22 07:27:41 +00:00
nicolargo d5ce8a7461 Lint code for Python 3.10 2025-12-21 14:40:39 +01:00
nicolargo f587b281c0 Catch error on ADM GPU plugin and Python 3.9 2025-12-20 15:33:17 +01:00
nicolargo e74dcc0060 Add comment for Git action tests 2025-12-20 15:19:58 +01:00
nicolargo 59d54b8e2b Correct issue with test on Python 3.9 2025-12-20 10:36:00 +01:00
nicolargo 184e490660 Bump to Python 3.10 as minimal version 2025-12-20 10:22:03 +01:00
nicolargo cd1f9348c2 Change load method name 2025-12-20 10:08:26 +01:00
nicolargo 68b5215e94 Lint quicklook 2025-12-20 10:01:01 +01:00
nicolargo 928e577d8c Update webUI 2025-12-20 09:53:29 +01:00
nicolargo 1b6d63fd2f Update deps 2025-12-20 09:44:49 +01:00
nicolargo fafdef615d Lint the code and correct issue with List (replaced by list) 2025-12-20 09:40:09 +01:00
nicolargo 8ab188bc04 Lint code 2025-12-20 09:33:01 +01:00
Nicolas Hennion cd9360f637
Merge pull request #3379 from okulev/cpu_freq_nomax
Fix quicklook in case psutil.cpu_freq().max=0.0
2025-12-20 09:22:22 +01:00
Nicolas Hennion be5a92c7e6
Merge pull request #3381 from ruben-arts/patch-1
Update license specification to SPDX format
2025-12-20 09:20:22 +01:00
Nicolas Hennion 9907e7242f
Merge pull request #3383 from kelvinvelasquez-SDE/fix/security-bandit
fix(security): resolve B701 (Jinja2) and B113 (timeout) vulnerabilities
2025-12-20 09:19:09 +01:00
Kelvin Velasquez 9b5cc01b06 fix(security): resolve B701 and B113 bandit issues (#3353)
Detailed changes:
- Enable autoescape=True for Jinja2 environment to prevent XSS (B701).
- Add timeout=15s to requests.get in nginx amp (B113).
- Add timeout=15s to post in restful export (B113).
2025-12-19 13:23:51 -06:00
Ruben Arts 89753198b3
Remove LGPL-3.0 license from pyproject.toml
License classifiers have been superseded by license expressions (see https://peps.python.org/pep-0639/).
2025-12-19 10:17:28 +01:00
Ruben Arts 8408a35100
Update license specification to SPDX format
Using the format specified in: https://spdx.org/licenses/
2025-12-19 10:04:07 +01:00
Ognyan Kulev bd246fe966 Fix quicklook in case psutil.cpu_freq().max=0.0 2025-12-16 20:57:46 +02:00
Nicolas Hennion 7b22761c75
Merge pull request #3377 from okulev/amdgpu_gtt
Include GTT to mem% for integrated AMD GPUs
2025-12-15 09:05:57 +01:00
Drakarah 9d4bc76304 Don't crash if any attribute fails to serialize 2025-12-15 08:03:08 +00:00
Drakarah 74771d0949 Merge branch 'develop' of https://github.com/nicolargo/glances into develop 2025-12-15 07:57:47 +00:00
Ognyan Kulev 2a508d7641 Use glob.glob also for device list 2025-12-14 23:57:41 +02:00
Ognyan Kulev 41db9c86f9 Include GTT to mem% for integrated AMD GPUs 2025-12-14 22:39:02 +02:00
nicolargo eb21408b72 Lint the code 2025-12-14 17:27:53 +01:00
Nicolas Hennion 4f48d33709
Merge pull request #3376 from okulev/amdgpu_ids
Get amdgpu name from `amdgpu.ids`
2025-12-14 17:24:33 +01:00
Ognyan Kulev 2800e81cb0 Add pci id files to tests-data 2025-12-14 14:19:18 +02:00
Ognyan Kulev bc629d12b2 Remove 'AMD' prefix and 'Graphics' suffix. 2025-12-14 12:44:30 +02:00
Ognyan Kulev ec11dff2cd Get amdgpu name from amdgpu.ids 2025-12-13 21:33:22 +02:00
nicolargo 71b0d4b606 Dependencies update 2025-12-06 17:55:24 +01:00
Drakarah d009335ba0 Merge branch 'develop' of https://github.com/nicolargo/glances into develop 2025-12-02 07:51:49 +00:00
nicolargo f84baaa8df Update requirements 2025-11-29 09:50:26 +01:00
Drakarah bbb733d6cb Fix output for curses 2025-11-23 10:47:10 +00:00
Drakarah 73f45dd9a8 remove old comment 2025-11-23 10:17:53 +00:00
Drakarah 394f94fb27 use pySMART instead of the old outdated pySMART.smartx 2025-11-23 10:15:53 +00:00
Drakarah 2146673841 Merge branch 'develop' of https://github.com/nicolargo/glances into develop 2025-11-23 10:09:11 +00:00
Drakarah fcc5061d8c smart nvme support 2025-11-23 10:05:55 +00:00
nicolargo f2641c80e2 Glances won't start when using snmp discovery with parameter -c #3354 2025-11-23 10:06:08 +01:00
nicolargo b9c451ce7a Merge branch 'issue3342-precommit_hooks' into develop 2025-11-22 19:08:00 +01:00
nicolargo ca2d729211 Add bandit in Makefile 2025-11-22 19:07:45 +01:00
nicolargo 50818213b1 What a sexy pre-commit config file ! 2025-11-22 18:48:13 +01:00
nicolargo 868aa0f4b1 Merge branch 'issue3352-fetch_client_server' into develop 2025-11-22 16:38:21 +01:00
nicolargo f7ab7efdd4 Fetch option is not compliant with client/server mode #3352 2025-11-22 16:37:03 +01:00
nicolargo 9797fc795e Correct lint issue 2025-11-21 18:36:50 +01:00
nicolargo fc2e2c71af Merge branch 'issue3350-jupiter-notebook' into develop 2025-11-21 18:32:36 +01:00
nicolargo 45bdcc92c7 Add a first and simple Jupyter notebook 2025-11-21 18:32:23 +01:00
nicolargo 1cf7683c1d Update Glances API documentation 2025-11-21 18:03:36 +01:00
nicolargo 1b3ee3e035 Update zero 2025-11-21 17:57:05 +01:00
nicolargo 3de1a25305 Revert some change on hide zero feature (need additional tests 2025-11-16 11:32:21 +01:00
nicolargo 1567c2db49 Update docs for PR #3346 2025-11-16 10:54:39 +01:00
nicolargo 1171d0b4d3 Merge branch 'ciherrera20-issue3345' into develop 2025-11-16 10:52:11 +01:00
nicolargo df684c64c2 Remove unuse parameter in split_esc 2025-11-16 10:51:49 +01:00
Chris Herrera c70321c3fb Formatting changes from running make format 2025-11-16 10:43:46 +01:00
Chris Herrera 93120b9779 Use split_esc in read_alias
Allows for ':' to be used in sensor names or alias names
2025-11-16 10:43:46 +01:00
Chris Herrera 89c8fc125c Add unit test for split_esc 2025-11-16 10:43:46 +01:00
Chris Herrera 11aac6ca4d Add split_esc function globals
Extends the functionality of str.split by adding an escape character. This allows ignoring separators preceded by the escape character.
2025-11-16 10:43:46 +01:00
nicolargo e7bd8d4768 Correct issue with hide on diskio 2025-11-16 10:41:35 +01:00
nicolargo e660520eb2 Correct typo in Makefile 2025-11-16 10:03:19 +01:00
nicolargo 0ae24bade0 Correct an issue with Wifi Alert following implementation of action for all plugins 2025-11-16 10:01:48 +01:00
nicolargo 728b36a8c9 Correct an issue with FS Alert following implementation of action for all plugins 2025-11-16 09:55:32 +01:00
nicolargo e2a1606479 Remove test from config file 2025-11-16 09:41:54 +01:00
Nicolas Hennion 8c9822ed26
Integrate ruff pre-commit hooks
Added ruff pre-commit hooks for linting and formatting.
2025-11-13 14:20:57 +01:00
Nicolas Hennion c4f6c04eb4
Refactor export options in README
Consolidate export options into categories for clarity.
2025-11-12 15:14:30 +01:00
nicolargo 7c13d53cb8 Make WebUI and Restful API SSL compliant #3340 2025-11-11 18:35:15 +01:00
nicolargo ccb00ec252 Make WebUI and Restful API SSL compliant #3340 2025-11-11 18:34:51 +01:00
nicolargo ab3b386e10 Improve Docker build pipeline#3336 2025-11-11 17:45:31 +01:00
nicolargo 5cbd9e030a Improve Docker build pipeline #3336 2025-11-11 17:45:16 +01:00
nicolargo c89effd602 Add a "focus" option for the processlist plugin #3293 2025-11-11 10:40:23 +01:00
nicolargo ab68fcbe28 Add a focus option for the processlist plugin #3293 2025-11-11 10:40:06 +01:00
nicolargo df4b312bec Update requirements files 2025-11-10 11:58:41 +01:00
nicolargo 25da171479 Add some fetch templates as an example 2025-11-10 11:45:33 +01:00
nicolargo 34c3c11725 Make unit test with Python 3.13 on Windows 2025-11-10 11:16:07 +01:00
nicolargo de0b1ef2da Make unit test with Python 3.14 on Windows and MacOS 2025-11-10 11:08:37 +01:00
nicolargo c0dad78189 Unittest now take into account the default glances.conf file 2025-11-10 10:53:52 +01:00
nicolargo d9abfca7fb Remove test because it breaks the CI test 2025-11-10 10:27:13 +01:00
nicolargo cb377055f2 Remove test because it breaks the CI test 2025-11-10 10:26:22 +01:00
nicolargo b2e3ea283d Remove test because it breaks the CI test 2025-11-10 07:48:03 +01:00
nicolargo a74b1867d7 Merge branch 'issue3324-log_and_alert_for_all' into develop 2025-11-09 17:28:42 +01:00
nicolargo afff3e2ba6 Add a simple unit test for get_alert 2025-11-09 17:27:00 +01:00
nicolargo fb17066692 Update docs 2025-11-09 13:05:07 +01:00
nicolargo e5e476d255 Ok for containers and folders 2025-11-09 13:02:59 +01:00
nicolargo ea10748e07 Fs is OK 2025-11-09 12:58:12 +01:00
nicolargo 7c19d01c21 DiskIO is OK 2025-11-09 12:54:29 +01:00
nicolargo 8bb2a8a91b Network IO is OK 2025-11-09 12:49:44 +01:00
nicolargo b75d1f24c3 Correct an issue with events type name (unattended _ in the name) 2025-11-08 19:34:31 +01:00
nicolargo 5efa3a01a3 Update docs 2025-11-08 19:22:49 +01:00
nicolargo e11cb80492 First issue corrected. It is now possible to generate alarm for plugins returning a list (tested only with sensors). To be done for all plugins (add header adn actions_keys) 2025-11-08 18:40:20 +01:00
nicolargo e2d37ee482 Change the way uv is installed #3338 2025-11-08 16:18:22 +01:00
nicolargo 930745b5f3 Package generation issue on Pypi because of README.rst #3337 2025-11-08 09:38:01 +01:00
nicolargo ba1b898a3e Add info in F.A.Q about free memory 2025-11-08 09:25:26 +01:00
nicolargo 9de127cce9 Update documentation for API 2025-11-08 09:16:16 +01:00
nicolargo 55ff04437f Update documentation for API 2025-11-08 08:58:19 +01:00
nicolargo ba6be768d0 Update documentation 2025-11-08 08:56:43 +01:00
nicolargo 4e669d0bc7 Merge branch 'develop' of github.com:nicolargo/glances into develop 2025-11-08 08:31:40 +01:00
Nicolas Hennion 3e7a49eb3b
Fix badge formatting in README.rst 2025-11-05 10:05:47 +01:00
nicolargo f1bd18a3a5 Update requirements file and add some tests 2025-11-04 21:41:15 +01:00
Nicolas Hennion ef5ef9eb8a
Replace logo and update README formatting
Updated logo image and modified title formatting.
2025-11-04 12:45:50 +01:00
Nicolas Hennion 89a10d9633
Enhance README with HTML and logo alignment
Added HTML formatting for logo and summary section.
2025-11-04 12:43:23 +01:00
Nicolas Hennion 6692e00a0e
Update README to include sponsors badge 2025-11-04 10:49:55 +01:00
Nicolas Hennion a1edfc735a
Fix twitter badge syntax in README.rst 2025-11-04 10:49:12 +01:00
Nicolas Hennion 5101512320
Update Twitter badge in README 2025-11-04 10:46:59 +01:00
Nicolas Hennion 244f13634f
Fix Reddit badge formatting in README
Updated badge formatting for Reddit in README.
2025-11-04 10:45:49 +01:00
Nicolas Hennion 7e3116a4e1
Update README with new social media badges
Added Reddit badge to README and updated Twitter badge.
2025-11-04 10:41:46 +01:00
nicolargo 579049cec5 Generate Snap for Glances 4.4.2_dev1 2025-11-03 15:32:11 +01:00
nicolargo 3646e011cf Generate Snap for Glances 4.4.1 2025-11-03 15:02:24 +01:00
nicolargo ff5e33d856 version 4.4.1 2025-11-03 14:47:16 +01:00
nicolargo de6fae584e Merge branch 'support/v4.4.x' 2025-11-03 14:44:57 +01:00
nicolargo 1c6a9e1412 Restful API issue after a while (stats are no more updated) #3333 2025-11-03 14:44:11 +01:00
nicolargo a7ba827cc5 On the road of Glances 4.4.1 2025-11-02 17:22:06 +01:00
nicolargo c523d20648 Merge branch 'master' into develop 2025-11-02 17:19:04 +01:00
nicolargo ef36eb9ab6 version 4.4.0 2025-11-02 17:07:24 +01:00
nicolargo f38ff27faa Merge branch 'develop' 2025-11-02 17:02:14 +01:00
nicolargo f87783689b Docs and requirements for Glances 4.4.0 2025-11-02 17:01:32 +01:00
nicolargo 28098f1555 Snap rplace architectures per platforms 2025-11-01 17:04:00 +01:00
nicolargo 0cec111764 Snap rplace architectures per platforms 2025-11-01 16:56:23 +01:00
nicolargo 54068209b3 Add limitation to TimescaleDB export for diskio, not working for the moment 2025-11-01 16:43:56 +01:00
nicolargo bdd66c56d3 Correct an issue when containers ports as no destination 2025-11-01 15:54:30 +01:00
nicolargo 10111cc7f6 Add check in pre-commit 2025-11-01 15:32:54 +01:00
nicolargo 02752f90ea Remove duplicate line at the end of file and update doc for Glances 4.4.0RC1 2025-11-01 15:29:34 +01:00
nicolargo d9d4507bd4 Merge branch 'issue2054' into develop 2025-11-01 10:27:50 +01:00
nicolargo 133f97efd8 Show used port in container section #2054 2025-11-01 10:27:34 +01:00
nicolargo c9fc7d4bb4 Resolve conflict 2025-11-01 09:50:47 +01:00
nicolargo 7f34578cea Show used port in container section - First try, ok for one port... #2054 2025-11-01 09:49:49 +01:00
nicolargo 7b827954e0 Update dep 2025-11-01 09:31:52 +01:00
nicolargo 3a3ae4eddb Solve issue with multiprocessing exception with Snap package 2025-10-31 19:15:06 +01:00
nicolargo aef78c3a10 Use develop branch for snap 2025-10-31 17:58:45 +01:00
nicolargo db13c8380b Update docs and add some system test for CPU consumption 2025-10-31 17:43:44 +01:00
nicolargo 7f2f69985c Update .gitignore 2025-10-24 19:24:03 +02:00
nicolargo 6361217258 Correct issue with 2 digit instead of one in Glances UI MEM 2025-10-24 19:22:57 +02:00
nicolargo 7edbab35d8 Highlight zero for proces CPU and RAM 2025-10-24 18:54:24 +02:00
nicolargo 067eb918ad Sensors plugin refresh by default every 10 seconds 2025-10-24 18:35:30 +02:00
nicolargo c8ed977c9d Add a test script for identify CPU consumption of sensor plugin 2025-10-23 11:47:54 +02:00
nicolargo 1ac760c55b Refactor port to take into account netifaces2 2025-10-23 11:43:22 +02:00
nicolargo c2e038d244 Optimize LRU caching for API requests with plugins list (ex: Homepage plugin) 2025-10-23 11:30:03 +02:00
nicolargo 02fe3aa12e Merge branch 'issue1553' into develop 2025-10-23 10:33:12 +02:00
nicolargo f3a76caa64 Show long command line with arrow key #1553 2025-10-23 10:33:01 +02:00
Nicolas Hennion 729532713f Quick and dirty patch for discussion - Last dev build broke Homepage API calls ? only 1 widget still working #3322 2025-10-20 13:21:18 +00:00
nicolargo 2b1d6f4309 Update memory profiling file 2025-10-19 17:47:16 +02:00
nicolargo 6dd33e3317 Correct issue with Chrome driver in WebUI unit test 2025-10-19 17:28:00 +02:00
nicolargo 1114a9ab87 Merge branch 'issue3033' into develop 2025-10-19 17:19:53 +02:00
nicolargo 4361df8f84 Do not call update if a call is done to a specific plugin through the API #3033 2025-10-19 17:19:34 +02:00
nicolargo 1bc8df0a13 Patch api to make fetch compliant with Windows 2025-10-18 16:12:02 +02:00
nicolargo 1b93758b65 [UI] Process virtual memory display can be disable by configuration #3299 2025-10-18 16:03:23 +02:00
nicolargo 8fa0677538 Update .pre-commit-config.yaml file #3300 2025-10-18 14:25:33 +02:00
nicolargo 074a01efc2 Update .pre-commit-config.yaml file #3300 2025-10-18 14:17:37 +02:00
nicolargo 227dedb41b Try to use Python 3.14 in the CI 2025-10-18 14:00:18 +02:00
nicolargo bcd48844b5 Support for Python 14 #3319 2025-10-18 13:51:15 +02:00
nicolargo f01008f430 Support for Python 14 #3319 2025-10-18 12:03:18 +02:00
nicolargo a41a67edf7 Cloud plugin always generate communication with 169.254.169.254, even if the plugin is disabled #3316 2025-10-18 10:52:18 +02:00
nicolargo 6fc887839e Cloud plugin always generate communication with 169.254.169.254, even if the plugin is disabled #3316 2025-10-18 09:38:17 +02:00
nicolargo 8c70a55488 API response delay (3+ minutes) when VMs are running due to 'virsh domstats' – Suggest adding '--nowait' option #3317 2025-10-18 09:30:55 +02:00
nicolargo 8a748d15e3 Upgrade export test with InfluxDB 1.12 2025-10-18 09:25:39 +02:00
nicolargo bcfb3675a6 Update dep 2025-10-18 09:06:24 +02:00
nicolargo e3b016e6f3 Update dep and change Fetch screenshot for documentation 2025-10-18 08:59:21 +02:00
Nicolas Hennion a64474f43f
Merge pull request #3314 from syohex/typo-option-document
Fix typo of --export-process-filter help message
2025-10-14 07:48:07 +02:00
Shohei YOSHIDA c2b59d0a74
Fix typo of --export-process-filter help message 2025-10-14 12:08:21 +09:00
Nicolas Hennion d6a820d2bb Remove unused lib 2025-10-13 11:54:33 +00:00
Nicolas Hennion ee50f4e8e2 In the outdated feature, catch error message is Pypi server not reachable 2025-10-13 11:49:19 +00:00
Nicolas Hennion eead34b0d0 Glances do not display CPU stat correctly #3155 2025-10-13 11:43:32 +00:00
Nicolas Hennion 29e3947577 Revert "[WINDOWS] Glances do not display CPU stat correctly #3155"
This reverts commit bb0116a198.
2025-10-13 11:38:17 +00:00
Nicolas Hennion bb0116a198 [WINDOWS] Glances do not display CPU stat correctly #3155 2025-10-13 11:11:53 +00:00
Nicolas Hennion 349c33fd27 Refactor Fetch template 2025-10-13 09:28:21 +00:00
Nicolas Hennion 52c5042e37 Add --no-emit-workspace in the Makefile 2025-10-13 09:25:31 +00:00
Nicolas Hennion 853b71998c Add --no-emit-workspace to the requirements exports tasks 2025-10-13 09:22:32 +00:00
nicolargo 03d4d6cf65 Add TOML conf file to Docker in order to build 2025-10-12 18:33:24 +02:00
nicolargo d02aed76a6 Remove hashes from requirements file because it causes some issue in Gitlab pipeline (with pip) 2025-10-12 17:24:04 +02:00
nicolargo 97ec09dfc3 Correct an issue when Netifaces is not installed on the system 2025-10-12 17:05:19 +02:00
nicolargo 0c2b9e5e8e Requirements files are now generated dynamically with the make requirements or requirements-upgrade target 2025-10-12 17:00:46 +02:00
nicolargo 0134487f5e Merge branch 'issue3025-uv' into develop 2025-10-12 15:20:34 +02:00
nicolargo f1328a84e9 Use uv instead of venv in Makefile #3304 2025-10-12 15:19:32 +02:00
Nicolas Hennion 547d98599a
Update README.rst 2025-10-10 11:59:59 +02:00
Nicolas Hennion 031d5d6485
Update README.rst 2025-10-08 18:09:40 +02:00
Nicolas Hennion 62c6c9df4e
Update README.rst
Add Brew as a standard installation method.
2025-10-07 09:47:39 +02:00
Nicolas Hennion 6302389073
Update find-duplicate-lines.sh
Make the code return an error code if a file ended with a duplicated line is founded.
2025-10-06 14:14:35 +02:00
Nicolas Hennion 83d5886a35
Update __init__.py
Remove dupliate line
2025-10-06 14:06:19 +02:00
nicolargo 350ed125d3 Store nothing is history is not enable. 2025-10-05 17:08:27 +02:00
nicolargo 7382089129 Disable history when history size is set to 0 by configuration. 2025-10-05 17:04:27 +02:00
nicolargo 2254f899b6 Add unit test for Prometheus exporter aand refactor the code to not use the API (not useful in this case because stats instance already exist) 2025-10-04 09:42:00 +02:00
nicolargo d03295a977 Merge branch 'develop' of github.com:nicolargo/glances into develop 2025-09-28 17:03:55 +02:00
nicolargo 9f1eb9496a Add unit test for auto_unit 2025-09-28 17:03:44 +02:00
Nicolas Hennion d28f3056a7
Merge pull request #3287 from nicolargo/renovate/macos-15.x
chore(deps): update dependency macos to v15
2025-09-28 16:40:10 +02:00
Nicolas Hennion e2c65c6687
Merge pull request #3278 from nicolargo/renovate/actions-stale-10.x
chore(deps): update actions/stale action to v10
2025-09-28 16:39:30 +02:00
Nicolas Hennion e721b66488
Merge pull request #3277 from nicolargo/renovate/actions-setup-python-6.x
chore(deps): update actions/setup-python action to v6
2025-09-28 16:39:25 +02:00
Nicolas Hennion 26a0c3ef87
Merge pull request #3276 from nicolargo/renovate/actions-setup-node-5.x
chore(deps): update actions/setup-node action to v5
2025-09-28 16:39:19 +02:00
nicolargo 0bf79775b6 Remove duplicate line at the end of files 2025-09-28 16:28:05 +02:00
nicolargo c970932e96 Set default timeout to 2 second 2025-09-28 16:10:07 +02:00
nicolargo 38c7bfccba Make the issue3290 compliant with non Linux OS 2025-09-28 15:09:19 +02:00
nicolargo 48674ee71f Clean unused decorator 2025-09-28 15:00:37 +02:00
Nicolas Hennion 6539979498
Merge pull request #3291 from nicolargo/issue3290-cleanup
Fix: Glances stalling on broken NFS connections
2025-09-28 14:17:24 +02:00
Nicolas Hennion 3652dc339f chg: plugin(fs) - use timeout wrappers for psutil calls
Why? Broken NFS connections can stall psutil calls indefinitely

Co-authored-by: Raz Crimson <52282402+razcrimson@users.noreply.github.com>
2025-09-28 05:55:56 +05:30
Nicolas Hennion da700c8cfc add: generic timeout wrappers
For use with blocking functions and utilities

Co-authored-by: Raz Crimson <52282402+razcrimson@users.noreply.github.com>
2025-09-28 05:55:34 +05:30
nicolargo 420cf2bdde Lint code 2025-09-27 16:02:48 +02:00
Nicolas Hennion ce27d795db
Merge pull request #3283 from DeepSpace2/fix-prometheus-export-format
Fix prometheus export format
2025-09-27 15:58:41 +02:00
Adi f53dbe748e getting object key dynamically instead of maintaining an hardcoded mapping 2025-09-27 12:34:40 +03:00
nicolargo 3931457495 Merge branch 'issue3288-mem-available' into develop 2025-09-25 22:20:38 +02:00
nicolargo d0137830c2 Choose between used or available in the mem plugin #3288 2025-09-25 22:20:23 +02:00
Nicolas Hennion 48296a5de9
Merge pull request #3289 from bkanuka/issue3979-zfs-cache
Issue #3279 zfs cache and memory math issues
2025-09-25 20:48:49 +02:00
Bennett Kanuka 6339393271 ruff format 2025-09-25 14:03:27 -04:00
Bennett Kanuka 2b59ad71fe fix zfs cache math 2025-09-25 13:49:08 -04:00
nicolargo ff6dcd5cb0 Update documentation 2025-09-25 13:49:06 -04:00
nicolargo b26dac4dd5 ZFS ARC/cache not reported as cache memory usage #3279 2025-09-25 13:48:43 -04:00
renovate[bot] b6db99cbb8
Update dependency macos to v15 2025-09-25 16:35:06 +00:00
renovate[bot] 86e198310d
Update actions/stale action to v10 2025-09-25 16:35:04 +00:00
renovate[bot] 55c3b9c0ab
Update actions/setup-python action to v6 2025-09-25 16:35:01 +00:00
renovate[bot] 9eaef1da36
Update actions/setup-node action to v5 2025-09-25 16:34:58 +00:00
Nicolas Hennion de9d46297c Merge pull request #3286 from jmwallach/patch-1
Label error in docs
2025-09-25 13:59:02 +02:00
jmwallach 36c9658912
Update network.rst
Fix labeling error
2025-09-24 16:40:09 -07:00
Adi afdd09d648 fix bug in construction of metric name 2025-09-23 22:27:33 +03:00
Adi c8e67d07c1 add missing metrics to labels mappings 2025-09-23 18:00:29 +03:00
Adi 63f0aacb7c add missing metrics to labels mappings 2025-09-23 13:19:11 +03:00
Adi 2c1abd666e spliting labels on the first ':' only as a label value might contain ':' 2025-09-23 12:51:54 +03:00
Adi 9834e204c4 fix nonetype is not iterable error 2025-09-23 12:50:37 +03:00
Adi 39c1b9e13c using object as label 2025-09-23 12:47:01 +03:00
nicolargo 6631b37d67 Revert "First version done. Need to be tested and documented."
This reverts commit 17eca1f6e6.
2025-09-21 16:44:28 +02:00
nicolargo 95620bf584 Merge branch 'issue3205-duckdb' into develop 2025-09-21 15:13:03 +02:00
nicolargo fcdd792722 Update docs for DuckDB export 2025-09-21 15:09:28 +02:00
nicolargo 3de48a4f56 First version done. Need to be tested and documented. 2025-09-21 15:08:25 +02:00
nicolargo 17eca1f6e6 First version done. Need to be tested and documented. 2025-09-21 15:08:25 +02:00
nicolargo 3db5f13d8c Correct duplicate line in plugin model 2025-09-21 15:00:59 +02:00
nicolargo 11bab0fb5e Udate readme file 2025-09-21 14:41:34 +02:00
nicolargo ef45c6def2 Merge branch 'issue3281-fetch' into develop 2025-09-21 14:37:35 +02:00
nicolargo 32e17004b6 Update readme file 2025-09-21 14:33:00 +02:00
nicolargo be29f069d6 First release ok, need to add some tests 2025-09-21 10:03:33 +02:00
nicolargo d5d38af356 First version of the (neo)fetch feature for OS 2025-09-20 19:38:33 +02:00
nicolargo 0abc39f7df First rush to make the top menu configurable 2025-09-16 19:05:38 +02:00
nicolargo 8f240afec1 Put WebUI conf generator in a dedicated script 2025-09-14 15:30:55 +02:00
nicolargo 8c8120fb90 Put WebUI conf generator in a dedicated script 2025-09-14 15:30:45 +02:00
nicolargo 54216c6580 Rafactor the Makefile to generate WebUI config file for all webui targets 2025-09-14 14:59:51 +02:00
nicolargo 605f3a9da3 Correct typo in comment 2025-09-14 14:55:49 +02:00
nicolargo 3ad154b4f8 Merge branch 'issue3100' into develop 2025-09-14 14:44:03 +02:00
nicolargo af082ee2e0 Glances not showing Processes on MacOS #3100 2025-09-14 14:43:42 +02:00
Nicolas Hennion ba68e3d8f4
Merge pull request #3275 from timrettop/sensors-docs-alias
Update sensors.rst
2025-08-30 08:49:12 +02:00
Nicolas Hennion 48641b5d1a
Merge pull request #3273 from lawrence-c/patch-1
Update docker compose env quote
2025-08-30 08:48:02 +02:00
Tim Potter fa82d8ed1c
Merge branch 'nicolargo:develop' into sensors-docs-alias 2025-08-28 13:46:57 -05:00
Tim Potter 81a16075bd
Update sensors.rst
Add alias example
2025-08-28 13:43:11 -05:00
Lawrence 05080765cc
Update docker env quote 2025-08-27 21:06:10 +01:00
nicolargo 580af978f4 [MACOS] Glances crashes when I try to filter #3266 2025-08-24 11:40:05 +02:00
nicolargo d99d3684c4 [MACOS] Glances crashes when I try to filter #3266 2025-08-23 18:24:33 +02:00
nicolargo 26a41d0c21 Display hash for Pypi release 2025-08-23 14:55:54 +02:00
nicolargo 435b250a84 Glances 4.4.0-dev2 2025-08-23 14:34:22 +02:00
nicolargo a31b60b1ab Glances crashes when I try to filter #3266 2025-08-23 10:06:23 +02:00
nicolargo cb8003c1df Update API doc generation 2025-08-23 09:52:02 +02:00
nicolargo 973dd8978e Update API docs 2025-08-17 18:34:31 +02:00
nicolargo 06c6f8408e Update README with nice icons #3236 2025-08-17 17:04:13 +02:00
nicolargo 948bc90b58 Merge branch 'develop' of github.com:nicolargo/glances into develop 2025-08-17 16:55:30 +02:00
nicolargo a7683caa71 Update README with nice icons #3236 2025-08-17 16:55:19 +02:00
Nicolas Hennion 3f5c1f478a
Merge pull request #3261 from nicolargo/renovate/major-github-artifact-actions
Update actions/download-artifact action to v5
2025-08-17 16:43:52 +02:00
Nicolas Hennion f65ae16ea2
Merge pull request #3263 from nicolargo/renovate/actions-checkout-5.x
Update actions/checkout action to v5
2025-08-17 16:43:27 +02:00
nicolargo e88f33ca05 Clear-text logging of sensitive information 2025-08-16 10:20:59 +02:00
nicolargo 2a3046796b Glances hang when killing process with muliple CTRL-C #3264 2025-08-15 18:53:03 +02:00
nicolargo 89e9ad1284 Merge branch 'issue1070' into develop 2025-08-13 21:36:09 +02:00
renovate[bot] dbba6e0673
Update actions/checkout action to v5 2025-08-11 18:55:38 +00:00
nicolargo 1daac0e6d0 Add Disk I/O Latency stats #1070 2025-08-10 19:08:02 +02:00
renovate[bot] f173c8d6b4
Update actions/download-artifact action to v5 2025-08-10 13:45:47 +00:00
nicolargo 5f3e1de01e Merge branch 'issue3248' into develop 2025-08-10 15:37:58 +02:00
nicolargo 9a58715a2f Issues after disabling system and processcount plugins #3248 2025-08-10 15:37:46 +02:00
nicolargo afaab7190b Merge branch 'issue3250' into develop 2025-08-10 15:00:42 +02:00
nicolargo c63f2404aa Headers missing from predefined fields in TUI browser machine list - Part 1 #3250 2025-08-03 16:53:51 +02:00
nicolargo ae31d29c75 Remove test in glances.conf 2025-08-01 17:54:51 +02:00
nicolargo 04fee963cc Merge branch 'issue3528' into develop 2025-08-01 17:20:08 +02:00
nicolargo f1ae3bb535 Filter fields to export #3258 2025-08-01 17:19:43 +02:00
nicolargo f5ec34cdf9 Add docuùentation for WebUI test 2025-07-28 17:52:26 +02:00
nicolargo 11890f31b1 Update docs 2025-07-27 16:18:30 +02:00
nicolargo c1c0d4038f Add another check for the famous Netifaces issue - Related to #3219 2025-07-27 15:57:05 +02:00
nicolargo 2cf92f93a9 Add another check for the famous Netifaces issue - Related to #3219 2025-07-27 15:41:15 +02:00
nicolargo 89118e53de Key error 'type' in server_list_static.py (load_server_list) #3247 2025-07-26 17:08:03 +02:00
Nicolas Hennion 1e8ea943ba
Merge pull request #3249 from korn3r/patch-1
Update docker-compose.yml
2025-07-26 16:41:24 +02:00
Nicolas Hennion 6ffcaf4a94
Merge pull request #3253 from Boris-Okassa/Dictkeys
remove `.keys()` from loops over dicts
2025-07-26 16:40:41 +02:00
Nicolas Hennion cba28407cb
Merge pull request #3252 from ariel-anieli/fix-python2-iterators
Remove iterator helpers
2025-07-26 16:39:08 +02:00
Boris Okassa 463d0af666 remove .keys() from loops over dicts
By default dict loops use keys.

Signed-off-by: Boris Okassa <borisokassa@yahoo.fr>
2025-07-23 23:16:20 +02:00
Ariel Otilibili 3eb09d7fc5
Remove iterator helpers
Related to #3181.

Co-authored-by: Jatin Singh <fithacker97@gmail.com>
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-22 23:46:39 +02:00
korn3r 202289599d
Update docker-compose.yml
added commented out by default mount point for /etc/os-release. without it Glances container shows distibution information from container itself and not host system.
2025-07-21 02:05:09 +03:00
nicolargo 3a1e188d58 Merge branch 'issue3237_GlancesAPI' into develop 2025-07-12 18:17:21 +02:00
nicolargo 3d263bc7d4 Create a Glances API in order to use Glances as a Python lib #3237 2025-07-12 18:16:43 +02:00
nicolargo 365a670c12 Processlist ok 2025-07-09 17:40:08 +02:00
nicolargo 660b94e99d First version of the API 2025-07-09 17:40:08 +02:00
nicolargo 65393b0771 First version of the API 2025-07-09 17:40:08 +02:00
nicolargo 45c3c489a0 On the road of Glances 4.4.0 (after 4.3.3) 2025-07-09 17:37:24 +02:00
nicolargo 73a01d4c52 version 4.3.3 2025-07-09 17:35:33 +02:00
nicolargo 218831ecb9 Align glances.conf file 2025-07-09 17:28:19 +02:00
nicolargo e3bbd0dc2a Something in 4.3.2 broke the home assistant add-on for Glances #3238 2025-07-09 17:26:54 +02:00
nicolargo b340b5fc30 Something in 4.3.2 broke the home assistant add-on for Glances #3238 2025-07-07 07:41:25 +02:00
nicolargo fca11995cb Revert "Something in 4.3.2 broke the home assistant add-on for Glances - Try 1 #3238"
This reverts commit 76b070f3de.
2025-07-06 22:47:52 +02:00
nicolargo 76b070f3de Something in 4.3.2 broke the home assistant add-on for Glances - Try 1 #3238 2025-07-06 22:06:56 +02:00
nicolargo 5b2b7325fc Update README 2025-07-05 18:17:18 +02:00
nicolargo 94ae566eb7 On the orad of Glances 4.4.0 2025-07-05 17:58:24 +02:00
nicolargo a9c3770851 On the orad of Glances 4.4.0 2025-07-05 17:57:05 +02:00
nicolargo 4c31611f2f version 4.3.2 - Update Snap 2025-07-05 10:44:29 +02:00
nicolargo e46a38f141 version 4.3.2 2025-07-05 10:43:46 +02:00
nicolargo c6a48bf424 Update docs and correct an issue with UTC import 2025-07-05 10:32:11 +02:00
nicolargo bf2c6d1bda Add unit test for time zone in history 2025-07-05 10:32:11 +02:00
nicolargo 455888e0fa API history endpoints shows times without timezone #3218 2025-07-05 10:32:11 +02:00
nicolargo 0db81b71c6 Correct a crash in client/server mode 2025-07-05 10:32:11 +02:00
nicolargo c1d67556c7 Make --stdout (csv and json) compliant with client/server mode #3235 2025-07-05 10:32:11 +02:00
nicolargo e46eb765ff Update documentation lint 2025-07-05 10:32:11 +02:00
nicolargo 82a829d0c4 Update documentation 2025-07-05 10:32:11 +02:00
nicolargo 155452e223 Glances 4.3.2_rc01 2025-07-05 10:32:11 +02:00
nicolargo 15a94f04da Improve Restful API documentation embeded in FastAPI #2632 2025-07-05 10:32:11 +02:00
nicolargo 813785ff82 Change the way Docker start Glances 2025-07-05 10:32:11 +02:00
nicolargo 28e82eb237 Lint Dockerfile 2025-07-05 10:32:11 +02:00
nicolargo 1268b58bbc Glances breaks if Podman container is started while it is running #3199 2025-07-05 10:32:11 +02:00
nicolargo 1434d3ad5c Avoid none in rate computation 2025-07-05 10:32:11 +02:00
nicolargo 28ae053e4b Glances Central Browser should use name instead of IP adress for redirection #3103 2025-07-05 10:32:11 +02:00
nicolargo cd71b45089 Add container inactive_file & limit to InfluxDB2 export #3206 2025-07-05 10:32:11 +02:00
nicolargo 1365d600a3 (postgre)SQL export support / TimeScaleDB #2814 2025-07-05 10:32:11 +02:00
nicolargo 7c13ae17fa Implement a basic memory cache with TTL for API call (set to ~1 second) #3202 2025-07-05 10:32:11 +02:00
nicolargo b888dc55e8 Correct key() by keys() 2025-07-05 10:32:11 +02:00
Boris Okassa ed2e1cdefb exports: outputs: Removed iterator helpers
Related to #3181
Signed-off-by: Boris Okassa <borisokassa@yahoo.fr>
2025-07-05 10:32:11 +02:00
renovate[bot] 505a90f8da fix(deps): update dependency pysnmp-lextudio to <6.3.1 2025-07-05 10:32:11 +02:00
snyk-bot cac2e0b884 fix: dev-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-H11-10293728
2025-07-05 10:32:11 +02:00
snyk-bot df93b5bf4c fix: optional-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321964
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321966
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321970
- https://snyk.io/vuln/SNYK-PYTHON-PYARROW-6052811
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-3180412
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-7448482
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-9964606
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-7267250
2025-07-05 10:32:11 +02:00
nicolargo e277908118 Commit issue following #3186 - glances.js not found 2025-07-05 10:32:11 +02:00
fr4nc0is ea12008e10 Update plugin containers display and order #3186 2025-07-05 10:32:11 +02:00
ia74 bcf3d42097 Change "Pinned thread" to "Pinned task" and "Upin" to "Unpin" 2025-07-05 10:32:11 +02:00
Ariel Otilibili 0ffb08dd2a glances: Refactor _build_amps_list
Used a list comprehension. Moreover None and empty list are considered
as false values in Python.

Part-of: #2801
Link: https://docs.python.org/3/library/stdtypes.html#truth-value-testing
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili 75b7998185 glances: amps: remove iterator helpers
No more needed in Python 3.

Moreover in update(), the keys are not used: the call to items() is
replaced with values().

Related to #3181
2025-07-05 10:32:11 +02:00
nicolargo f45900b450 Add test for JSON export 2025-07-05 10:32:11 +02:00
nicolargo 96660cae16 Add Star history to Readme file 2025-07-05 10:32:11 +02:00
nicolargo 83a5847ff1 Add Star history to Readme file 2025-07-05 10:32:11 +02:00
renovate[bot] 51166fe1df chore(deps): update alpine docker tag to v3.22 2025-07-05 10:32:11 +02:00
Ariel Otilibili 1375573a46 glances: remove iterator helpers
No more needed in Python 3. Following commit 72e1511d ("globals: Fix a
race condition in namedtuple_to_dict"), the dynamic view on the keys is
as well transformed into a list.

Related to #3181
2025-07-05 10:32:11 +02:00
Ariel Otilibili 239d5f7db6 glances: Refactor
Instead of a loop, used a generator for the search.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili 81150246e5 glances: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-07-05 10:32:11 +02:00
Ariel Otilibili 39ac435218 plugins: containers: Refactor update()
Commit 445d20dc ("plugins: containers: Refactor") changed update() so
that, stats are added if any of is_key_in_container_and_not_hidden()
or is_key_absent_in_container() is true.

This could be replaced by the negation of is_key_in_container_and_hidden()

Part-of: #2801
Suggested-by: Jasmin Blackshaw <105jassen@gmail.com>
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
Ariel Otilibili 016799cbfa outputs: glances_curses: Refactor
In catch_other_actions_maybe_return_to_browser(), replaced if-statements
by a dict. If no key is found, a null function is executed.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
nicolargo 719094edf7 Update Glances dev version 2025-07-05 10:32:11 +02:00
nicolargo c343351072 Update Glances dev version 2025-07-05 10:32:11 +02:00
nicolargo d79c74df25 Update Glances dev version 2025-07-05 10:32:11 +02:00
Ariel Otilibili 3488760ae5 globals: Fix a race condition in namedtuple_to_dict
namedtuple_to_dict() loops over a dynamic view of the dict of processes;
other threads might be editing the same dict.

For instance in webserver mode, when a race condition happens, the
following error shows up in the console:

>   File "C:\Users\ryabtsev\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\glances\processes.py", line 628, in update_list
>     return list_of_namedtuple_to_list_of_dict(processlist)
>   File "C:\Users\ryabtsev\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\glances\globals.py", line 495, in list_of_namedtuple_to_list_of_dict
>     return [namedtuple_to_dict(d) for d in data]
>             ^^^^^^^^^^^^^^^^^^^^^
>   File "/app/glances/globals.py", line 490, in namedtuple_to_dict
>     return {k: (v._asdict() if hasattr(v, '_asdict') else v) for k, v in data.items()}
>                                                                          ^^^^^^^^^^^^
> RuntimeError: dictionary changed size during iteration

Instead of a dict view, namedtuple_to_dict() will use a list of tuples.

Performances are unchanged: on average, for 100 runs, namedtuple_to_dict()
completes in 0.2ms

GH issue: #3097
Link: https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:11 +02:00
nicolargo 7c0dee3a63 Add support for InfluxDB 3 Core #3182 2025-07-05 10:32:11 +02:00
Ariel Otilibili a5b2a97e6c podman: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-07-05 10:32:11 +02:00
Ariel Otilibili b57b26e1b5 docker: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-07-05 10:32:11 +02:00
nicolargo 31834a366f Related to iteritems, itervalues, and iterkeys are not more needed in Python 3 #3181 2025-07-05 10:32:11 +02:00
nicolargo aea1b67862 Related to iteritems, itervalues, and iterkeys are not more needed in Python 3 #3181 2025-07-05 10:32:11 +02:00
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
kenrmayfield 49aa4e21ab Update README.rst
Bold the word NOTE
2025-07-05 10:32:10 +02:00
kenrmayfield 11a1aa6250 Update README.rst
Update FreeBSD Instructions
1. Add Glances Binary Package Versions Picture
2. Update Install
3. Add Note to Check Glances Binary Package Version with System 
    Architecture that corresponds to Python Version.
4.  Add Link to Glances Binary Package Versions Picture called 
     CHECK
2025-07-05 10:32:10 +02:00
nicolargo a1eb6cbacf [GPU] AMD Plugin: Operation not permitted #3125 2025-07-05 10:32:10 +02:00
nicolargo 343c933e15 FR: Sort Sensors my name in proper number order #3132 2025-07-05 10:32:10 +02:00
nicolargo e8b6fd7641 [Discussion] FreeBSD - AMD64 Install: Package py39-glances not showing a Version Available for AMD64 but for Package py311-glances #3139 2025-07-05 10:32:10 +02:00
Ariel Otilibili 5d4596ed41 glances: refactor start()
Part of #2801: start() is split into start_main_loop(),
check_memleak(), setup_server_mode(), & maybe_trace_memleak().

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-07-05 10:32:10 +02:00
nicolargo 0d542550a4 Update docs and correct an issue with UTC import 2025-07-05 10:19:59 +02:00
nicolargo ba67e55a0f Add unit test for time zone in history 2025-07-05 09:57:54 +02:00
nicolargo 4cf6cf8ac2 API history endpoints shows times without timezone #3218 2025-07-05 09:38:02 +02:00
nicolargo 3eb67a32bb Correct a crash in client/server mode 2025-07-05 09:18:59 +02:00
nicolargo fe48f7df94 Make --stdout (csv and json) compliant with client/server mode #3235 2025-07-05 08:17:58 +02:00
nicolargo ca65324976 Update documentation lint 2025-06-30 08:06:25 +02:00
nicolargo d563c68b4c Update documentation 2025-06-30 08:04:14 +02:00
nicolargo d978d545ed Glances 4.3.2_rc01 2025-06-29 17:33:31 +02:00
nicolargo 4f743287b6 Merge branch 'issue2632' into develop 2025-06-29 14:33:25 +02:00
nicolargo 12eecf47f6 Improve Restful API documentation embeded in FastAPI #2632 2025-06-29 14:32:58 +02:00
nicolargo 7b8724244a Change the way Docker start Glances 2025-06-29 13:40:52 +02:00
nicolargo fcbad49771 Lint Dockerfile 2025-06-29 13:22:35 +02:00
nicolargo 4b15e6693c Glances breaks if Podman container is started while it is running #3199 2025-06-29 11:00:28 +02:00
nicolargo 6db3672c50 Avoid none in rate computation 2025-06-28 20:14:12 +02:00
nicolargo b56b231ad8 Glances Central Browser should use name instead of IP adress for redirection #3103 2025-06-28 16:10:34 +02:00
nicolargo eec89ccd90 Merge branch 'issue3206' into develop 2025-06-22 22:17:22 +02:00
nicolargo 95ff4506d1 Add container inactive_file & limit to InfluxDB2 export #3206 2025-06-22 22:17:02 +02:00
nicolargo 4e5eff834a Merge branch 'issue2814-TimeScaleDB' into develop 2025-06-22 18:26:43 +02:00
nicolargo 4f03be737b (postgre)SQL export support / TimeScaleDB #2814 2025-06-22 18:26:00 +02:00
nicolargo f799911058 Merge branch 'issue3202' into develop 2025-06-14 10:47:23 +02:00
nicolargo 0dbd4c58d4 Implement a basic memory cache with TTL for API call (set to ~1 second) #3202 2025-06-14 10:47:00 +02:00
nicolargo ecb3e6e0ea Correct key() by keys() 2025-06-10 19:24:42 +02:00
Boris Okassa 4ef03ddac2 exports: outputs: Removed iterator helpers
Related to #3181
Signed-off-by: Boris Okassa <borisokassa@yahoo.fr>
2025-06-10 00:13:05 +02:00
Nicolas Hennion ed400246fd
Merge pull request #3107 from nicolargo/renovate/pysnmp-lextudio-6.x
fix(deps): update dependency pysnmp-lextudio to <6.3.1
2025-06-09 13:10:57 +02:00
Nicolas Hennion efa636b7a7
Merge pull request #3195 from nicolargo/snyk-fix-b29587102aaf5d35b3590a9d7407596b
[Snyk] Security upgrade h11 from 0.14.0 to 0.16.0
2025-06-08 09:44:46 +02:00
Nicolas Hennion a3556a4004
Merge pull request #3184 from nicolargo/snyk-fix-7fbd5db6108cdc150d044d238786b513
[Snyk] Fix for 8 vulnerabilities
2025-06-08 09:44:23 +02:00
nicolargo 4dd312229f Commit issue following #3186 - glances.js not found 2025-06-08 09:40:46 +02:00
snyk-bot 36e0b46903
fix: dev-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-H11-10293728
2025-06-08 07:34:24 +00:00
Nicolas Hennion b31aa7234e
Merge pull request #3192 from fr4nc0is/FIX-3186
Update plugin containers display and order #3186
2025-06-08 09:31:38 +02:00
Nicolas Hennion f854ea31d8
Merge pull request #3191 from ia74/patch-1
Change "Pinned thread" to "Pinned task" and "Upin" to "Unpin"
2025-06-08 09:30:41 +02:00
Nicolas Hennion 1f8e63ec3d
Merge pull request #3190 from ariel-anieli/issue-3181
glances: amps: Removal of iterator helpers, refactor
2025-06-08 09:30:07 +02:00
fr4nc0is 0e288cdc97 Update plugin containers display and order #3186 2025-06-03 09:18:14 +02:00
ia74 6ed7bee526
Change "Pinned thread" to "Pinned task" and "Upin" to "Unpin" 2025-06-02 16:23:22 -05:00
Ariel Otilibili 5a661a295c
glances: Refactor _build_amps_list
Used a list comprehension. Moreover None and empty list are considered
as false values in Python.

Part-of: #2801
Link: https://docs.python.org/3/library/stdtypes.html#truth-value-testing
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-06-02 14:20:22 +02:00
Ariel Otilibili 9e29d8aa45
glances: amps: remove iterator helpers
No more needed in Python 3.

Moreover in update(), the keys are not used: the call to items() is
replaced with values().

Related to #3181
2025-06-02 14:20:13 +02:00
nicolargo a6de55bfca Add test for JSON export 2025-06-01 17:37:21 +02:00
nicolargo fe5edd6e60 Add Star history to Readme file 2025-05-31 15:31:18 +02:00
nicolargo 71c1c34ddd Add Star history to Readme file 2025-05-31 15:28:17 +02:00
Nicolas Hennion eff75ebeed
Merge pull request #3189 from nicolargo/renovate/alpine-3.x
chore(deps): update alpine docker tag to v3.22
2025-05-31 14:44:31 +02:00
Nicolas Hennion 07daacd35f
Merge pull request #3187 from ariel-anieli/issue-3181-processes-client-snmp
glances: removal of iterators helpers in `processes.py` & `stats_client_snmp.py`
2025-05-31 14:44:01 +02:00
Nicolas Hennion 7440f6df9b
Merge pull request #3188 from ariel-anieli/issue-2801-glances-curses
outputs: containers: Refactor
2025-05-31 14:43:45 +02:00
Ariel Otilibili d6802b77d7
plugins: containers: Refactor update()
Commit 445d20dc ("plugins: containers: Refactor") changed update() so
that, stats are added if any of is_key_in_container_and_not_hidden()
or is_key_absent_in_container() is true.

This could be replaced by the negation of is_key_in_container_and_hidden()

Part-of: #2801
Suggested-by: Jasmin Blackshaw <105jassen@gmail.com>
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-05-31 13:46:44 +02:00
renovate[bot] 3462a48081
chore(deps): update alpine docker tag to v3.22 2025-05-30 22:02:58 +00:00
Ariel Otilibili c5acae327b
outputs: glances_curses: Refactor
In catch_other_actions_maybe_return_to_browser(), replaced if-statements
by a dict. If no key is found, a null function is executed.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-05-30 14:12:11 +02:00
Ariel Otilibili 73663ef5c7
glances: remove iterator helpers
No more needed in Python 3. Following commit 72e1511d ("globals: Fix a
race condition in namedtuple_to_dict"), the dynamic view on the keys is
as well transformed into a list.

Related to #3181
2025-05-29 13:59:09 +02:00
Ariel Otilibili 003ba392c0
glances: Refactor
Instead of a loop, used a generator for the search.

Part-of: #2801
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-05-29 13:59:09 +02:00
Ariel Otilibili b28d793d72
glances: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-05-29 13:39:51 +02:00
nicolargo 1c6485fda6 Update Glances dev version 2025-05-28 10:01:16 +02:00
nicolargo 649562ca37 Update Glances dev version 2025-05-28 09:54:07 +02:00
nicolargo 17e43c1271 Update Glances dev version 2025-05-28 09:39:25 +02:00
Nicolas Hennion c1a772d7f1
Merge pull request #3185 from ariel-anieli/issue-3097-dict-changed-size-runtime-error
globals: Fix a race condition in `namedtuple_to_dict`
2025-05-27 17:32:55 +02:00
Ariel Otilibili 72e1511dc4
globals: Fix a race condition in namedtuple_to_dict
namedtuple_to_dict() loops over a dynamic view of the dict of processes;
other threads might be editing the same dict.

For instance in webserver mode, when a race condition happens, the
following error shows up in the console:

>   File "C:\Users\ryabtsev\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\glances\processes.py", line 628, in update_list
>     return list_of_namedtuple_to_list_of_dict(processlist)
>   File "C:\Users\ryabtsev\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\glances\globals.py", line 495, in list_of_namedtuple_to_list_of_dict
>     return [namedtuple_to_dict(d) for d in data]
>             ^^^^^^^^^^^^^^^^^^^^^
>   File "/app/glances/globals.py", line 490, in namedtuple_to_dict
>     return {k: (v._asdict() if hasattr(v, '_asdict') else v) for k, v in data.items()}
>                                                                          ^^^^^^^^^^^^
> RuntimeError: dictionary changed size during iteration

Instead of a dict view, namedtuple_to_dict() will use a list of tuples.

Performances are unchanged: on average, for 100 runs, namedtuple_to_dict()
completes in 0.2ms

GH issue: #3097
Link: https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-05-27 14:55:41 +02:00
snyk-bot 3278027281
fix: optional-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321964
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321966
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321970
- https://snyk.io/vuln/SNYK-PYTHON-PYARROW-6052811
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-3180412
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-7448482
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-9964606
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-7267250
2025-05-27 08:51:43 +00:00
nicolargo ad5e7f8479 Merge branch 'issue3182-InfluxDB3' into develop 2025-05-27 10:46:54 +02:00
nicolargo 3f124d3596 Add support for InfluxDB 3 Core #3182 2025-05-27 10:46:39 +02:00
Nicolas Hennion 24eb6cf21a
Merge pull request #3183 from ariel-anieli/issue-2801-refactor
podman: docker: Remove iterator helpers
2025-05-26 19:24:48 +02:00
Ariel Otilibili 52bd26f03e
podman: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-05-26 17:34:58 +02:00
Ariel Otilibili 75afbe16c9
docker: remove iterator helpers
No more needed in Python 3.

Related to #3181
2025-05-26 17:34:48 +02:00
nicolargo 6af2aa092b Related to iteritems, itervalues, and iterkeys are not more needed in Python 3 #3181 2025-05-26 15:12:42 +02:00
nicolargo 95d38a1392 Related to iteritems, itervalues, and iterkeys are not more needed in Python 3 #3181 2025-05-26 15:12:03 +02:00
nicolargo dde335696a Add a new field in the process list to identifie Zombie process #3178 2025-05-25 18:52:25 +02:00
Nicolas Hennion ef83c404ff
Merge pull request #3180 from ariel-anieli/issue-2801-refactor
plugins: containers; Refactor
2025-05-25 17:30:57 +02:00
Ariel Otilibili 445d20dcad
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-05-24 19:56:59 +02:00
Ariel Otilibili e732ba37be
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-05-23 18:17:33 +02:00
Nicolas Hennion e118d7d171
Merge pull request #3179 from ariel-anieli/issue-3098-display-containers
Fix the sorting of containers
2025-05-23 11:33:36 +02:00
Ariel Otilibili b414bafc94
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-05-22 17:40:42 +02:00
Ariel Otilibili 8e23bd661f
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-05-22 17:40:42 +02:00
nicolargo c8d70fb343 Merge branch 'issue3171' into develop 2025-05-02 15:02:33 +02:00
nicolargo 21f0fd0eb4 Refactor code to limit the complexity of update_views method in plugins #3171 2025-05-02 15:01:29 +02:00
nicolargo 5f31106ac1 Merge branch 'issue3169' into develop 2025-05-02 11:17:04 +02:00
nicolargo 6e466c7d14 Code refactoring - Rename plugin class to <Plugin name>Plugin instead of PluginModel #3169 2025-05-02 09:41:32 +02:00
renovate[bot] 1be8d528ed
fix(deps): update dependency pysnmp-lextudio to <6.3.1 2025-04-30 12:09:19 +00:00
Nicolas Hennion 1e7e0c056b
Merge pull request #3163 from ariel-anieli/refactor-plugin-connections-v2
plugins: connections: refactor, version 2
2025-04-27 19:56:10 +02:00
Ariel Otilibili ebd8f766b0
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-04-27 17:16:43 +02:00
Nicolas Hennion 270ff52363
Merge pull request #3162 from nicolargo/revert-3161-refactor-plugin-connections
Revert "plugins: connections: refactor"
2025-04-27 15:21:54 +02:00
Nicolas Hennion f933d9f1ef
Revert "plugins: connections: refactor" 2025-04-27 15:21:06 +02:00
Nicolas Hennion c69a5a9307
Merge pull request #3161 from ariel-anieli/refactor-plugin-connections
plugins: connections: refactor
2025-04-27 15:02:36 +02:00
Nicolas Hennion b747c87796
Merge pull request #3160 from nguuuquaaa/fix-fs
Fix matching problem when fs config has "show" value
2025-04-27 14:58:38 +02:00
nicolargo f77e039f21 Merge branch 'issue3158' into develop 2025-04-27 14:53:30 +02:00
nicolargo 1901fcad05 [WEBUI] Irix mode (per core instead of per CPU percentage) not togglable #3158 2025-04-27 14:53:02 +02:00
nguuuquaaa 2ef24c7b2d fix display checking logic 2025-04-27 04:35:24 +07:00
Ariel Otilibili 1c93368561
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-04-26 19:07:32 +02:00
nicolargo 55258748ff Done bu display 0 on the WebUI CPU column in IRIS mode... Why ??? 2025-04-26 19:06:56 +02:00
nguuuquaaa 133b97bcaf fix broken matching when fs config has show value 2025-04-26 01:12:13 +07:00
nguuuquaaa 840670ea77 fix broken implementation of plugin.is_display/is_hide/is_show 2025-04-26 00:52:15 +07:00
Nicolas Hennion 5e1a08af79
Merge pull request #3159 from ariel-anieli/reduce-complexity-mem-plugin-update
plugins: mem: reduce code complexity
2025-04-24 07:59:43 +02:00
Ariel Otilibili 4531aac37f
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-04-23 22:01:27 +02:00
Nicolas Hennion 829ae981b5
Merge pull request #3152 from wuhgit/develop
Revision of confusing descriptions in the SMART section of the document
2025-04-21 11:13:53 +02:00
nicolargo 8d1039d4ac Correct an issue with VMs bin test 2025-04-21 10:56:04 +02:00
nicolargo 2cbf7a7fba Merge branch 'issue1531' into develop 2025-04-21 10:40:03 +02:00
nicolargo 0f10ffc245 Add stats about running VMS (qemu/libvirt/kvm support through virsh) #1531 2025-04-21 10:39:48 +02:00
nicolargo f9250c9985 Add stats about running VMS (qemu/libvirt/kvm support through virsh) #1531 2025-04-21 10:39:20 +02:00
wuhgit bdccb0b196
Revision of confusing descriptions in the SMART section of the document 2025-04-17 07:19:26 +08:00
Nicolas Hennion 7218a22002
Update faq.rst 2025-04-15 09:04:40 +02:00
Nicolas Hennion 1feb1ec6f8
Update faq.rst 2025-04-15 09:04:14 +02:00
Nicolas Hennion 4b21d0a18f
Container memory stats not displayed #3142 2025-04-15 09:03:41 +02:00
Nicolas Hennion bead0ae13d
Merge pull request #3151 from Destarianon/bug/discussion2274
Ignore unsupported line endings in password file
2025-04-15 08:54:09 +02:00
Tyler Kerr 1c7a824821
strip unsupported line endings from password file 2025-04-14 21:54:36 +00:00
Nicolas Hennion 48543cab8f
Merge pull request #3070 from nicolargo/renovate/docker-build-push-action-6.x
Update docker/build-push-action action to v6
2025-04-14 16:54:29 +02:00
nicolargo 01b4ca1cf5 Take into account @amard33p comment - https://github.com/nicolargo/glances/issues/2394#issuecomment-2794522951 2025-04-13 16:36:29 +02:00
nicolargo de90b4fd54 Improve unittest for CSV export #3150 2025-04-13 16:28:49 +02:00
nicolargo a91b187069 Remove quicklook from the exportable list 2025-04-13 15:53:52 +02:00
nicolargo eeb7db8e82 Do not store data during InfluxDB test 2025-04-13 15:41:02 +02:00
nicolargo d22f3e16fe Merge branch 'issue3149' into develop 2025-04-13 14:41:32 +02:00
nicolargo 7cc4e86639 Improve unittest for InfluxDB plugin #3149 2025-04-13 14:41:08 +02:00
nicolargo 3cdededa78 Improve unittest for InfluxDB plugin #3149 2025-04-13 14:40:56 +02:00
nicolargo 3016717208 Correct NoneType in update_view method 2025-04-12 16:40:26 +02:00
Nicolas Hennion 9fd1efce21
Merge pull request #3108 from nicolargo/renovate/actions-stale-9.x
Update actions/stale action to v9
2025-04-12 16:12:51 +02:00
Nicolas Hennion 4db6aaeb3d
Merge pull request #3148 from nicolargo/renovate/windows-2025.x
Update dependency windows to v2025
2025-04-12 16:11:06 +02:00
Nicolas Hennion d4202339d9
Merge pull request #3066 from nicolargo/renovate/ubuntu-24.x
Update dependency ubuntu to v24
2025-04-12 16:10:52 +02:00
renovate[bot] 551ec80be6
Update dependency windows to v2025 2025-04-12 12:55:54 +00:00
nicolargo 4c9685f0bf Merge branch 'issue3147' into develop 2025-04-12 14:55:16 +02:00
nicolargo 90ebe27f7e Upgrade JS libs #3147 2025-04-12 14:54:39 +02:00
nicolargo 0907700843 Commit before lint 2025-04-12 14:51:38 +02:00
nicolargo ca2b7a9907 Update precommit hook 2025-04-11 19:19:44 +02:00
nicolargo c1beee40a2 Correct README file 2025-04-11 19:05:30 +02:00
nicolargo acf54a508e Make the shtab optional 2025-04-11 18:54:25 +02:00
nicolargo 50aa49a497 Merge branch 'issue3111' into develop 2025-04-11 18:45:24 +02:00
nicolargo 17553fac8f Add a new option --print-completion to generate shell tab completion - #3111 2025-04-11 18:44:55 +02:00
nicolargo 060457c2ae Update documentation 2025-04-11 18:43:35 +02:00
nicolargo bf54140b87 Add shtab as a dependency 2025-04-11 18:18:21 +02:00
nicolargo 18d6beebe1 Merge branch 'issue3143' into develop 2025-04-11 17:59:31 +02:00
nicolargo bc1211a672 In the FS module, do not display threshold for volume mounted in 'ro' (read-only) #3143 2025-04-11 17:58:00 +02:00
Nicolas Hennion 9cd51fc060
Merge pull request #3141 from kenrmayfield/develop
Updates 4/6/2025: FreeBSD Section - Glances - An Eye on your System
2025-04-10 13:42:21 +02:00
kenrmayfield 041a9852a9
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-04-06 23:42:31 -05:00
kenrmayfield aa8f3abab3
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-04-06 23:33:44 -05:00
kenrmayfield 96aa6987ab
Update README.rst
Updated CHECK Link again due to Error in Syntax
2025-04-06 23:20:20 -05:00
kenrmayfield f29af964ef
Update README.rst
Updated CHECK Link for Python Version corresponding to Glances Binary Package
2025-04-06 22:44:53 -05:00
kenrmayfield aee1ea6acd
Update README.rst
Capitalize the words eye and system in the Title to Eye and System
2025-04-06 22:27:05 -05:00
kenrmayfield 6f93c1bad9
Update README.rst
Changed spelling of ports to Ports
2025-04-06 22:00:29 -05:00
kenrmayfield 20d08c0cb6
Update README.rst
Bold the word NOTE
2025-04-06 21:58:44 -05:00
kenrmayfield 4d7300ab96
Update README.rst
Update FreeBSD Instructions
1. Add Glances Binary Package Versions Picture
2. Update Install
3. Add Note to Check Glances Binary Package Version with System 
    Architecture that corresponds to Python Version.
4.  Add Link to Glances Binary Package Versions Picture called 
     CHECK
2025-04-06 21:47:56 -05:00
nicolargo 0b62a9f785 [GPU] AMD Plugin: Operation not permitted #3125 2025-04-06 18:49:38 +02:00
nicolargo cb22a0c56a Merge branch 'issue3132' into develop 2025-04-06 18:39:26 +02:00
nicolargo fcbcbbfb4d FR: Sort Sensors my name in proper number order #3132 2025-04-06 18:37:45 +02:00
nicolargo c5954c9d99 [Discussion] FreeBSD - AMD64 Install: Package py39-glances not showing a Version Available for AMD64 but for Package py311-glances #3139 2025-04-06 17:51:36 +02:00
nicolargo ad0be97653 Merge branch 'develop' of github.com:nicolargo/glances into develop 2025-04-06 17:49:08 +02:00
nicolargo 6ccd4430e9 Merge branch 'issue2394' into develop 2025-04-06 17:48:54 +02:00
nicolargo b06b0d5c7c Make all results from amps plugins exportable #2394 2025-04-06 17:48:34 +02:00
nicolargo 3a96cfd0cc CSV column name now include the plugin name - Related to #2394 2025-04-06 17:33:20 +02:00
Nicolas Hennion 584fbba311
Merge pull request #3131 from ariel-anieli/glances-start-refactor
glances: refactor start()
2025-03-25 07:37:59 +01:00
Ariel Otilibili fc4dc38028 glances: refactor start()
Part of #2801: start() is split into start_main_loop(),
check_memleak(), setup_server_mode(), & maybe_trace_memleak().

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2025-03-23 21:19:31 +01:00
nicolargo aa428b51c9 Create a new init method for export in order to init fields in some export module 2025-03-23 18:53:19 +01:00
nicolargo 3ba5946974 Remove <plugin>_disable field from export 2025-03-23 17:49:32 +01:00
nicolargo b7cdf66eb0 On the road of Glances 4.3.2 2025-03-22 17:53:04 +01:00
nicolargo 7cfc0c7aa6 version 4.3.1 2025-03-22 17:51:23 +01:00
nicolargo 91fa4bf200 Update configuration file for docker compose 2025-03-22 17:39:36 +01:00
nicolargo a6b14d75bb Remove debug message in sensors plugins 2025-03-22 16:41:11 +01:00
nicolargo ec0baca9f7 Little improvment regarding the CPU name if nothing is found. Display the CPU architecture. 2025-03-22 16:05:58 +01:00
nicolargo e7c2c219c5 Merge branch 'issue3102' into develop 2025-03-09 16:43:35 +01:00
nicolargo 84c54a7b9a Cannot set warning/critical temperature for a specific sensor #3102 2025-03-09 16:43:01 +01:00
nicolargo f2c7e4724a Merge branch 'develop' of github.com:nicolargo/glances into develop 2025-03-08 12:06:12 +01:00
nicolargo 91a052d11a Try to reduce latency between stat's update and view - #3086 2025-03-08 12:05:35 +01:00
nicolargo 002954e58a Try to reduce latency between stat's update and view 2025-03-08 12:04:13 +01:00
nicolargo df3d96bd33 Merge branch 'issue3113' into develop 2025-03-02 17:33:01 +01:00
nicolargo 079f926eb1 Add disable background option in glances.conf file - #3113 2025-03-02 17:32:45 +01:00
nicolargo c70eb857ba I'd like a feature to make the forground color for colored background white #3119 2025-03-01 17:19:34 +01:00
nicolargo 979d040f7b Merge branch 'issue410' into develop 2025-03-01 16:21:13 +01:00
nicolargo 8e8773d1c2 Change button style 2025-03-01 16:02:20 +01:00
nicolargo b206938f95 Update CSS style for extended stats 2025-03-01 15:30:00 +01:00
Nicolas Hennion 1aa8d221f1
Merge pull request #3118 from jo-chemla/quickfix-glances-grafana-flux.json
Replace `docker` by `containers` in `glances-grafana-flux.json`
2025-02-27 17:44:12 +01:00
Jonathan Chemla e14e49a2fd
Replace `docker` by `containers` in `glances-grafana-flux.json`
Typo probably introduced following a naming convention change that was not repercuted on that grafana fluxQL influxdb2 dashboard JSON
2025-02-25 09:51:12 +01:00
nicolargo f9bbcea9e1 First version OK, need change on UI 2025-02-23 19:50:48 +01:00
nicolargo c32d363897 Merge branch 'issue410' of github.com:nicolargo/glances into issue410 2025-02-22 10:13:22 +01:00
renovate[bot] 6a265be9d5
chore(deps): update actions/stale action to v9 2025-02-19 09:49:45 +00:00
Nicolas Hennion c00383f0b0
Merge pull request #3106 from almkuznetsov/config-dir
default_config_dir: Fix config path to include glances/ directory
2025-02-19 10:49:06 +01:00
Alexander Kuznetsov bafe0e2438 docs: Fix default config path typos 2025-02-17 16:28:27 +03:00
Alexander Kuznetsov 7e28116252 default_config_dir: Fix config path to include glances/ directory
Non-venv default config path was /usr/share/doc/glances.conf
(not /usr/share/doc/glances/glances.conf) since a55970a.

Fix it and place the venv path to the end of the paths list,
so it will have priority over the system default.
2025-02-17 16:26:44 +03:00
nicolargo e1dcfc38c5 _api_get_extended_processes is called several time per second. Should be corrected. 2025-02-08 17:48:15 +01:00
nicolargo 1345bc24d5 Entry point in the API to get extended process stats #3095 2025-01-26 09:54:23 +01:00
nicolargo 0c6c488627 Lint the code 2025-01-25 11:11:17 +01:00
nicolargo 4a4cb135da [Docker plugin] KeyError: 'mem' cause 'Exception in ASGI application' #3091 2025-01-25 11:05:21 +01:00
nicolargo 233a47e971 Error on Cloud plugin initialisation make TUI crash #3085 2025-01-19 19:54:26 +01:00
Nicolas Hennion c93df694d9
Update docker-compose.yml
Update Docker-Compose
2025-01-15 09:56:29 +01:00
Nicolas Hennion c536fcde77
Update docker-compose.yml
Dockerized Web Sever mode with login/password #2684
2025-01-15 09:55:40 +01:00
Nicolas Hennion 7eb488ba77
Update README.rst
Add OSSRank
2025-01-13 10:33:38 +01:00
Nicolas Hennion d2e2b8fb17
Merge pull request #3083 from mizulike/develop
Fixed minor typos
2025-01-11 17:35:18 +01:00
mizulike 296b2ece60 Fixed typos 2025-01-10 03:45:36 +01:00
nicolargo e4bc144f31 Add Selenium test with different resolution 2025-01-04 15:48:53 +01:00
nicolargo 3ad94bc095 Refactor dynamic plugin max size computation in the __display_right method 2025-01-04 15:10:59 +01:00
nicolargo d5f8418387 Again on the road to Glances 4.3.1 2025-01-04 11:24:00 +01:00
nicolargo 5090cd4493 Update NEWS 2025-01-04 11:23:05 +01:00
nicolargo e907519c4a version 4.3.0.8 2025-01-04 11:21:51 +01:00
nicolargo d264155fc2 Add a message to verify Netifaces2 2025-01-04 11:20:08 +01:00
nicolargo 728f86fa5e IP plugin broken with Netifaces2 #3076 2025-01-04 11:12:25 +01:00
nicolargo 2c9beccea5 Improve WebUI display on low screen 2025-01-04 10:14:34 +01:00
nicolargo 0b818e99fa On the road again again to 3.4.1 2025-01-03 10:23:38 +01:00
nicolargo 372380bdb9 version 4.3.0.7 2025-01-03 10:20:15 +01:00
nicolargo c711a63322 Full responsive WebUI 2025-01-03 10:08:36 +01:00
nicolargo bfdc27dc2c Make the header and top menu responsive 2024-12-31 17:45:38 +01:00
nicolargo 7e3948b72e On the road (again) to Glances 4.3.1 2024-12-30 15:20:20 +01:00
nicolargo 7a2ee52362 version 4.3.0.6 2024-12-30 15:15:43 +01:00
renovate[bot] f1054c5eea
Update docker/build-push-action action to v6 2024-12-30 14:11:07 +00:00
nicolargo 1588375624 Merge branch 'issue3055' into develop 2024-12-30 15:09:15 +01:00
nicolargo c0270056b7 Merge branch 'develop' into issue3055 2024-12-30 15:08:47 +01:00
nicolargo dd93371dc4 Browser mode do not working with the sensors plugin #3069 2024-12-30 15:07:12 +01:00
nicolargo 5274339774 Browser do not working 2024-12-30 14:19:26 +01:00
renovate[bot] 4c3e8f9448
Update dependency ubuntu to v24 2024-12-30 12:42:00 +00:00
nicolargo 825b9879c8 Disable Renovate for Lock file 2024-12-30 11:57:11 +01:00
nicolargo 3b67eb1c79 Remove test on Windows and Python 3.13 2024-12-29 15:09:58 +01:00
nicolargo c372d35f2c Make the test compliant with Windows 2024-12-29 13:36:04 +01:00
nicolargo acb206ef78 Refactor memory leak 2024-12-29 13:27:57 +01:00
nicolargo bd35c77437 Disable history test on Windows 2024-12-29 13:26:19 +01:00
nicolargo b77d1b36b3 Semgrep is not available on Windows 2024-12-29 13:15:16 +01:00
nicolargo 797b0d06b1 Add memory leak unitary test 2024-12-29 13:07:54 +01:00
nicolargo 6124da2e59 Move all the Python test files in ./tests/ folder 2024-12-28 18:31:39 +01:00
nicolargo f730bf3aa2 Correct an issue with the fs plugin in test_perf 2024-12-28 18:27:43 +01:00
nicolargo b33cd3fd2b Add dep for run test in CI 2024-12-28 18:20:20 +01:00
nicolargo 8fb49d99b1 Improve unittest (PyTest, add perf, add Selenium) #2757 2024-12-28 18:09:08 +01:00
nicolargo 1624e66f48 Improve unittest #2757 2024-12-28 18:08:52 +01:00
nicolargo b4402bfc53 Merge branch 'develop' into issue2757 2024-12-28 13:52:42 +01:00
nicolargo ef602ac59e Get back to road for Glances 4.3.1 2024-12-28 13:52:08 +01:00
nicolargo c8a592b5b7 Merge branch 'master' into develop 2024-12-28 13:51:15 +01:00
nicolargo ae31259709 version 4.3.0.5 2024-12-28 13:49:54 +01:00
nicolargo d457fad293 WebUI errors in 4.3.0.4 on iPad Air (and Browser with low resolution) #3057 2024-12-28 13:47:21 +01:00
nicolargo 790bd5bfad WebUI errors in 4.3.0.4 on iPad Air (and Browser with low resolution) #3057 2024-12-28 13:46:14 +01:00
nicolargo 233f5a68df WebUI errors in 4.3.0.4 on iPad Air (and Browser with low resolution) #3057 2024-12-28 13:45:34 +01:00
nicolargo 3ec94d32f0 Switch to Chrome for Selenium 2024-12-28 13:16:11 +01:00
nicolargo bce9fe3621 Before switching to Chrome/2 2024-12-28 10:25:55 +01:00
nicolargo d92c18784e Before switching to Chrome 2024-12-28 10:25:37 +01:00
nicolargo 754898854f Merge branch 'develop' into issue2757 2024-12-28 09:57:34 +01:00
nicolargo c8cb4d05b3 Build for SNAP 2024-12-28 09:57:06 +01:00
nicolargo 7e1b7e34db Disable VMS by default to make it renable in SNAP 2024-12-28 09:53:00 +01:00
nicolargo df5ecca044 Back to dev 2024-12-28 09:17:46 +01:00
nicolargo 287df49af2 Rebuild Snap with multipass support 2024-12-28 09:16:39 +01:00
nicolargo 18e386a5dd Merge branch 'master' into develop 2024-12-28 09:07:55 +01:00
nicolargo bc201df05b version 4.3.0.4 2024-12-28 09:07:25 +01:00
nicolargo ec0d5695a9 First test with Selenium 2024-12-28 09:00:50 +01:00
nicolargo 4bb39232fe Merge branch 'develop' into issue2757 2024-12-27 22:09:20 +01:00
nicolargo 5faad4b13c Reapply "Replace netifaces by netifaces-plus #3053"
This reverts commit 85b786c832.
2024-12-27 21:59:51 +01:00
nicolargo 80f330d866 version 4.3.0.3 2024-12-27 21:56:00 +01:00
nicolargo ebf5431592 version 4.3.0.2 2024-12-27 21:22:34 +01:00
nicolargo 85b786c832 Revert "Replace netifaces by netifaces-plus #3053"
This reverts commit 9da81638b9.
2024-12-27 21:20:24 +01:00
nicolargo 86082963b3 version 4.3.0.1 2024-12-27 21:05:02 +01:00
nicolargo 236d2f80e3 CONTAINERS section missing in 4.3.0 WebUI #3052 2024-12-27 21:00:39 +01:00
nicolargo 9da81638b9 Replace netifaces by netifaces-plus #3053 2024-12-27 20:42:35 +01:00
nicolargo dbb791fa58 Update Python version for containers 2024-12-27 16:10:05 +01:00
nicolargo 7439ec1625 On the road to Glances 3.4.1 2024-12-27 15:29:12 +01:00
nicolargo e09530693f version 4.3.0 2024-12-27 15:15:46 +01:00
nicolargo 1a4eeaee01 Merge branch 'master' into develop 2024-12-27 11:56:31 +01:00
nicolargo e14934a197 Update profiling file 2024-12-27 11:53:34 +01:00
nicolargo 8276ddd184 Enable PyTest in the Github pipeline 2024-12-26 11:08:06 +01:00
nicolargo c828f21753 Updata min-test 2024-12-26 10:54:50 +01:00
nicolargo 61edf4daf5 Make main.py comliant with PyTest (concerning args) 2024-12-26 10:49:26 +01:00
nicolargo b491cbe42b Make main.py comliant with PyTest (concerning args) 2024-12-26 10:48:50 +01:00
nicolargo b6865d8cff Remove now plugin in the left menu of the WebUI (in the make webui task) 2024-12-25 09:35:08 +01:00
nicolargo 0ed44f2c13 Make the glances/outputs/static/js/uiconfig.json generated automaticaly from the make webui task 2024-12-25 09:31:29 +01:00
nicolargo f3d9e3feee [WebUI] Unecessary space between Processcount and processlist #3032 2024-12-23 19:19:43 +01:00
nicolargo 499e46cf44 Unexpected behaviour while running glances in docker with --export influxdb2 #2904 2024-12-23 16:17:32 +01:00
nicolargo 695559c72a Align conf file 2024-12-23 11:52:57 +01:00
nicolargo 01e007deaa Allow containers columns to be selected in config file #2722 2024-12-23 11:51:09 +01:00
nicolargo b6fc1596a9 Done for the WebUI 2024-12-23 11:50:53 +01:00
nicolargo 1980569c90 Done in the TUI 2024-12-23 11:39:17 +01:00
nicolargo 96ed18e503 Remove unused NICE level in color 2024-12-23 10:58:34 +01:00
nicolargo de8341b5b5 Improve CAREFUL_LOG display on 256 color terminal 2024-12-23 10:47:42 +01:00
nicolargo c6e7281e1b Update API docs 2024-12-22 20:02:44 +01:00
nicolargo 077d5fee5b Merge branch 'issue3042' into develop 2024-12-22 19:19:14 +01:00
nicolargo 0e9e74fa8c [WEBUI] Clear old alert messages in the WebUI #3042 2024-12-22 19:13:46 +01:00
nicolargo cf56203c09 Create entry point for clear warnig/all events in the API 2024-12-21 16:14:47 +01:00
nicolargo a20362d68e Update glances.conf for container 2024-12-21 15:38:48 +01:00
nicolargo faf4d3cbf6 Glances 4.3.0_dev06 2024-12-21 15:22:11 +01:00
nicolargo 183772cf3e Merge branch 'issue3049' into develop 2024-12-21 15:19:49 +01:00
nicolargo 890b5d5dd2 Raise an (Alert) Event for a group of sensors #2692 2024-12-21 15:19:34 +01:00
Nicolas Hennion d9725d623f
Merge pull request #3045 from ariel-anieli/revert-98e8e32457dcf6129c8c6084e03675268ac20f9f
Revert "Reduced complexity of `unittest-core.TestGlances._common_plugin_tests()`"
2024-12-21 13:18:48 +01:00
nicolargo 53d5a0f1a6 Glances 4.3dev05 2024-12-14 17:08:35 +01:00
nicolargo d0b9ea69b6 Update WebUI dep 2024-12-14 09:29:27 +01:00
nicolargo 577605f772 Update documentation 2024-12-14 09:28:45 +01:00
Ariel Otilibili 2134174758 Revert "Reduced complexity of `unittest-core.TestGlances._common_plugin_tests()`"
* reverting 98e8e32457
* introduced #3040.
2024-12-08 21:12:25 +01:00
Nicolas Hennion 8258101d35
Merge pull request #3029 from ariel-anieli/glances-processes
Refactored `glances.processes.GlancesProcesses.update`, version 2
2024-12-08 19:10:19 +01:00
nicolargo af808c48e8 Correct unittest with programame 2024-12-08 18:52:50 +01:00
Ariel Otilibili cb53393f83 Refactored `glances.processes.GlancesProcesses.update`, version 2
* part of #2801
* second take of 1fda541350
* reverted in 0c635af10d.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-23 13:43:38 +01:00
Ariel Otilibili 4345e9877b Fix Ruff warnings in GitHub Actions
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-23 13:43:11 +01:00
nicolargo ce0e3c7945 Correct display issue on Containers plugin in WebUI #3028 2024-11-23 10:16:36 +01:00
nicolargo 2061d1b42c Refactor display of +time in WebUI 2024-11-21 19:47:25 +01:00
nicolargo 55d42d358d Make top menu dynamic on WebUI 2024-11-21 19:18:13 +01:00
nicolargo 9e945f1bb7 Merge branch 'issue3024' into develop 2024-11-20 15:03:03 +01:00
nicolargo 21d17c2d44 Improve CCS of WebUI #3024 2024-11-20 15:02:47 +01:00
nicolargo fb25a6f4f4 Bug In the Web-UI, Timestamps for 'Warning or critical alerts' are showing incorrect month #3023 2024-11-20 13:15:28 +01:00
nicolargo 16c5c71cdc Update WebUI 2024-11-20 09:49:30 +01:00
nicolargo 86c07a3fb4 Merge branch 'jdrouhard-fix-network-disk-filter' into develop 2024-11-20 09:48:32 +01:00
John Drouhard 3fdc5402be WebUI: Fix network/diskio filter when property doesn't exist 2024-11-17 14:25:43 -06:00
nicolargo 40299a633e WebUI doesn't display valid time for process list #2902 2024-11-17 19:18:12 +01:00
nicolargo feefcd417d Update pretty_date 2024-11-17 18:45:51 +01:00
nicolargo e1e4e8bda9 Uptime for Docker containers not working #3021 2024-11-17 18:31:44 +01:00
nicolargo 734632faa2 Merge branch 'issue3019' into develop 2024-11-17 15:32:57 +01:00
nicolargo 8d1a5ca189 Thread mode ('j' hotkey) is not taken into accound in the WebUI #3019 2024-11-17 15:32:34 +01:00
nicolargo a7d5b1e869 Thread mode ('j' hotkey) is not taken into accound in the WebUI #3019 2024-11-17 15:31:10 +01:00
nicolargo fa57d5a5ab Disable 'j' hotky in WebUI - Waiting for #3019 2024-11-16 17:05:11 +01:00
nicolargo 2ec5c8d251 Code refactor after reading https://blog.codingconfessions.com/p/the-pythonic-emptiness?utm_source=tldrwebdev 2024-11-16 16:09:53 +01:00
nicolargo a36c2bf87a Rework CI to split build Pypi packages and build Docker images 2024-11-16 16:08:12 +01:00
nicolargo ddd7e5ebe4 Try with a new develop version to check last commit 2024-11-16 15:26:42 +01:00
nicolargo 494b0a01c5 Try with a new develop version to check last commit 2024-11-16 15:16:08 +01:00
nicolargo c36ad5d4ff Try new build and publish to Pypi CI actions - Correct issue 2024-11-16 15:07:07 +01:00
nicolargo 7ef4b6642b Try new build and publish to Pypi CI actions 2024-11-16 14:52:23 +01:00
nicolargo 77e3c4968d Revert commit 57868c7 waitin implementation of issue 3020 2024-11-16 12:15:21 +01:00
nicolargo 57868c70f5 CI - Allow develop branch to overwrite Pip package in Pypi Test 2024-11-16 11:49:10 +01:00
nicolargo 8cf98e59e6 Update docs 2024-11-16 11:47:32 +01:00
nicolargo c5fc63b53a Merge branch 'issue2996' into develop 2024-11-16 11:39:51 +01:00
nicolargo 3f26fb85f6 Ability to specify hide or show for smart plugin #2996 2024-11-16 11:39:24 +01:00
nicolargo 07656fd7ff Network problem when no bitrate available #3014 2024-11-15 18:06:20 +01:00
nicolargo 9fe0c812a0 SyntaxError: f-string: unmatched '[' in server list (on the DEVELOP branch only) #3018 2024-11-15 18:01:47 +01:00
nicolargo 318a61da6c Add a target to start Glances with Htop features 2024-11-11 17:09:24 +01:00
Nicolas Hennion 1910004d21
Merge pull request #3013 from nicolargo/revert-3009-refactor-glances-processes
Revert "Refactored `glances.processes.GlancesProcesses.update`"
2024-11-11 16:52:26 +01:00
Nicolas Hennion 0c635af10d
Revert "Refactored `glances.processes.GlancesProcesses.update`" 2024-11-11 16:52:02 +01:00
nicolargo b59f9a3957 Merge branch 'ariel-anieli-refactor-glances-processes' into develop 2024-11-11 16:49:29 +01:00
nicolargo 279a27f60f Correct merge issue 2024-11-11 16:49:10 +01:00
nicolargo 0370c91567 Issue with ports plugin (for URL request) #3008 2024-11-11 16:21:58 +01:00
nicolargo da54624d5a Merge branch 'issue3010' into develop 2024-11-11 16:04:21 +01:00
nicolargo 28fb7bff62 FS module alias configuration do not taken into account everytime #3010 2024-11-11 16:04:09 +01:00
nicolargo 10543581ed Merge branch 'issue1524' into develop 2024-11-11 15:27:20 +01:00
nicolargo 172dda97de Remove test in the glances.conf file 2024-11-11 15:26:59 +01:00
nicolargo 82c2ade01f Implementation for WebUI ok 2024-11-11 15:03:19 +01:00
Ariel Otilibili 1fda541350 Refactored `glances.processes.GlancesProcesses.update`
Part of #2801.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-11 13:09:31 +01:00
nicolargo 34520ca45b First version but only for the TUI standalone mode 2024-11-10 20:00:40 +01:00
nicolargo e1cd3ded23 Add Memory profiling 2024-11-10 17:06:02 +01:00
nicolargo ff9339b74f Refactor code in order to prepare the feature request #1524 2024-11-10 14:57:05 +01:00
nicolargo 7a57263b81 Reduce complexity of __init__ for processes.py 2024-11-10 14:09:25 +01:00
nicolargo 42b87acb55 Update profiling 2024-11-10 13:59:42 +01:00
nicolargo f980608724 Updae theme 2024-11-09 15:32:53 +01:00
Nicolas Hennion a3341b196e
Merge pull request #3006 from ariel-anieli/bump-ruff
Bump ruff target to Python 3.9
2024-11-09 14:40:58 +01:00
Ariel Otilibili 5791a19017 `make lint` in `glances/plugins/containers/__init__.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili ffb2af1b66 `make lint` in `glances/plugins/containers/engines/__init__.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 170dda4eac `make lint` in `glances/plugins/containers/engines/docker.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili aaf660c1c1 `make lint` in `glances/plugins/containers/engines/podman.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili e763c9b4f1 `make lint` in `glances/plugins/sensors/__init__.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 4ad93e629d `make lint` in `glances/plugins/vms/__init__.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 776a2356b2 `make lint` in `glances/plugins/vms/engines/__init__.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 0e83631b97 `make lint` in `glances/plugins/vms/engines/multipass.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 7d1b9a3bf3 `make lint` in `glances/globals.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili 6ea8244906 `make lint` in `glances/cpu_percent.py`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:21:36 +01:00
Ariel Otilibili f92150a4f6 Bumped ruff target to Python 3.9
* sequel of b537f454c1
* prelude to subsequent changes due to ruff [Link]

Link: https://docs.astral.sh/ruff/rules/non-pep585-annotation/
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-09 13:19:47 +01:00
nicolargo 037c0d2cf9 Avoid error when stop / restart web server in the Glances Central Browser 2024-11-09 10:17:17 +01:00
nicolargo 530f4e37b0 Update unit-test for Glances Central Browser 2024-11-09 09:38:51 +01:00
nicolargo c60b4bf2eb Add unit-test for new entry point in the API (plugin/item/key) 2024-11-09 09:13:37 +01:00
Nicolas Hennion 76d8cbe251
Merge pull request #3005 from ariel-anieli/python-bump
Bumped minimal Python version to 3.9
2024-11-09 08:45:25 +01:00
nicolargo af156665a4 Remove log message used during debug 2024-11-08 19:33:17 +01:00
nicolargo 773ebd9920 Remove log message used during debug 2024-11-08 19:32:37 +01:00
nicolargo 64e8cf4221 Issue when display sensors with space in browser #2983 2024-11-08 19:31:35 +01:00
nicolargo cd70a8091f Correct issue when key name contains space - Related to #2983 2024-11-08 19:19:56 +01:00
nicolargo 15d993a2cc Remove the test in glances.conf file 2024-11-08 18:22:08 +01:00
nicolargo efd79b0bd8 Correct an issue on the Webbrowser, the column list is now shared between static and dynamic Glances servers list 2024-11-08 18:21:40 +01:00
nicolargo a9e3820947 Update doc and WebUI 2024-11-08 15:26:44 +01:00
Ariel Otilibili 27116443b7 `make format`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-08 15:19:40 +01:00
Ariel Otilibili b537f454c1 Bumped minimal Python version to 3.9
* Python 3.8 is now end of life [Link]
* changed occurrences found with `git grep -P '[^\d\.]3\.8[^\d]'`
* so doing, removed unused branch in `glances/outputs/glances_restful_api.py`
* branch introduced by f6545580db
* ruff also needs a bump; i.e, `s/py38/py39/`
* not done yet, since it needs to clear out warnings.

Link: https://devguide.python.org/versions/
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-08 15:19:40 +01:00
nicolargo 114435e033 Thresholds not displayed in the WebUI for the DiskIO plugin #1498 2024-11-08 15:14:41 +01:00
nicolargo eebab00720 Update docs 2024-11-08 12:37:36 +01:00
nicolargo e2b53594ec Update glances.conf 2024-11-08 12:36:54 +01:00
nicolargo 0eaa3727a1 Merge branch 'issue1121' into develop 2024-11-08 12:36:02 +01:00
nicolargo 0f641cb9eb Merge branch 'develop' into issue1121 2024-11-08 12:35:41 +01:00
nicolargo 2495677d7b Update doc 2024-11-08 12:28:58 +01:00
nicolargo dc5c182ee8 The Web browser client should detect clients on the same LAN (thanks to zeroconf, like it is already done in --browser XMLRPC client/server mode) 2024-11-08 11:59:18 +01:00
nicolargo 7ac7171a3f Improve theme and refactor getDecoration for stats 2024-11-08 09:17:51 +01:00
nicolargo d0629ea128 Change the default path for graph export to /tmp/glances 2024-11-06 15:42:40 +01:00
Nicolas Hennion 6bfccdf87f
Merge pull request #3000 from shidetian/patch-1
add comparable NVML_LIB check for Windows
2024-11-06 14:52:21 +01:00
Nicolas Hennion 08c31b810f
Merge pull request #2998 from ariel-anieli/ip-model
Refactored `glances.plugins.ip.PluginModel.update`
2024-11-06 14:49:53 +01:00
nicolargo ce3f740a2f Change theme 2024-11-06 14:44:28 +01:00
nicolargo e6e6b16aad Update SCSS for browser mode 2024-11-04 08:06:43 +01:00
nicolargo 0d908034ab Display the list and click on a server is OK 2024-11-03 16:30:35 +01:00
Detian Shi bcd7b3d9c6
remove unused variable 2024-11-02 17:06:17 -07:00
Detian Shi 30a31eda81
add comparable NVML_LIB check for Windows 2024-11-02 16:48:42 -07:00
nicolargo e1dd979b86 Refactor server list code in order to put all the methodin the servers_list.py file 2024-11-02 16:23:31 +01:00
nicolargo 799dcab034 Add WebUI Central Browser 2024-11-02 09:00:31 +01:00
nicolargo 3352f095b6 Refactor servers list (static and dynamic) 2024-11-02 08:59:45 +01:00
Ariel Otilibili cd5877daf0 Refactored `glances.plugins.ip.PluginModel.update`
* part of #2801
* formatted into a dict; if input method is SNMP, returns default stats
* if input method is local, calls `get_stats_for_local_input`
* it has three steps:  `get_private_ipv4`, `get_first_ipv4`, `get_public_ipv4`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-11-01 21:06:14 +01:00
nicolargo d538b2dd13 First step done - Rest server are managed in the current TUI client browser 2024-11-01 14:29:33 +01:00
nicolargo f12de6619b Publish a new snap release 2024-11-01 12:01:34 +01:00
nicolargo ce0fc37952 Disable attestations check 2024-11-01 11:53:12 +01:00
nicolargo 1f5deb3f83 Disable attestations check 2024-11-01 11:46:39 +01:00
nicolargo ac8cd748f3 Merge branch 'master' into develop 2024-11-01 11:24:14 +01:00
nicolargo ccf837eb9f Add attestations to allow publishing to Pypi 2024-11-01 11:21:28 +01:00
nicolargo 23f4c55147 On the road again (again) to Glances 4.3.0 2024-11-01 11:04:44 +01:00
nicolargo 6095eadd30 Did not generate Pypi test if not on the develop branch 2024-11-01 10:53:52 +01:00
nicolargo 5a3ce6e8aa version 4.2.1 2024-11-01 10:38:11 +01:00
nicolargo 72f142d2ac Update requirements 2024-11-01 10:20:12 +01:00
nicolargo 1f505dda60 [WEBUI] Came back to default Black Theme / Reduce font size #2993 2024-11-01 09:55:47 +01:00
nicolargo a3b8ca83d4 Format code 2024-11-01 07:40:38 +01:00
nicolargo 63c7cfcfe8 Format code 2024-11-01 07:37:54 +01:00
Bharath Vignesh J K 6ee3683172 fix: ReST API - typing imports support for py38
fixes #2992
2024-11-01 02:10:24 +05:30
Nicolas Hennion 8767de51f2 Correct issue with variable name in the last commit 2024-10-31 16:31:48 +00:00
Nicolas Hennion ac7ab9ea84 Do not display error message in loop when containers list can not be retrieve (only first time after a failure). 2024-10-31 16:28:56 +00:00
Nicolas Hennion 49d15b20da Avoid importing pynvml if NVML_LIB is not installed 2024-10-31 16:09:59 +00:00
Nicolas Hennion a6956bf7ee Possible memory leak #2976 2024-10-31 15:39:13 +00:00
nicolargo a2c609ca6f Update WebUI 2024-10-26 17:14:12 +02:00
nicolargo ffba4ca6f4 hide_zero=True option not working in the WebUI #2987 2024-10-26 12:37:56 +02:00
nicolargo 5b091f413b Non blocking error message when Glances starts from a container (alpine-dev image) #2991 2024-10-26 10:54:53 +02:00
nicolargo 34da61647b Non blocking error message when Glances starts from a container (alpine-dev image) #2991 2024-10-26 10:53:15 +02:00
Nicolas Hennion ff1cde4ffb
Merge pull request #2990 from branchvincent/pyproject
Make pyproject.toml's version dynamic
2024-10-24 08:13:26 +02:00
Branch Vincent 0e40ec657e
Make pyproject.toml's version dynamic 2024-10-23 15:19:02 -07:00
Branch Vincent 47da2a6967
Revert "Set the version by reading directly the pyproject file in local (dev and Docker) - Related to #2956"
This reverts commit 68104b7d0f.
2024-10-23 15:16:20 -07:00
Branch Vincent 6479a6c38d
Revert "Set the version by reading directly the pyproject file in local (dev and Docker) - Related to #2956"
This reverts commit 604d805828.
2024-10-23 15:16:10 -07:00
nicolargo 604d805828 Set the version by reading directly the pyproject file in local (dev and Docker) - Related to #2956 2024-10-23 23:12:55 +02:00
nicolargo 68104b7d0f Set the version by reading directly the pyproject file in local (dev and Docker) - Related to #2956 2024-10-23 23:03:43 +02:00
Nicolas Hennion 2d0dcb18e1
Merge pull request #2977 from ariel-anieli/pretty-date
Refactored `glances.globals.pretty_date()`, version 2
2024-10-23 22:29:36 +02:00
nicolargo b2b6879dd5 Update version (in order to test #2956) and rebuild the Web UI 2024-10-23 22:06:08 +02:00
nicolargo 039dd00c96 Desable warning message concerning version when executed in local - Related to #2956 2024-10-23 22:02:06 +02:00
Nicolas Hennion 4f692fa185
Merge pull request #2984 from branchvincent/pyproject
Migrate to pyproject.toml, add 3.13 support
2024-10-23 21:53:22 +02:00
nicolargo 5732a52fbc Update docs 2024-10-23 21:29:37 +02:00
Nicolas Hennion 88a804b57b
Merge pull request #2985 from uoguelph-engg4450/Lukas-Dev
Implement Improve hide_zero option #2958
2024-10-23 21:07:30 +02:00
nicolargo d343131487 Add id-token action to deploy with trusted publisher for release 2024-10-23 20:33:36 +02:00
nicolargo 0bbbd8fce2 Add id-token action to deploy with trusted publisher 2024-10-23 20:24:58 +02:00
Ariel Otilibili 9e1d977a26 Refactored `glances.globals.pretty_date()`, version 2
* part of #2801
* follows from f6279baacd4cf0b27ca10df6dc01f091ea86a40a; which caused #2973.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-22 22:35:51 +02:00
Tacitor 9ad511ad05 add the changes to give a threshold in the config to cut off small values 2024-10-20 21:46:43 -04:00
Tacitor 31abc57c2a add a todo statement 2024-10-20 20:15:15 -04:00
Branch Vincent 04a1770ebd
Add 3.13 support 2024-10-20 12:30:55 -07:00
Branch Vincent 44ae3e5f0b
Migrate to pyproject.toml 2024-10-20 12:13:54 -07:00
nicolargo 73fd34e588 Remove token from Github action 2024-10-20 18:56:50 +02:00
nicolargo e02d95083b On the road of Glances 4.3.0 2024-10-20 18:29:49 +02:00
nicolargo a8608f17d6 version 4.2.0 2024-10-20 18:02:15 +02:00
nicolargo 7d44a2f554 Solve merge conflict 2024-10-20 17:38:57 +02:00
nicolargo d67d4e3d0e Glances 4.2.0 2024-10-20 17:37:34 +02:00
nicolargo e1f7ec252f Unit test with epoch fail on Github because of the timezone, remove it from test_021 2024-10-20 14:04:10 +02:00
nicolargo c2cb7cc788 Correct some minor issue in SNMP mode 2024-10-19 19:31:13 +02:00
nicolargo ddb7cfabc7 Do not display Unknown information in the cloud plugin #2485 2024-10-19 18:35:35 +02:00
nicolargo ea11ee9243 Incomplete pipx install to allow webui + containers #2955 2024-10-19 17:27:54 +02:00
nicolargo 9cf60be628 Remove unused lib in globals.py 2024-10-19 15:31:01 +02:00
nicolargo 5f3350e62f Merge branch 'issue2979' into develop 2024-10-19 15:27:43 +02:00
nicolargo 315678b5bd Use defusedxml lib #2979 2024-10-19 15:27:13 +02:00
nicolargo d39d7c7dfa In TUI, when processes are filtered, column are not aligned #2980 2024-10-19 14:57:53 +02:00
nicolargo cac964df3c Merge branch 'issue2942' into develop 2024-10-19 10:17:21 +02:00
nicolargo 06ab6144b4 Can't kill process. Standalone, Ubuntu 24.04 #2942 2024-10-19 10:16:50 +02:00
nicolargo a1c0be479f Erreur Internal Server Error à partir de la V4.1.0 et suivante #2943 2024-10-19 09:59:15 +02:00
nicolargo dc8707ad33 Update docs 2024-10-19 09:52:04 +02:00
nicolargo eed2ec954a Lint and format 2024-10-19 09:36:56 +02:00
nicolargo 4afe46a2cb Make feature #1289 compatible with multiple keys 2024-10-13 17:45:45 +02:00
nicolargo 119add783e Add additional test for pretty-date 2024-10-13 16:38:49 +02:00
nicolargo 13606da667 Update WebUI 2024-10-13 16:30:58 +02:00
nicolargo db9785e37f Add unitary tests for pretty-date 2024-10-13 16:28:28 +02:00
nicolargo 7f2454154f Filter Docker containers - #2962 2024-10-13 15:42:13 +02:00
Nicolas Hennion 8b8c61cc7c
Merge pull request #2975 from nicolargo/revert-2961-pretty-date
Revert "Refactored `glances.globals.pretty_date()`"
2024-10-13 14:55:17 +02:00
Nicolas Hennion 25b87a08ae
Revert "Refactored `glances.globals.pretty_date()`" 2024-10-13 14:54:27 +02:00
Nicolas Hennion 0cdf2d62e7
Merge pull request #2974 from casse-boubou/Add-'Availability'-topic-to-MQTT-connection
Add retain to availability topic
2024-10-13 14:48:00 +02:00
Github GPG acces 252f593bcc
reformatted for pass ruff test 2024-10-13 11:06:03 +02:00
Github GPG acces 4eb5f540c1
Add retain to availability topic
Added the forgotten topic retain, but important for this kind of data
2024-10-13 10:45:23 +02:00
nicolargo 77e9eb3306 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-10-12 09:59:41 +02:00
nicolargo a1b07690e4 Refactor WebUI responsive 2024-10-12 09:59:30 +02:00
Nicolas Hennion e57eeb8089
Merge pull request #2961 from ariel-anieli/pretty-date
Refactored `glances.globals.pretty_date()`
2024-10-09 10:01:21 +02:00
Ariel Otilibili f6279baacd Refactored `glances.globals.pretty_date()`
* part of #2801
* instead of many, a single return point is used
* refactoring possible because `OrderedDict` preserve insertion order [1]
* though `dict` preverse order since 3.6, used `OrderedDict` for safety [2]
* introduced as helpers:

1. `get_diff_time`
2. `get_msg_for_true_cond`
3. `get_conds_for_sec_diff_msg`
4. `get_conds_for_day_diff_msg`.

[1] https://docs.python.org/3/library/collections.html#collections.OrderedDict
[2] https://peps.python.org/pep-0520/

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-08 20:26:20 +02:00
nicolargo adfb642539 Improve docs for Web API 2024-10-06 17:49:45 +02:00
Nicolas Hennion 702b747d9d
Merge pull request #2960 from casse-boubou/Add-'Availability'-topic-to-MQTT-connection
Add 'Availability' topic to MQTT connection
2024-10-06 17:19:31 +02:00
Nicolas Hennion b2a2a96292
Merge pull request #2959 from ariel-anieli/plugins-port-alerts
Reduced `get_web_alert` & `get_ports_alert`
2024-10-06 17:17:38 +02:00
nicolargo 65abadfe00 Remove default conf (column def) from the config file 2024-10-06 17:16:16 +02:00
Github GPG acces 2af34b3069
Add 'Availability' topic to MQTT connection
Addition of the 'availability' topic: Online or Offline when using the --export MQTT option in the case where other devices on the same broker are looking for our Glances instance
2024-10-06 15:12:45 +02:00
Ariel Otilibili f8fe7e2d64 Reduced `get_web_alert` & `get_ports_alert`
* sequel of cbd166bf0baef31650f67cda4f357c8f4de38064; part of #2801
* `get_web_alert` & `get_ports_alert` rely on `get_p_alert`
* each needs an helper: if `get_web_alert`, the helper is `get_conds_if_url`
* if `get_ports_alert`, it is `get_conds_if_port`
* `get_p_alert` uses the helper with `get_default_ret_value`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-06 12:01:51 +02:00
nicolargo 10cc1dbe82 Merge branch 'issue1289' into develop 2024-10-06 11:20:25 +02:00
nicolargo 56d7801afb Feature request: make the central client UI configurable (example: GPU status) #1289 2024-10-06 11:20:12 +02:00
Nicolas Hennion 6e485a2bad
Merge pull request #2957 from ariel-anieli/plugin-port-msg
Fixed typos, refactored  `glances.plugins.ports.PluginModel.msg_curse()`
2024-10-05 13:06:35 +02:00
nicolargo f27c39c74a Update docs 2024-10-05 13:03:40 +02:00
nicolargo 612615bc79 Merge branch 'issue2914' into develop 2024-10-05 13:01:55 +02:00
nicolargo 3a860dd4c2 Merge branch 'develop' into issue2914 2024-10-05 13:01:38 +02:00
nicolargo e2d3179c43 Help also done 2024-10-05 13:00:46 +02:00
Ariel Otilibili cbd166bf0b Refactored `glances.plugins.ports.PluginModel.msg_curse()`
Part of #2801.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-04 21:43:25 +02:00
Ariel Otilibili 3ede32a359 Fixed typos
```
$ git grep 'emptu' | awk -F: '{print $1}' | xargs -I {} sed -ie 's/emptu/empty/' {}; echo $?
0
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-04 20:20:12 +02:00
Nicolas Hennion 7ab8a39846
Merge pull request #2954 from ariel-anieli/makefile
Refactored `webui*` rules
2024-10-02 15:05:54 +02:00
nicolargo 3f97874c63 Almost ok 2024-09-29 18:52:42 +02:00
nicolargo 2e1abd3986 Docne for containers and processlist and amps 2024-09-28 18:28:10 +02:00
Ariel Otilibili dec419f443 Refactored `webui*` rules
* part of #2906
* output is unchanged.

```
$ git log --oneline -n1 --pretty=short
commit f2f97e2f (HEAD -> makefile)
Author: Ariel Otilibili <otilibil@eurecom.fr>

    Refactored `webui*` rules

$ make webui -n >> /tmp/makefile; echo $?
0

$ make webui-audit -n >> /tmp/makefile; echo $?
0

$ make webui-audit-fix -n >> /tmp/makefile; echo $?
0

$ git switch develop
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.

$ git log --oneline -n1 --pretty=short
commit 24c87253 (HEAD -> develop, origin/develop, origin/HEAD)
Merge: 42af55b3 fa7fc5bd
Author: Nicolas Hennion <nicolashennion@gmail.com>

    Merge pull request #2941 from ariel-anieli/refactor-alert

$ make webui -n >> /tmp/develop; echo $?
0

$ make webui-audit -n >> /tmp/develop; echo $?
0

$ make webui-audit-fix -n >> /tmp/develop; echo $?
0

$ diff /tmp/develop /tmp/makefile; echo $?
0
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-09-23 22:47:56 +02:00
Nicolas Hennion 24c8725359
Merge pull request #2941 from ariel-anieli/refactor-alert
Refactorized alert plugin
2024-09-23 14:19:27 +02:00
Nicolas Hennion 42af55b317
Merge pull request #2950 from ariel-anieli/revert-commit-01823df9
Refactorized `_GlancesCurses.display_plugin()`, version 2
2024-09-23 14:16:46 +02:00
nicolargo 7fee42f940 Top bar is ok 2024-09-22 10:15:26 +02:00
Ariel Otilibili 4bcbc12cea Refactorized `_GlancesCurses.display_plugin()`, version 2
Part of #2801. Broken down using:

1. `setup_upper_left_pos`
2. `get_next_x_and_x_max`
3. `display_stats_with_current_size`
4. `display_stats`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-09-17 18:55:48 +02:00
Ariel Otilibili 400013bb4a Revert "Refactorized `_GlancesCurses.display_plugin()`"
* reverted commit 01823df917
* that commit introduced #2949.
2024-09-16 20:10:35 +02:00
nicolargo 61480109d6 Migration to Table bootstrap is on going 2024-09-16 08:05:32 +02:00
nicolargo ccda282bbf Build ok but CSS style is a mess 2024-09-14 16:23:18 +02:00
Ariel Otilibili fa7fc5bdcd Refactorized alert plugin
* closes #2416
* `msg_curse` calls `loop_over_alert`
* `loop_over_alert` loops each alert with:

    1. `add_new_line`
    2. `add_start_time`
    3. `add_duration`
    4. `add_infos`
    5. `add_min_mean_max`
    6. `add_top_proc`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-09-14 12:40:53 +02:00
nicolargo 75fdc8f46e Remove test 2024-09-14 09:54:10 +02:00
nicolargo 10c98f6fda Merge branch 'issue2939' into develop 2024-09-14 09:53:09 +02:00
nicolargo 7d3904e89f The Web interface ignores the strftime_format parameter #2939 2024-09-14 09:52:51 +02:00
Nicolas Hennion a1cb3630b8
Merge pull request #2932 from ariel-anieli/refactorize-display-plugin
Refactorized `_GlancesCurses.display_plugin()`
2024-09-14 09:42:02 +02:00
Ariel Otilibili 01823df917 Refactorized `_GlancesCurses.display_plugin()`
Part of #2801. The flow is the same. Used as helpers:

    1. `self.set_upper_left_pos`
    2. `self.goto_next_and_ret_first_col`
    3. `self.check_opt_and_add`
    4. `self.x_overbound`
    5. `self.y_overbound`
    6. `self.display_msg`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-09-13 10:36:24 +02:00
nicolargo b9843a1d8c Merge branch 'issue2929' into develop 2024-09-08 19:17:30 +02:00
nicolargo 36755ba4be Show only active Disk I/O (and network interface) #2929 2024-09-08 19:17:07 +02:00
RazCrimson a3895e49b6
Merge pull request #2938 from nicolargo/feature/json-serialization-fallbacks
JSON serialization fallbacks on ujson and builtin json lib
2024-09-08 15:37:39 +05:30
RazCrimson e9ae9ff61b chg: globals - datetime serialization support without orjson 2024-09-08 15:26:03 +05:30
RazCrimson 1fa173edbc chg: restful_api - avoid duplicating checks + basic typing 2024-09-08 14:44:49 +05:30
RazCrimson 6dc16e92ea chore: restful_api - remove unused code 2024-09-08 14:44:15 +05:30
RazCrimson 2a5251ca2d chg: restful_api - use internal serialization features 2024-09-08 14:44:15 +05:30
RazCrimson 538013d192 chg: globals - standardize json_dumps return type to bytes 2024-09-08 14:25:26 +05:30
RazCrimson 46054afd22 chg: globals - json lib preference: orjson > ujson > json 2024-09-08 14:25:26 +05:30
RazCrimson adfa85e8ab chore: fix typos 2024-09-08 12:31:24 +05:30
Bharath Vignesh J K 7598fbed54 chg: remove orjson from base requirements.txt 2024-08-28 00:10:23 +05:30
Bharath Vignesh J K 1e278fa2cb chg: make orjson optional 2024-08-28 00:10:13 +05:30
nicolargo 92de3be0a1 Stick FastAPI version to 0.82.0 or higher (latest is better) - Related to #2926 2024-08-26 17:20:05 +02:00
nicolargo 9432d9361e Improve user message when Glances WebUI/RestAPI is ran 2024-08-24 15:53:20 +02:00
nicolargo 76478959cc Correct issue in Makefile 2024-08-24 09:32:01 +02:00
Nicolas Hennion 37457ed892
Merge pull request #2924 from ariel-anieli/makefile
Refactorized rules targetting `profiling-*` & `memory-profiling`
2024-08-24 09:12:47 +02:00
RazCrimson 2493a1929f
Merge pull request #2925 from nicolargo/standardize-history-display-timestamp
chg: alerts - standardise history display timings
2024-08-19 00:04:18 +05:30
Bharath Vignesh J K 16d56109c8 chg: alerts - standardise history display timings 2024-08-19 00:01:59 +05:30
Ariel Otilibili 962ea850ed Refactorized rules targetting `profiling-*` & `memory-profiling`
Part of #2906:

* `profiling-*` share the same start banner
* used `OUT_DIR` for static outputs
* `TIMES` controls the number of iterations.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-18 15:26:21 +02:00
RazCrimson 74a8b0bf34
Merge pull request #2923 from nicolargo/fix-typing-issues-for-py38-compatibility
fix: typing - compatibility with py3.8
2024-08-18 14:27:57 +05:30
Bharath Vignesh J K 73ff388400 fix: typing - compatibility with py3.8
closes #2922
2024-08-18 14:25:50 +05:30
nicolargo d9fc2ca231 Update snap configuration 2024-08-18 10:20:11 +02:00
Nicolas Hennion 504cf0613f
Merge pull request #2919 from ariel-anieli/refactor-plugin-model-msg-curse
Refactorized `glances.plugins.containers.PluginModel.msg_curse()`
2024-08-18 09:36:25 +02:00
Ariel Otilibili fa6d46c0c1 Refactorized `glances.plugins.containers.PluginModel.msg_curse()`
Part of #2801. Broken down in:

* `build_title`
* `build_header`
* on each container, `build_data_line` calls `build_container_data`.

`build_container_data` does for a container:

* `maybe_add_engine_name_or_pod_name`
* `build_container_name`
* `build_status_name`
* `build_uptime_line`
* `build_cpu_line`
* `build_memory_line`
* `build_io_line`
* `build_net_line`
* `build_cmd_line`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-17 23:53:46 +02:00
nicolargo c9525b8a5a Manage the all option (in the Vms plugin) 2024-08-16 09:49:11 +02:00
nicolargo 8e4b9d9215 Only display VMs with a running status (in the Vms plugin) 2024-08-16 09:43:26 +02:00
nicolargo 6fa969adf4 api/4/vms returns a dict, thus breaking make test-restful #2918 2024-08-16 09:25:37 +02:00
nicolargo fbca700562 Disable Webui audit fix in the CI, 2024-08-11 18:45:21 +02:00
Nicolas Hennion c0aa754ebc
Merge pull request #2917 from ariel-anieli/makefile
Used patterns for rules targetting `venv`, `venv-python`, `venv-upgrade`
2024-08-11 18:28:09 +02:00
Nicolas Hennion fcbee3518c
Merge pull request #2915 from ariel-anieli/refactor-process-thread
Reduced complexity of `PluginModel.__msg_curse_extended_process_thread()`
2024-08-11 18:27:06 +02:00
Ariel Otilibili 13079a606b Used patterns rules in `venv`, `venv-python`, & `venv-python`
* `venv-*-python` relies on the pattern `venv-%-python`
* `venv-(full|min|dev)` & `venv-*-upgrade` on `venv-%`
* macros `UPGRADE`, `PRE_COMMIT`, `VIRTUAL_ENV`, & `REQS` are rule switches
* `VIRTUAL_ENV` being evaluated at runtime from `DEFINE_VARS_FOR_TYPE`
* `make help` is unchanged.

```
$ make venv -n
virtualenv -p /usr/bin/python3 venv
virtualenv -p /usr/bin/python3 venv-min
virtualenv -p /usr/bin/python3 venv-dev
venv/bin/pip install  -r requirements.txt;  venv/bin/pip install  -r optional-requirements.txt;
venv-min/bin/pip install  -r requirements.txt;
venv-dev/bin/pip install  -r dev-requirements.txt;  venv-dev/bin/pip install  -r doc-requirements.txt;
venv-dev/bin/pre-commit install --hook-type pre-commit

$ make venv-python -n
virtualenv -p /usr/bin/python3 venv
virtualenv -p /usr/bin/python3 venv-min
virtualenv -p /usr/bin/python3 venv-dev

$ make venv-upgrade -n
venv/bin/install install --upgrade pip
venv/bin/pip install --upgrade -r requirements.txt;  venv/bin/pip install --upgrade -r optional-requirements.txt;
venv-min/bin/install install --upgrade pip
venv-min/bin/pip install --upgrade -r requirements.txt;
venv-dev/bin/install install --upgrade pip
venv-dev/bin/pip install --upgrade -r dev-requirements.txt;  venv-dev/bin/pip install --upgrade -r doc-requirements.txt;
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-11 17:45:21 +02:00
Ariel Otilibili feac10a84d Renamed macros in Makefile
* `s/VENV/venv_full/; s/VENV_MIN/venv_min/; s/VENV_DEV/venv_dev/;`
* useful in subsequent changes

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-11 17:40:27 +02:00
Ariel Otilibili 916aabcfd9 Reduced complexity of `PluginModel.__msg_curse_extended_process_thread()`
Part of #2801. `ret` goes through these steps:

* `add_title_line`
* `add_cpu_line`
* `maybe_add_cpu_affinity_line`
* `maybe_add_ionice_line`
* `add_memory_line`
* `add_io_and_network_lines`
* `append_newlines`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-11 12:23:41 +02:00
nicolargo 9c09d6b4a4 url_prefix do not work in Glances < 4.2.0 - Correct issue with mount #2912 2024-08-10 14:58:59 +02:00
Nicolas Hennion 7f049669fb
Merge pull request #2913 from ariel-anieli/makefile
Renamed variables in `Makefile`; rules targetting `docker-*` are now built at runtime
2024-08-10 11:32:28 +02:00
nicolargo 0003768bb8 url_prefix do not work in Glances < 4.2.0 #2912 2024-08-10 10:18:49 +02:00
Ariel Otilibili a37010929d Rules targetting `docker-*` are now built at runtime
* removed the macros `DOCKERFILE`, `TARGET`, & `DOCKER_TAG`
* introduced the macro `MAKE_DOCKER_BUILD_RULES`
* at runtime, `docker-*` are built from the `DISTROS` list: done using `eval` [1]
* `make help` is unchanged:

```
$ make | grep '\sdocker-'
make docker-alpine                                       Generate local docker images (Alpine)
make docker-alpine-dev                                   Generate local docker image (Alpine dev)
make docker-alpine-full                                  Generate local docker image (Alpine full)
make docker-alpine-minimal                               Generate local docker image (Alpine minimal)
make docker-ubuntu                                       Generate local docker images (Ubuntu)
make docker-ubuntu-dev                                   Generate local docker image (Ubuntu dev)
make docker-ubuntu-full                                  Generate local docker image (Ubuntu full)
make docker-ubuntu-minimal                               Generate local docker image (Ubuntu minimal)

$ make docker -n
docker buildx build --target full -f docker-files/alpine.Dockerfile -t glances:local-alpine-full .
docker buildx build --target minimal -f docker-files/alpine.Dockerfile -t glances:local-alpine-minimal .
docker buildx build --target dev -f docker-files/alpine.Dockerfile -t glances:local-alpine-dev .
docker buildx build --target full -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-full .
docker buildx build --target minimal -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-minimal .
docker buildx build --target dev -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-dev .
```

[1] https://www.gnu.org/software/make/manual/html_node/Eval-Function.html

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-10 09:23:37 +02:00
Ariel Otilibili ddfcf46dee Renamed variables in `Makefile`; introduced the variable `DISTROS`
* needed for subsequent changes in `Makefile`
* `s/ALPINE_IMAGES/alpine_images/; s/UBUNTU_IMAGES/ubuntu_images/`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-10 09:17:30 +02:00
Nicolas Hennion 69290ee405
Merge pull request #2910 from ariel-anieli/makefile
Refactorized `Makefile` by using pattern rules
2024-08-09 17:21:50 +02:00
Nicolas Hennion e40aa05e8a
Merge pull request #2900 from ariel-anieli/issue-2801-catch-key
Reduced complexity of `_GlancesCurses.__catch_key()`
2024-08-09 17:15:53 +02:00
Ariel Otilibili f5c2d8ce36 Used pattern for rules targetting `run-docker-*`
`make help` & `make run-docker-*` are unchanged:

```
$ make | grep run-docker
make run-docker-alpine-dev                               Start Glances Alpine Docker dev in console mode
make run-docker-alpine-full                              Start Glances Alpine Docker full in console mode
make run-docker-alpine-minimal                           Start Glances Alpine Docker minimal in console mode
make run-docker-ubuntu-dev                               Start Glances Ubuntu Docker dev in console mode
make run-docker-ubuntu-full                              Start Glances Ubuntu Docker full in console mode
make run-docker-ubuntu-minimal                           Start Glances Ubuntu Docker minimal in console mode

$ make run-docker-alpine-minimal -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-alpine-minimal

$ make run-docker-alpine-full -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-alpine-full

$ make run-docker-alpine-dev -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-alpine-dev

$ make run-docker-ubuntu-dev -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-ubuntu-dev

$ make run-docker-ubuntu-full -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-ubuntu-full

$ make run-docker-ubuntu-minimal -n
docker run --rm -e TZ="" -e GLANCES_OPT="" --pid host --network host -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -it glances:local-ubuntu-minimal
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 12:28:58 +02:00
Ariel Otilibili 516c99e496 Used pattern for rules targetting `docker-*`
`make help` & `make docker-*` are unchanged:

```
$ make | grep -P '\sdocker-'
make docker-alpine                                       Generate local docker images (Alpine)
make docker-alpine-dev                                   Generate local docker image (Alpine dev)
make docker-alpine-full                                  Generate local docker image (Alpine full)
make docker-alpine-minimal                               Generate local docker image (Alpine minimal)
make docker-ubuntu                                       Generate local docker images (Ubuntu)
make docker-ubuntu-dev                                   Generate local docker image (Ubuntu dev)
make docker-ubuntu-full                                  Generate local docker image (Ubuntu full)
make docker-ubuntu-minimal                               Generate local docker image (Ubuntu minimal)

$ make docker-alpine -n
docker buildx build --target full -f docker-files/alpine.Dockerfile -t glances:local-alpine-full .
docker buildx build --target minimal -f docker-files/alpine.Dockerfile -t glances:local-alpine-minimal .
docker buildx build --target dev -f docker-files/alpine.Dockerfile -t glances:local-alpine-dev .

$ make docker-ubuntu -n
docker buildx build --target full -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-full .
docker buildx build --target minimal -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-minimal .
docker buildx build --target dev -f docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-dev .
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 12:28:58 +02:00
Ariel Otilibili 1fef2594d2 Used pattern for rules targetting `test-*`
`make help` & `make test-*` are unchanged:

```
$ make | grep test
make test                                                Run unit tests
make test-core                                           Run core unit tests
make test-min                                            Run core unit tests in minimal environment
make test-min-with-upgrade                               Upgrade deps and run unit tests in minimal environment
make test-restful                                        Run Restful unit tests
make test-with-upgrade                                   Upgrade deps and run unit tests
make test-xmlrpc                                         Run XMLRPC unit tests

$ make test -n
venv/bin/python unittest-core.py
venv/bin/python unittest-restful.py
venv/bin/python unittest-xmlrpc.py
```

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 12:28:51 +02:00
RazCrimson c5f06b3847
Merge pull request #2911 from nicolargo/2908-raid-plugin-breaks-with-inactive-raid0-arrays
fix: plugin (raid) - Show degradation only when stats are available
2024-08-08 07:58:57 +05:30
Bharath Vignesh J K 16e5bb2023 fix: plugin (raid) - Show degradation only when stats are available
fixes #2908
2024-08-08 07:58:17 +05:30
RazCrimson 69f4a5fe24
Merge pull request #2907 from ariel-anieli/refactorize-makefile
Refactorize `Makefile`
2024-08-07 18:40:39 +05:30
Ariel Otilibili 0804d06c0b Refactorized `make flatpak`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili b03ea17a5f Refactorized the rules targetting `docker-*`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 6910e61bde Refactorized `make semgrep`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili a6fdc098b9 Refactorized the rules targetting `docs-*`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 313612333c Refactorized `trace-malloc` and the rules targetting `memory-*`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili cad29145f1 Refactorized the rules targetting `profiling-*`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 4dba2f13ad Refactorized `format`, `lint`, & `codespell` rules
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili c171d7604e Refactorized the rules targetting `test*`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 658e318fd7 Refactorized the rules targetting `venv-*`
Addressed `venv-full-*`, `venv-min-*`, & `venv-dev-*`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 76cd7e63e2 Refactorized `make help`
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili 020fe7a0b2 Placed phony targets under the same rule
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Ariel Otilibili c96c778883 Refactorized the rules targetting `run*`
* refactorized the rules targetting `run*`
* set up variables for subsequent refactorizations.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-07 07:37:48 +02:00
Bharath Vignesh J K 4dd732b4d1 chg: deps - cap pysnmp-lextudio ro 6.1.* until migration to async API
Issue tracked at #2874
2024-08-07 07:42:44 +05:30
Bharath Vignesh J K a7402b1e94 Revert "chg: curses - change colors for some LOG styles"
This reverts commit 5ef7238298.
2024-08-07 07:33:58 +05:30
Ariel Otilibili 7c45563991 Fixed typo in API documentation
Found with `make codespell`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-06 20:47:32 +02:00
RazCrimson 99ba0d0a84
Merge pull request #2903 from nicolargo/2882-make-fields-labelled-in-green-easier-to-see
chg: curses - change colors for some LOG styles
2024-07-30 23:51:56 +05:30
Bharath Vignesh J K 5ef7238298 chg: curses - change colors for some LOG styles
fix #2882
2024-07-30 23:50:27 +05:30
Ariel Otilibili 1b199ada75 Reduced complexity of `_GlancesCurses.__catch_key()`
Part of #2801. Broken down `__catch_key` in two parts:

* `catch_actions_from_hotkey`
* `catch_other_actions_maybe_return_to_browser`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-07-27 16:49:31 +02:00
nicolargo e03632459b Add VMs to unittest 2024-07-27 08:21:43 +02:00
Ariel Otilibili 98e8e32457 Reduced complexity of `unittest-core.TestGlances._common_plugin_tests()`
Part of #2801. Common tests follows the flow:

* `reset_stats_history_and_views`
* `do_checks_before_update`
* add first element with `update_stats`
* `check_stats`
* `filter_stats`
* add second element `update_stats`
* `chk_hist_maybe_add_third_elem`
* `check_views`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-07-27 02:09:49 +02:00
nicolargo 81a529dbad Crash when terminal is resized #2872 2024-07-26 11:30:53 +02:00
nicolargo 52a129a3e8 Migration to Alpine 3.20 and Python 3.12 for Alpine Docker 2024-07-26 11:03:38 +02:00
nicolargo aacc12df45 Correct linter issue https://github.com/nicolargo/glances/actions/runs/10108117146/job/27953472522 - Related to PR #2891 2024-07-26 10:46:04 +02:00
nicolargo 2b30c9986f Add VMs section (disabled by default) in the Docker glances.conf file 2024-07-26 10:20:47 +02:00
Nicolas Hennion fbd0eee5c4
Merge pull request #2891 from ariel-anieli/issue-2801-plugin-msg-curse
Reduced complexity of `glances.plugins.percpu.PluginModel.msg_curse()`
2024-07-26 10:18:24 +02:00
Ariel Otilibili 6059b9ab42 Reduced complexity of `glances.plugins.percpu.PluginModel.msg_curse()`
Part of #2801. Broken `msg_curse`: if no stats returns empty list, else:

1. `define_headers_from_os`
2. `maybe_build_string_msg`
3. `display_cpu_stats_per_line`
4. `manage_max_cpu_to_display`
5. Then, for CPU:
   * `display_cpu_header_in_columns`
   * `display_cpu_stats_in_columns`
6. Hence, `summarize_all_cpus_not_displayed`

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-07-25 00:14:48 +02:00
nicolargo e38e2ce831 beta04 2024-07-24 15:53:30 +02:00
nicolargo d10b4bdc71 Reformat file with Ruff 2024-07-24 15:52:04 +02:00
nicolargo 80d07615f4 Merge branch 'issue2252' into develop 2024-07-24 15:47:36 +02:00
nicolargo 81f6ec03b4 Merge branch 'develop' into issue2252 2024-07-24 15:47:12 +02:00
Nicolas Hennion 1153d18a37
Merge pull request #2884 from ariel-anieli/issue-2801-plugin-update
Reduced complexity of `glances.plugins.system.PluginModel.update()`
2024-07-24 15:45:31 +02:00
nicolargo 0950e407a7 Catch error when Glances stop 2024-07-24 15:31:55 +02:00
nicolargo 5ed876423f WebUI is OK, had to manage the error when Glances stop, see Github issue #2252 for detail 2024-07-24 11:32:57 +02:00
nicolargo 9d76bfeb3e First version of the Curses UI, miss engine name 2024-07-23 19:34:12 +02:00
Ariel Otilibili 881017e63b Reduced complexity of `glances.plugins.system.PluginModel.update()`
Part of #2801. Broke `update` in two parts:

* if `local`, stats taken from `get_stats_from_std_sys_lib`
* and readability achieved by `add_human_readable_name`
* else if `snmp`, taken from `update_stats_with_snmp`.

`get_stats_from_std_sys_lib` has two helpers:

1. `get_win_version_and_platform`.
2. `get_linux_version_and_distro`.

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-07-22 22:22:48 +02:00
nicolargo 6b036ec0ac Refactor colors Class for Curses UI 2024-07-21 19:16:33 +02:00
RazCrimson e086625f1a
Merge pull request #2877 from Neved4/medium-line
fix: Use `ncurses` dedicated functions for the separator line
2024-07-16 01:06:38 +05:30
Neveda bfdf899615 refactor: Simplify `separator_line()` logic 2024-07-15 13:43:23 +02:00
Neveda e1e3ca9c8a fix: Use `self.term_window.hline()` and `curses.ACS_HLINE` for the separator line 2024-07-15 12:36:03 +02:00
Nicolas Hennion 413df02728
Merge pull request #2873 from ey-jo/fix-docs-path
Corrected path in docs for docker
2024-07-11 16:31:15 +02:00
ey-jo be83a0f735 changing path in docs for docker 2024-07-11 15:13:25 +01:00
RazCrimson 166e6df373
Merge pull request #2867 from Neved4/medium-line
Replace `U+23AF` with `U+2500` for splitlines
2024-07-11 11:29:50 +05:30
Neveda c86f01b7a1 Replace `U+23AF` with `U+2500` 2024-07-11 00:01:42 +02:00
Nicolas Hennion 363a66c263 UodateSnapcraft 2024-07-08 08:54:40 +00:00
nicolargo f603e8412c Add another connector to snap 2024-07-07 18:47:46 +02:00
nicolargo 6f7a09686c Check if server name is not null in the Glances browser - Related to #2861 2024-07-06 08:30:02 +02:00
nicolargo 18bade9edf On the raod again again 2024-07-03 19:50:23 +02:00
nicolargo cc9054d082 Merge branch 'develop' 2024-07-03 19:47:18 +02:00
nicolargo ca41d09845 Glances 4.1.2 2024-07-03 19:47:05 +02:00
nicolargo f8aa98bac7 Glances 4.1.2 2024-07-03 19:43:45 +02:00
nicolargo 90f4934c62 Glances 4.1.2 2024-07-03 19:41:40 +02:00
Bharath Vignesh J K fd99c8008d chore: version patch update for a quick test pypi upload 2024-07-03 17:27:36 +05:30
Bharath Vignesh J K 6af2340c5c chg: plugin(percpu) - show times based on host OS 2024-07-01 10:27:33 +05:30
RazCrimson 46abd4b4c9
Merge pull request #2860 from nicolargo/2859-glances-411-on-windows-attributeerror-cpupercent-object-has-no-attribute-cpu_percent
fix: cpu_percent - initialization timer bugs
2024-07-01 09:33:57 +05:30
Bharath Vignesh J K 2801add7e2 fix: cpu_percent - initialization timer bugs
fixes #2859
2024-07-01 09:33:05 +05:30
nicolargo 9b853d857b Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-06-30 10:18:29 +02:00
Bharath Vignesh J K 99e65079a0 chg: plugin(docker) - add some typing 2024-06-30 03:52:09 +05:30
Bharath Vignesh J K 0e1d462c69 chg: exports (influxdb) - log warning message if export fails 2024-06-30 01:33:51 +05:30
nicolargo f4c7ca01fe Correct codespell 2024-06-29 19:19:26 +02:00
nicolargo 60591630df Improve lisibility of OK_LOG 2024-06-29 19:01:25 +02:00
nicolargo 48103f167e Only test latest Python version on MacOS 2024-06-29 16:43:47 +02:00
nicolargo 154ae8e610 On the road (again) to Glances 4.2.0 2024-06-29 16:36:22 +02:00
nicolargo 1826f07fb3 Glances 4.1.1 2024-06-29 16:32:42 +02:00
nicolargo 86c2cd1d4a Glances 4.1.1 2024-06-29 16:28:50 +02:00
nicolargo 452fd6497e Sensors data is not exported using InfluxDB2 exporter #2856 2024-06-29 16:03:27 +02:00
nicolargo ccfd8f0aa9 On the road of Glances 4.2.0 2024-06-29 10:01:07 +02:00
nicolargo d91bfa2f8b Update docs 2024-06-29 09:55:33 +02:00
nicolargo afa1da59d1 Merge branch 'develop' 2024-06-29 09:54:13 +02:00
nicolargo 582ca07716 Glances 4.1.0 2024-06-29 09:49:36 +02:00
Nicolas Hennion 036eb976e9
Merge pull request #2854 from CognitiveDisson/patch-1
Remove duplicate line from the README file
2024-06-27 06:37:58 +02:00
Vadim Smal 2c5a1150bd
Remove duplicate line from the README file 2024-06-26 23:35:37 +01:00
nicolargo f6066e5d46 PsUtil 6+ no longer check PID reused #2755 2024-06-26 18:56:31 +02:00
nicolargo cff2e9fc4a Call process_iter.clear_cache() (PsUtil 6+) when Glances user force a refresh (F5 or CTRL-R) #2753 2024-06-26 18:36:10 +02:00
nicolargo e5d5351d31 Add cpu model for CPU info (Raspberry PI 5) 2024-06-26 18:12:56 +02:00
nicolargo be89ee0025 Merge remote-tracking branch 'origin/2616-raspberry-pi-cpu-info-is-not-correct' into develop 2024-06-26 18:10:00 +02:00
nicolargo f4cd350221 Update Security messag 2024-06-23 10:50:35 +02:00
nicolargo 3928007169 Merge branch 'issue2849' into develop 2024-06-23 10:23:10 +02:00
nicolargo eebd769c46 perCPU and CPU consumption display time to time a total of 100% #2849 2024-06-23 10:22:37 +02:00
nicolargo 2ee3c86e2b Graph export is broken if there is no graph section in Glances configuration file #2839 2024-06-22 10:37:00 +02:00
nicolargo f5ecbf7a1f Merge branch 'clean-fs-plugin-code' into develop 2024-06-22 10:23:55 +02:00
nicolargo 267e7e2ff0 Clean FS Plugin code 2024-06-22 10:23:37 +02:00
Bharath Vignesh J K 1e2e36af23 chg: cpu_percent - support CPU Name for Raspberry Pi
fixes #2616
2024-06-22 02:32:20 +05:30
Continuous Integration c153e71aa3 Continuous Integration Build Artifacts 2024-06-18 00:13:48 +00:00
RazCrimson f9915d93e8
Merge pull request #2842 from nicolargo/2841-glances-api-status-check-returns-error-405-method-not-allowed
fix: RESTful API - HEAD request not supported on `{version}/status` as mentioned in docs
2024-06-18 05:38:14 +05:30
Bharath Vignesh J K 69c3a948ba fix: RESTful API - HEAD request not supported on `{version}/status` as mentioned in docs
fixes #2841
2024-06-18 05:36:18 +05:30
Nicolas Hennion 8c520e1d94
Update network.rst
Correct alias example
2024-06-17 13:40:11 +02:00
Nicolas Hennion 1edaed52de
Update doc-requirements.txt
Add defusedxml
2024-06-17 13:36:17 +02:00
Nicolas Hennion 752bd40a04
Update doc-requirements.txt
Add PsUutl as a requirement to generate doc.
https://readthedocs.org/projects/glances/builds/24710902/
2024-06-17 13:34:13 +02:00
nicolargo fce3aac34e Add .redthedocs.yaml configuration file 2024-06-16 22:46:36 +02:00
nicolargo 9c482196f3 Add .redthedocs.yaml configuration file 2024-06-16 22:43:55 +02:00
nicolargo 3beb08b66e Merge branch 'issue977' into develop 2024-06-16 17:06:11 +02:00
nicolargo 0874e13f1d Enhance Glances browser color #977 2024-06-16 17:05:53 +02:00
Bharath Vignesh J K 8b4ef8c235 fix: containers (podman) - handle dead infra container with active children 2024-06-16 06:25:46 +05:30
RazCrimson 993ef0107a
Merge pull request #2834 from nicolargo/2827-dont-display-rootless-podman-containers-keyerror
fix: containers (podman) - missing support for rootless mode
2024-06-16 06:11:45 +05:30
Bharath Vignesh J K 0bdda36143 fix: containers (podman) - missing support for rootless mode 2024-06-16 06:04:13 +05:30
nicolargo 7cffdcbff7 Add needs contributor workflow to Github actions 2024-06-15 09:44:05 +02:00
nicolargo 986c865718 Add inactive issues workflow to Github actions 2024-06-15 09:40:14 +02:00
nicolargo 0227d221da [snap] PermissionError: [Errno 13] Permission denied: '/proc/net/wireless' #2829 2024-06-15 08:42:32 +02:00
Continuous Integration 3f39522487 Continuous Integration Build Artifacts 2024-06-15 00:26:00 +00:00
RazCrimson 78b4518547
Merge pull request #2832 from nicolargo/2831-j-hot-key-crashs-glances
fix: plugin (processlist) - failure on programs view
2024-06-15 05:49:58 +05:30
Bharath Vignesh J K ea4ce83d83 fix: plugin (processlist) - failure on programs view
#2831
2024-06-15 05:42:12 +05:30
nicolargo 051006e12f test test_107_fs_plugin_method fails on aarch64-linux #2819 2024-06-09 17:40:28 +02:00
nicolargo 4862264a2a Update bug report template 2024-06-09 17:27:51 +02:00
nicolargo 0791c7e9da --export-process-filter Filter using complete command #2824 2024-06-09 15:17:01 +02:00
nicolargo 12dafcf856 Exception when Glances is ran with limited plugin list #2822 2024-06-09 10:30:34 +02:00
nicolargo 4b071403da Disable separator option do not work... #2823 2024-06-09 10:08:16 +02:00
nicolargo a6b7de8a4b API: Network module is disabled but appears in endpoint all (Glances v4 regression) #2815 2024-06-08 19:30:09 +02:00
nicolargo e371c8f39d API is not compatible with requests containing spcial/encoding char #2820 2024-06-08 18:52:30 +02:00
nicolargo 810b0ec488 Remove some breaking test 2024-06-08 18:02:53 +02:00
nicolargo f224cab225 Impoprove unittest 2024-06-08 17:50:42 +02:00
nicolargo 9b0d0a7ff0 Get back to Glances 4.1.0 2024-06-08 10:29:57 +02:00
nicolargo 1832655793 Glances 4.0.8 - Update release note 2024-06-08 10:27:31 +02:00
nicolargo af06652fa1 Glances 4.0.8 - Update release note 2024-06-08 10:26:19 +02:00
nicolargo bf3bb6a7e8 Glances 4.0.8 2024-06-08 10:25:45 +02:00
nicolargo 8d3b3691e5 Add release note for Glances 4.0.8 2024-06-08 10:19:49 +02:00
nicolargo 13e2f73738 Merge branch 'secureamps' into develop 2024-06-01 18:33:11 +02:00
nicolargo 6077bb4a55 [BREAKING CHANGE in conf file] Secure call to AMPS, use && as commend separator instead of ; 2024-06-01 18:32:51 +02:00
nicolargo 5ad9e89658 Optimize 2024-06-01 18:08:46 +02:00
nicolargo 65f84fd1e9 Raspberry PI - CPU info is not correct #2616 2024-06-01 17:49:22 +02:00
nicolargo b2e5cb58c4 Reduce code complexity #2801 2024-06-01 17:28:52 +02:00
nicolargo 4a60e826b5 Merge branch 'issue2799' into develop 2024-06-01 11:03:24 +02:00
nicolargo d0de547e41 Add support for automatically hiding network interfaces that are down or that don't have any IP addresses #2799 2024-06-01 11:02:58 +02:00
nicolargo d00be34255 Merge branch 'issue2812' into develop 2024-06-01 10:39:34 +02:00
nicolargo 6410ccab9b Make CORS option configurable #2812 2024-06-01 10:38:40 +02:00
nicolargo 350318fb6e Put * in default CORS configuration. Related to discussion #2802 2024-05-29 17:44:24 +02:00
nicolargo 5a78e72419 Optimize Glances configuration file path search 2024-05-28 13:49:11 +02:00
nicolargo 2379ec6b55 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-05-28 13:31:38 +02:00
nicolargo a55970af83 When Glances is installed via venv, default configuration file is not used #2803 2024-05-28 13:31:22 +02:00
Nicolas Hennion 273a405a10
Update README.rst
Remove py-cpuinfo
2024-05-27 15:04:08 +02:00
nicolargo c187c14b5f Update NEWS file 2024-05-25 16:18:53 +02:00
nicolargo b1b8ea6966 version 4.0.7 2024-05-25 16:12:53 +02:00
Bharath Vignesh J K ad604c1dc5 fix: plugin(sensors) - serialization bug with raw stats 2024-05-25 16:03:14 +02:00
nicolargo a06737c177 cpu_hz_current not available on NetBSD #2792 2024-05-25 16:02:10 +02:00
nicolargo a129c1b337 GET /1272f6e9e8f9d6bfd6de.png results in 404 #2781 2024-05-25 15:45:34 +02:00
nicolargo e5e5cf4c01 cpu_hz_current not available on NetBSD #2792 2024-05-25 12:30:10 +02:00
nicolargo 092ecf5cf8 Correct error witj orjson version: use the latest one 2024-05-25 12:15:38 +02:00
nicolargo 9c446bf8ce version 4.0.6 2024-05-25 12:08:42 +02:00
nicolargo 52f354d5a0 No GPU info on Web View #2796 2024-05-25 12:03:25 +02:00
nicolargo 4b48304324 Merge branch 'issue2796' into develop 2024-05-25 12:02:40 +02:00
nicolargo 79d9aa742b No GPU info on Web View #2796 2024-05-25 12:01:40 +02:00
nicolargo 8d6fabc510 Retire ujson for being in maintenance mode #2791 2024-05-25 10:03:39 +02:00
nicolargo 23cd99d11e Merge branch 'develop' into issue2791 2024-05-25 10:03:21 +02:00
nicolargo 6d2ecf5cf0 Change client and browser call 2024-05-25 10:02:35 +02:00
nicolargo c61d10bec7 Unittest OK 2024-05-25 09:42:02 +02:00
nicolargo 60d6be1718 Better 2024-05-20 19:35:56 +02:00
Bharath Vignesh J K 9ab3199e13 fix: build workflow - missing scope on `cache-from` 2024-05-19 09:37:53 +05:30
Bharath Vignesh J K f6ddc5cf49 chg: build workflow - use scope to prevent multiple os caches from overwriting each other 2024-05-19 08:40:37 +05:30
Bharath Vignesh J K c5ea3d292c chg: build workflow - use newer cache exporter - gha
Ref: https://docs.docker.com/build/cache/backends
2024-05-19 07:33:44 +05:30
Bharath Vignesh J K e07bacf9a3 chg: build workflow - use latest official docker meta action 2024-05-19 07:22:37 +05:30
Bharath Vignesh J K 6743eea32d chg: requirements.txt(s) - remove unnecessary version constraints
- drop duplicated deps already present in base requirements.txt
2024-05-19 07:01:33 +05:30
Bharath Vignesh J K 53621f413b chg: deps - remove unused deps - scandir & wifi 2024-05-19 06:59:03 +05:30
Bharath Vignesh J K f0fc27f952 chg: pyproject.toml - remove black config 2024-05-19 06:57:11 +05:30
nicolargo ba88263b85 Replace UJson by ORJson - Client/Server do not work anymore 2024-05-18 14:09:30 +02:00
nicolargo b8c6c22bb0 Reformat code 2024-05-18 11:26:08 +02:00
nicolargo d2f1fa10d5 Reformat code 2024-05-18 11:24:54 +02:00
nicolargo 15b0a9bbab Update snapcraft 2024-05-18 11:18:01 +02:00
nicolargo 5d88280ad6 version 4.0.5 2024-05-18 11:10:56 +02:00
nicolargo 1183b4dabd Update docs 2024-05-18 10:58:39 +02:00
nicolargo 74f9606e65 Merge Ruff formating and solve some conflicts #2779 2024-05-18 10:37:57 +02:00
Nicolas Hennion a99bf33b4b
Merge pull request #2779 from nicolargo/ruff-cleanup
chore: ruff cleanup
2024-05-18 10:32:13 +02:00
nicolargo 4f38bf384b Add some comment regarding the minimal Python version and exclude all the venv* folders in the linter configuration 2024-05-18 10:17:47 +02:00
nicolargo 5262524db3 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-05-18 09:32:32 +02:00
RazCrimson 3306fa0118
Merge pull request #2789 from nicolargo/2788-sensortype-change-in-rest-api-breaks-compatibility-in-404
fix: plugin(sensors) - serialization bug with raw stats
2024-05-18 05:01:09 +05:30
Bharath Vignesh J K 30ec25fa0a fix: plugin(sensors) - serialization bug with raw stats 2024-05-18 04:57:47 +05:30
Bharath Vignesh J K 6a0889851c chg: glances client - avoid logging user creds 2024-05-18 01:21:32 +05:30
Bharath Vignesh J K f31b767e0e chg: github-actions to use ruff 2024-05-17 04:41:31 +05:30
Bharath Vignesh J K 14efbac82d chore: remove older lint configs 2024-05-17 04:17:33 +05:30
Bharath Vignesh J K 00c662f870 chg: Makefile - use ruff & pre-commit 2024-05-17 04:13:26 +05:30
Bharath Vignesh J K cd69c4a0e8 chg: ruff - naming
exclude already ignores rules with flake8
2024-05-17 03:58:43 +05:30
Bharath Vignesh J K 28e7e5b74a chg: ruff - flake8-comprehensions 2024-05-17 03:37:24 +05:30
Bharath Vignesh J K 108ffcdfb6 chg: ruff - pyupgrade 2024-05-17 03:37:22 +05:30
Bharath Vignesh J K f9a06a31f0 chg: ruff - mccabe (CC>21) 2024-05-17 03:36:55 +05:30
Bharath Vignesh J K 1f628642d4 fix: auto-removed imports in globals 2024-05-17 03:36:55 +05:30
Bharath Vignesh J K b4c2a4c24a chg: ruff - flake-return fixes 2024-05-17 03:36:55 +05:30
Bharath Vignesh J K d392caf6f6 chg: ruff - isort fixes 2024-05-17 03:36:53 +05:30
Bharath Vignesh J K 9890749d81 add: pre-commit - setup changes 2024-05-17 02:11:23 +05:30
Bharath Vignesh J K acb5ef585f chore: ruff cleanup 2024-05-17 02:10:09 +05:30
RazCrimson 396e78c415
Merge pull request #2778 from nicolargo/2777-make-pydantic-dep-optional
chg: event_list - enable data validation only if pydantic available
2024-05-16 21:05:18 +05:30
Nicolas Hennion 6583109c73 Update the Grafana dashboard - Sensors is now displayed #2780 2024-05-16 14:14:16 +00:00
Nicolas Hennion 986cd99fbd Update the Grafana dashboard #2780 2024-05-16 13:44:51 +00:00
Bharath Vignesh J K fecd23b26f Merge branch 'refs/heads/support/v4.0.x'
# Conflicts:
#	NEWS.rst
#	docs/api.rst
#	docs/man/glances.1
#	glances/__init__.py
#	glances/plugins/sensors/__init__.py
#	snap/snapcraft.yaml
2024-05-16 17:15:42 +05:30
Bharath Vignesh J K 98f2bb7fbe chg: event_list - enable data validation only if pydantic available 2024-05-16 17:00:20 +05:30
Nicolas Hennion 05bc1449db Merge branch 'issue2776' into develop 2024-05-16 09:00:39 +00:00
Nicolas Hennion d095e4ae34 4.0.4 - On Glances startup ERROR -- Can not init battery class ([WinError 3] even though sensors plugin disabled #2776 2024-05-16 09:00:17 +00:00
Nicolas Hennion 6acd0da704 Merge branch 'issue2773' into develop 2024-05-16 08:46:46 +00:00
Nicolas Hennion f6545580db In codeSpace (with Python 3.8), an error occurs in ./unittest-restful.py #2773 2024-05-16 08:46:27 +00:00
Bharath Vignesh J K d94b0b4e92 fix: plugin(sensors) - typehint for py38 2024-05-15 18:09:28 +05:30
Bharath Vignesh J K 16621cf75f version 4.0.4 2024-05-15 14:50:23 +05:30
Bharath Vignesh J K abdbb00f3e fix: plugin(sensors) - typehint for py38 2024-05-15 14:47:53 +05:30
Nicolas Hennion 0447e210e5 Catch exception when init colors in TMUX 2024-05-15 08:12:38 +00:00
Bharath Vignesh J K 3e9b949a0f version 4.0.3 2024-05-15 13:08:28 +05:30
Bharath Vignesh J K 594188528b refactor: plugin(sensors) - cleanup + typing + fixes
cherry-picked from develop `7a25f716`
2024-05-15 13:04:55 +05:30
RazCrimson d8c5a72387
Merge pull request #2771 from nicolargo/2770-pydantic-v1-breaks-glances-v4
chg: requirements.txt - use pydantic v2
2024-05-15 10:37:45 +05:30
Bharath Vignesh J K 25ae493517 chg: requirements.txt - use pydantic v2
Co-authored-by: Saketh Raman KS <sakethramansundaram78@gmail.com>
2024-05-15 10:19:07 +05:30
RazCrimson 3aa9225da0
Merge pull request #2768 from nicolargo/2765-sensors-plugin-is-buggy
refactor: plugin(sensors) - cleanup + typing + fixes
2024-05-14 14:01:00 +05:30
Bharath Vignesh J K 7a25f7165e refactor: plugin(sensors) - cleanup + typing + fixes 2024-05-14 13:37:20 +05:30
nicolargo c66c651205 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-05-13 23:00:58 +02:00
nicolargo eb83f6e6b1 version 4.0.2 2024-05-13 22:58:34 +02:00
nicolargo 4e926788ac Remove unused target in CI 2024-05-13 22:51:30 +02:00
Nicolas Hennion 127f2e45ed
Merge pull request #2761 from chenrui333/fix-requirements.txt
fix: include requirements.txt and SECURITY.md for pypi dist
2024-05-13 22:49:46 +02:00
nicolargo c98b7fcf1d Refactor setup.py 2024-05-13 22:48:07 +02:00
Bharath Vignesh J K 2d744121d1 version 4.0.2 2024-05-14 01:56:59 +05:30
Bharath Vignesh J K 84a511c716 hotfix: plugin(sensors) - race conditions btw fan_speed & temperature methods
(cherry-picked for v4.0.2 from latest develop `8c1b7499`)
2024-05-14 01:46:39 +05:30
RazCrimson 8c1b74993d
Merge pull request #2766 from nicolargo/2765-sensors-plugin-is-buggy
hotfix: plugin(sensors) - race conditions btw fan_speed & temperature…
2024-05-14 01:29:17 +05:30
Bharath Vignesh J K 371885c34c hotfix: plugin(sensors) - race conditions btw fan_speed & temperature methods 2024-05-14 01:14:21 +05:30
Rui Chen 6d4e0884cd
AUTHORS: add Rui for homebrew package
Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-05-12 14:48:51 -04:00
Rui Chen fc63162515
fix: include requirements.txt and SECURITY.md for pypi dist
Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-05-12 14:45:13 -04:00
nicolargo 516b3ab478 Force build for snap... 2024-05-12 19:27:56 +02:00
nicolargo b54fbda064 On the road to Glances 4.1.0 2024-05-12 19:05:07 +02:00
nicolargo 714d252999 version 4.0.1 2024-05-12 19:01:46 +02:00
nicolargo d5682b8066 Correct CI 2024-05-12 18:50:38 +02:00
nicolargo 7fbc598d5a Correct pydantic miss dep in tox 2024-05-12 18:32:32 +02:00
nicolargo 6768541abe Correct pydantic miss dep in tox 2024-05-12 18:31:04 +02:00
nicolargo 147f8a4de4 Correct issue with deps in Pypi 2024-05-12 18:26:26 +02:00
Nicolas Hennion ddfa809280
Merge pull request #2760 from chenrui333/add-pydantic
fix(setup): add missing pydantic
2024-05-12 18:23:35 +02:00
Rui Chen 4bfe5f2c81
fix(setup): add missing pydantic
Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-05-12 12:11:30 -04:00
nicolargo afb06cb230 WebUI not needed to build in CI 2024-05-12 11:13:59 +02:00
nicolargo 8ff40f0e46 WebUI not needed to build in CI 2024-05-12 11:13:14 +02:00
nicolargo 4ff7c82559 Update docs and API 2024-05-12 11:10:59 +02:00
nicolargo 4a4ca76505 Do not build WebUI if tags 2024-05-12 11:05:13 +02:00
nicolargo 374bf0944b On the road of Glances 4.1.0 2024-05-12 10:49:45 +02:00
nicolargo d9056e6027 Glances version 4.0.0 2024-05-12 10:45:03 +02:00
nicolargo 562780f7f0 Glances 4.0.0_RC04 2024-05-12 09:53:47 +02:00
nicolargo e9abf1c9af ORJson is not mandatory 2024-05-12 09:52:17 +02:00
nicolargo 364a3ef884 Correct README with a correct example regarding the docker + specific config file (revert) example is ok with -C option 2024-05-11 20:10:25 +02:00
nicolargo 35015f7c19 Correct README with a correct example regarding the docker + specific config file 2024-05-11 20:09:22 +02:00
nicolargo e7a3de5038 Hide password in the Glances browser form #503 2024-05-09 19:43:11 +02:00
nicolargo b8304d8796 Glances version 4 RC03 2024-05-09 16:21:59 +02:00
nicolargo 893c1452a3 Allow user to define only careful limits 2024-05-09 16:14:01 +02:00
nicolargo ada7f248ba Improve code 2024-05-09 10:41:24 +02:00
Nicolas Hennion 4ddff48c70
Merge pull request #2759 from nicolargo/issue2757
Improve tests by testing all the plugin/model.py methods - First part of Issue2757
2024-05-09 10:18:29 +02:00
nicolargo f2d7e13cd8 Improve tests by testing all the plugin/model.py methods #2757 2024-05-09 10:09:05 +02:00
nicolargo fd3625826b First work done for plugin model (stats only) 2024-05-07 15:26:16 +02:00
nicolargo af4765db8a Remove unitest shell script - Use Makefile instead 2024-05-07 14:07:08 +02:00
nicolargo 8e8d4ce89b Rename unitest to unittest - Related to #2757 2024-05-07 14:01:36 +02:00
nicolargo e8563a0fc4 Format code and update docs/webui 2024-05-07 11:49:55 +02:00
nicolargo 6e95892e41 Correct issue with Restfull API top route 2024-05-07 11:27:04 +02:00
nicolargo 738775ab61 Update NEWS.rst 2024-05-07 11:08:11 +02:00
nicolargo 440f06140e Update NEWS.rst 2024-05-07 11:06:37 +02:00
nicolargo 2763195ba8 Update NEWS.rst 2024-05-07 11:05:57 +02:00
nicolargo f7628a0945 Update NEWS.rst 2024-05-07 11:05:32 +02:00
nicolargo 20501b4fdb Update NEWS file 2024-05-07 10:04:53 +02:00
nicolargo e998f8076e See: https://docs.renovatebot.com/getting-started/use-cases/#package-managers-with-lock-files 2024-05-07 09:21:09 +02:00
nicolargo 78f5813db7 Rename Qulity workflow - With the file it is better 2024-05-06 18:18:31 +02:00
nicolargo 490804d5cc Rename Qulity workflow 2024-05-06 18:16:53 +02:00
nicolargo 29fcde08b0 Add profiling output 2024-05-06 11:56:09 +02:00
nicolargo 9121b77763 Add some profiling and upgrade CI to NodeJS 20 2024-05-06 11:55:37 +02:00
nicolargo d91663a428 Comment FreeBSD test (not working) and upgrade CI 2024-05-06 10:41:38 +02:00
nicolargo a7b45ff585 Change SNAP version to 4.0.0RC02 2024-05-06 10:26:57 +02:00
nicolargo 056a10f051 Merge branch 'issue2749' into develop 2024-05-06 10:25:46 +02:00
nicolargo 4df945f52e Improve Github action unit test on FreeBSD systems #2749 2024-05-06 10:25:29 +02:00
nicolargo c57af5dfef Remove unused import in DiskIO 2024-05-06 10:15:27 +02:00
nicolargo 934f605c79 Refactor MMM function in Processlist and change Python Header to go in 2024 2024-05-05 18:45:56 +02:00
nicolargo 9ae8219a7f arm/v6 and arm/v7 timeout during the build - Disable it in the CI 2024-05-05 16:51:17 +02:00
nicolargo 84f1990244 Merge branch 'issue2754' into develop 2024-05-05 10:19:10 +02:00
nicolargo 891e2a492a In PsUtil 6+, connections is rename net_connections #2754 2024-05-05 10:18:51 +02:00
nicolargo bc349db38a Optimise Quicklook display in Curses UI 2024-05-03 09:53:43 +02:00
nicolargo 39be7f554b Stats update is now threaded / Sensors are sorted by label/Alias in the UI 2024-05-02 18:20:58 +02:00
nicolargo 8608e97a9f Refactor Podman client instance for better code 2024-05-02 09:16:55 +02:00
nicolargo 66bc871488 Fix OS version for the Github tests / Only build Docker images on official architecture (remove i386) / Test if #2735 is corrected 2024-05-02 09:08:04 +02:00
Nicolas Hennion aa9a92d3b0
Merge pull request #2748 from nicolargo/fix-codeql
fix: workflows - codeql only works with specific config filename
2024-05-02 08:13:44 +02:00
Nicolas Hennion 95ea9c3ecd
Merge pull request #2747 from nicolargo/2735-alpine-docker-image-build-error-on-arm
chg: docker-files - add build dep for alpine - cmake
2024-05-02 08:13:11 +02:00
Bharath Vignesh J K 7934676c5f fix: workflows - codeql only works with specific config filename 2024-05-02 02:19:14 +05:30
Bharath Vignesh J K e131d7b027 chg: docker-files - add build dep for alpine - cmake 2024-05-02 01:57:39 +05:30
Nicolas Hennion 40a9b097e0
Merge pull request #2745 from nicolargo/2637-docker-memory-usage-is-incorrect
Make docker memory usage match `docker stats`
2024-05-01 20:28:06 +02:00
Bharath Vignesh J K 6279ba5df5 fix: webui - rebuild static file after merge 2024-05-01 23:22:19 +05:30
Bharath Vignesh J K 5b54ef9baf Merge branch 'refs/heads/develop' into 2637-docker-memory-usage-is-incorrect
# Conflicts:
#	glances/outputs/static/public/glances.js
2024-05-01 23:21:35 +05:30
nicolargo e0f7498b7e Add refresh to curses global loop 2024-05-01 18:05:00 +02:00
nicolargo 21b49c7db2 Remove autoinstall script from documentation 2024-05-01 15:51:38 +02:00
nicolargo a146345978 Merge branch 'issue2741' into develop 2024-05-01 13:45:30 +02:00
nicolargo 6264f2abea Switch to forks of pysnmp as it is unmaintained #2741 2024-05-01 13:42:58 +02:00
nicolargo fdd819c450 Remove Pytz from dep, because it is not used anymore 2024-04-30 17:15:09 +02:00
nicolargo e2e2264a4d Set sensor refresh time at Glances refresh * 3 2024-04-30 17:02:34 +02:00
nicolargo 3aa6be7361 Remove Windows unitary test because Gitgub CI action is broken 2024-04-30 16:04:36 +02:00
nicolargo d48f4588b2 Align WebUI and Curses interface display for mem containers 2024-04-30 15:33:36 +02:00
nicolargo 6f30f135c6 Generatino of the WebUI 2024-04-30 11:01:09 +02:00
nicolargo cb543cd53d Merge branch '2637-docker-memory-usage-is-incorrect' of github.com:nicolargo/glances into 2637-docker-memory-usage-is-incorrect 2024-04-30 10:44:20 +02:00
nicolargo 88fee9bc8e Use buildx instead of build for local container images 2024-04-30 10:35:45 +02:00
Bharath Vignesh J K b303001f58 cleanup: containers (plugin) - add `inactive_file` to stats only if present 2024-04-30 01:33:11 +05:30
Nicolas Hennion f640b6b8b4 Docker memory usage uses the same algorithm than docker stats #2637 2024-04-29 22:54:53 +05:30
Nicolas Hennion 8edf6e70b5 Docker memory usage is incorrect 2024-04-29 22:54:49 +05:30
nicolargo de69635d41 Upgrade Ubuntu Docker image to 24.04 2024-04-29 18:17:32 +02:00
nicolargo a88910896d [WebUI] Feature Request: Ability to hide Engine and Pod columns in Containers #2423 2024-04-29 17:49:45 +02:00
nicolargo c8907988ab Correct issue when left_sidebar is defined in the Connection plugin 2024-04-29 17:00:55 +02:00
nicolargo 2e72a1e3de Get nack toSnapCraft Core22 because Snap is ... 2024-04-29 11:42:00 +02:00
nicolargo af6576e448 Upgrade SnapCraft to Core24 2024-04-29 11:26:35 +02:00
nicolargo 263db4f263 Get the alert information from the view for the Sensors plugin in the WebUI 2024-04-29 10:52:25 +02:00
nicolargo a56063b8d0 Correct Webui display for FS 2024-04-29 10:21:49 +02:00
nicolargo fa61149810 Move ports plugin just after network 2024-04-29 10:11:26 +02:00
nicolargo 1cd17d9614 Add the --hide-public-info option 2024-04-29 10:01:24 +02:00
Nicolas Hennion 7f34ec820b
Merge pull request #2742 from nicolargo/2659-crash-when-reading-timezone-for-generating-alert
fix: plugin (alert) - pytz not working with time.tzname for some timezones
2024-04-29 08:47:49 +02:00
Bharath Vignesh J K ab0742b103 fix: plugin (alert) - pytz not working with time.tzname for some timezones 2024-04-29 01:48:19 +05:30
Continuous Integration 8b6b4788b8 Continuous Integration Build Artifacts 2024-04-28 15:53:17 +00:00
nicolargo fe25e0d4b8 Glances 4.0.0 RC01 2024-04-28 17:49:05 +02:00
nicolargo 623f596b4b Correct WebUI if no public information is provided 2024-04-28 17:47:51 +02:00
nicolargo 9ec2abc1fc Avoid error whend ending browser mode 2024-04-28 15:32:51 +02:00
nicolargo 610ee081c2 Refactor the Wifi plugin 2024-04-28 11:16:27 +02:00
nicolargo 6b0de5d6be Refactor how sensors is displayed in the curses interface 2024-04-28 10:28:19 +02:00
nicolargo a60e8a42c7 Refactor how left bar is displayed 2024-04-28 09:37:26 +02:00
nicolargo c0284fbc69 Refactor some code and update docs 2024-04-28 09:21:58 +02:00
nicolargo cc1ac3c6f5 Merge branch 'refactornow' into develop 2024-04-27 17:39:07 +02:00
nicolargo 2aa3f418df Alert timestamp is incorrect #2591 2024-04-27 17:38:56 +02:00
nicolargo f19e98417a Align glances.conf 2024-04-27 16:34:17 +02:00
nicolargo 81668fc947 Correct issue with Alias in sensors 2024-04-27 16:28:38 +02:00
nicolargo e4a6638c30 Hide snap per default 2024-04-27 10:54:16 +02:00
nicolargo c09d9256c7 Display date correctly in WebUI Alarm 2024-04-27 10:04:00 +02:00
nicolargo 5e58c0b8a8 CI Cyber Trivy should be back 2024-04-26 09:35:20 +02:00
nicolargo 11245a793a Merge branch 'issue2612' into develop 2024-04-26 09:28:40 +02:00
nicolargo df66a7ffe9 Please add a startup flag to select an alternate web server static file path #2612 2024-04-26 09:28:24 +02:00
nicolargo f2b232ebaf CI Cyber is broken, waiting for https://github.com/aquasecurity/trivy-action/issues/343 2024-04-26 08:48:05 +02:00
nicolargo 9dc221c789 Merge branch 'issue2734' into develop 2024-04-26 08:14:15 +02:00
nicolargo 9df634bc5a The cpulist of the percpu parameter cannot be fully displayed due to too many cores - WebUI #2734 2024-04-26 08:13:59 +02:00
nicolargo 8ab5d9fcc2 The cpulist of the percpu parameter cannot be fully displayed due to too many cores #2734 2024-04-25 15:36:30 +02:00
nicolargo 0df1371513 --stdout plugin.attr is not compliant with plugins returning list of dicts #2446 2024-04-24 19:47:57 +02:00
nicolargo c2fe2de355 Export individual processes stats - Export dict are now sorted #794 2024-04-24 12:28:48 +02:00
nicolargo 75b06ed4b1 Update Ubuntu Docker based image to Ubuntu version 23.10 2024-04-24 10:17:10 +02:00
nicolargo 0a118ad5ae Merge branch 'issue2675' into develop 2024-04-23 18:29:05 +02:00
nicolargo 39b5448fc3 If FastAPI server failed to start, Glances do not return a critical error #2675 2024-04-23 18:28:35 +02:00
nicolargo d3502bafa8 Lot's of log messages when a proxy is used with the Podman plugin #2714 2024-04-23 17:18:44 +02:00
nicolargo 5c8905ea88 Docker image build error on ARM/v6 and ARM/v7 #2735 2024-04-23 10:16:59 +02:00
nicolargo 9efecde4b1 Docker image build error on ARM/v6 (realy) #2735 2024-04-23 09:46:16 +02:00
nicolargo ad6e94219c Docker image build error on ARM/v6 #2735 2024-04-22 11:55:49 +02:00
nicolargo d1fdb90c89 Avoid arror when a new network interface is created on the fly 2024-04-22 11:41:38 +02:00
nicolargo 01097af0ab Newline in container command corrupts display / hides container #2733 2024-04-22 11:36:55 +02:00
nicolargo 4fbcd9486d Merge branch 'issue2733' into develop 2024-04-22 11:36:05 +02:00
nicolargo ccd5094782 Newline in container command corrupts display / hides container #2733 2024-04-22 11:35:45 +02:00
nicolargo ade83ac0cc Update version to 4.0.0_beta03 2024-04-22 11:10:38 +02:00
nicolargo e591436384 Pin Zeroconf to 0.131.0 waiting for https://github.com/python-zeroconf/python-zeroconf/issues/1372 2024-04-22 11:08:37 +02:00
nicolargo 28a3a8874f Export individual processes stats - Add some tags for the InfluxDB export #794 2024-04-21 18:31:40 +02:00
nicolargo 3bc83538b3 Change Renovate config #2729 2024-04-21 17:02:17 +02:00
nicolargo f0998e0320 Update docs 2024-04-21 16:52:11 +02:00
nicolargo 9ac1ad88e8 [IP plugin] Make the public ip information more configurable (not only from the Censys service) #2732 2024-04-21 16:47:36 +02:00
nicolargo b6881215f9 Update GPU message 2024-04-13 18:18:50 +02:00
nicolargo 1de207e2fd RAID plugin not showing up in Glances web UI (Docker install) #2716 2024-04-13 10:40:29 +02:00
nicolargo 7430b6b2b4 Update WebUI + Documentation 2024-04-13 09:28:20 +02:00
Nicolas Hennion 7401f632c6
Update README.rst
New layout for buttons
2024-04-09 09:26:45 +02:00
Nicolas Hennion c770f2a8fd
Update README.rst
Use CI instead of test for button
2024-04-09 09:25:31 +02:00
Nicolas Hennion 43f1d2614b
Update README.rst
Test badge on the develop branch
2024-04-09 09:24:14 +02:00
Nicolas Hennion 8081d997d6
Update README.rst 2024-04-09 09:21:56 +02:00
Nicolas Hennion de9f40afc1
Merge pull request #2721 from nicolargo/2719-openbsd-crash-on-start-without-a-swap-filepartition
OpenBSD crash on start without a swap file/partition #2719
2024-04-08 11:57:53 +02:00
Nicolas Hennion 693cd8e20d OpenBSD crash on start without a swap file/partition #2719 2024-04-08 09:56:49 +00:00
nicolargo c62292444b Update docs 2024-04-07 18:20:35 +02:00
nicolargo 7e7d4d1a97 Update screen shot 2024-04-07 17:46:05 +02:00
nicolargo 82d7bfa875 Merge branch 'issue993' into develop 2024-04-07 15:32:45 +02:00
nicolargo 0ca1334791 GPU monitoring (AMD / ATI) #993 2024-04-07 15:32:24 +02:00
nicolargo 71e8fe5bfd Merge branch 'develop' into issue993 2024-04-07 10:21:34 +02:00
nicolargo 76509e0276 Merge branch 'issue2409' into develop 2024-04-07 10:20:43 +02:00
nicolargo 33be90e972 Refactor GPU plugin for multiple GPU type support #2409 2024-04-07 10:20:19 +02:00
nicolargo 06e8b480fc Add tests data for AMD GPU 2024-04-07 08:45:21 +02:00
nicolargo d07c771969 Make ports plugin exportable 2024-04-06 19:01:16 +02:00
nicolargo 39c51f8af8 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-04-06 17:56:06 +02:00
nicolargo 168ba15ffc Align docker Glances.conf with devel one 2024-04-06 17:55:11 +02:00
Nicolas Hennion 2ca3b640a3
Merge pull request #2718 from kdkd/kdkd-freebsd-readme
Update README.rst for FreeBSD install instructions
2024-04-06 17:52:37 +02:00
nicolargo 5f48d5c71b Export individual processes stats #794 2024-04-06 17:47:09 +02:00
nicolargo f87e7d7fe6 Export individual processes stats #794 2024-04-06 17:46:42 +02:00
nicolargo 71a77bc8ca Update API doc 2024-04-05 19:40:33 +02:00
nicolargo 6fc0814a32 Add optino to set export process filter from the command line 2024-04-05 19:39:12 +02:00
nicolargo 4a5dfe7584 Correct issue with bad filter used to filter process 2024-04-05 19:06:51 +02:00
kdkd 82b22ecb13
Update README.rst for FreeBSD install instructions
FreeBSD has moved glances to python 3.9 so the package name has changed
2024-04-05 09:19:43 -05:00
nicolargo 2a381e09ff Update comment 2024-04-03 22:20:00 +02:00
nicolargo 194ae67d88 Update docs but 'make docs' do not work... 2024-04-03 18:44:31 +02:00
nicolargo 8107525aef It Works ! Have to finalise documentation + configuration file 2024-04-01 19:48:52 +02:00
nicolargo 12d9ac1dff First try, stdout JSON work ok but not the CSV export 2024-03-31 12:21:01 +02:00
nicolargo 24a3aead9d Rename export folder to avoid error of the dep lib use inside an export plugin has the same name: for example csv, use the python lib csv... 2024-03-30 18:24:31 +01:00
nicolargo ae596610ff Corect an issue with the light mode (docker is displayed because the plugin is now called containers) 2024-03-30 17:52:09 +01:00
Nicolas Hennion 9c94effe05
Merge pull request #2712 from mpkossen/develop
Use enum instead of int for callback API version.
2024-03-30 17:31:46 +01:00
Continuous Integration 7c430dd6ec Continuous Integration Build Artifacts 2024-03-30 12:12:39 +00:00
nicolargo 2b4c61726d New logo for Glances version 4.0 #2713 2024-03-30 13:08:26 +01:00
Maarten Kossen (mpkossen) f3b8b55ade Use enum instead of int for callback API version. 2024-03-29 14:51:50 -05:00
nicolargo cc7eeb2931 Try a simple Snapcraft.yaml file, add version 2024-03-24 14:18:21 +01:00
nicolargo 7ad9066f22 Try a simple Snapcraft.yaml file 2024-03-24 14:08:04 +01:00
nicolargo e5ef345d85 Update NEWS file according to master patches 2024-03-23 15:10:31 +01:00
nicolargo ee826a1e67 version 3.4.0.5 2024-03-23 14:47:29 +01:00
nicolargo 9ed81b438d Another try for the fucking Snapcraft package 2024-03-23 11:39:21 +01:00
nicolargo 8e0943454d Add UT for MacOS in the CI (correct duplicated section in the test file) 2024-03-23 11:15:04 +01:00
nicolargo af8111ba8f Add UT for MacOS in the CI 2024-03-23 11:12:07 +01:00
nicolargo fb10c7f36d Remove Python 2 test from CI because Python 2 is no more available inside Gitaction images 2024-03-23 10:55:43 +01:00
nicolargo 370da44744 version 3.4.0.4 2024-03-23 10:16:34 +01:00
nicolargo c2d1454226 [Documentation] Docker compose password unrecognized arguments when applying docs. #2698 2024-03-23 09:39:39 +01:00
nicolargo 438ed4488d Correct issue on unittest 2024-03-17 17:29:01 +01:00
nicolargo b11e085dc5 Merge branch 'pydantic_events' into develop 2024-03-17 17:07:40 +01:00
nicolargo 40f06b9570 Event is now a Dataclass 2024-03-17 17:07:26 +01:00
nicolargo 77167b8bce Event is now a Dataclass 2024-03-17 17:07:13 +01:00
nicolargo 272dc23443 Correct an issue with the events duration 2024-03-17 10:18:40 +01:00
nicolargo 684d1d7b94 Make the global event message available per event 2024-03-16 17:54:50 +01:00
nicolargo 6508acaba7 Improve alert with mininimal interval/duration configuration keys #2558 2024-03-16 17:00:16 +01:00
nicolargo 0080c61eac Folders plugin always fails on special directories #2518 2024-03-16 14:39:33 +01:00
nicolargo ca97eeefe2 Change workflow to disable some jobs on Pull Request 2024-03-16 09:53:39 +01:00
nicolargo c6861a4728 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-03-16 09:26:13 +01:00
nicolargo e403860177 Update WebUI 2024-03-16 09:25:55 +01:00
nicolargo 224f3d157c Merge branch 'erdnaxela02-MQTT_hostname_configuration' into develop 2024-03-16 09:23:32 +01:00
nicolargo 74ed104369 Update docs and correct some merge conflicts 2024-03-16 09:23:19 +01:00
Continuous Integration f022c90ee6 Continuous Integration Build Artifacts 2024-03-16 08:16:42 +00:00
Nicolas Hennion f7cc69b24a
Merge pull request #2700 from erdnaxela02/CallbackAPI_for_MQTT
Add CallbackAPIversion for MQTT export
2024-03-16 09:12:38 +01:00
Github GPG acces 396283c9e9
Make 'callback_api_version' configurable 2024-03-15 21:58:05 +01:00
Github GPG acces ad44273645
changes structure 2024-03-15 21:45:20 +01:00
Github GPG acces ff5b181d6c
Add MQTT hostname configuration
added the possibility of configuring the hostname of the MQTT topic
2024-03-15 13:18:50 +01:00
Github GPG acces 2e6bcc0758
Add CallbackAPIversion for MQTT export
Due to the recent update of paho-mqtt to V2.0.0 which requires API versioning, addition of callback_api_version in paho.Client
2024-03-15 13:12:04 +01:00
nicolargo c591461fde Add Cyber scan (Trivy) github action 2024-03-10 19:55:02 +01:00
nicolargo 5731cadbe3 Use secrets in CI actions 2 2024-03-10 17:34:20 +01:00
nicolargo dd6c5f7cd0 Use secrets in CI actions 2024-03-10 17:32:04 +01:00
nicolargo 9a3ec31f19 Use secrets info build workflow 2024-03-10 17:25:38 +01:00
nicolargo 365eb11eb4 Add CI pipeline 4 2024-03-10 17:02:43 +01:00
nicolargo b076df9f13 Add CI pipeline 3 2024-03-10 16:54:46 +01:00
nicolargo 1841592d5b Add CI pipeline 2024-03-10 16:52:31 +01:00
nicolargo ea4f11a08b Add CI pipeline 2024-03-10 16:48:53 +01:00
nicolargo 7ffe0f6c57 Solve issue when no change in the WebUI build process 2024-03-10 16:01:28 +01:00
nicolargo ea906064fc Correct Node.js action https://stackoverflow.com/a/68717538/1919431 2024-03-10 15:45:16 +01:00
Nicolas Hennion a84d029e1a
Create node.js.yml Github action 2024-03-10 15:33:37 +01:00
nicolargo 6969d302ab Update configuration file example regarding the #2695 2024-03-10 11:10:52 +01:00
nicolargo 49977dba57 [WEBUI] Custom system header information #2695 2024-03-10 11:09:32 +01:00
nicolargo 43b355fdff Update the Flame profiling 2024-03-09 16:50:26 +01:00
nicolargo 2a0d6fba52 Update doc in the config file 2024-03-09 16:40:30 +01:00
nicolargo d1a7f61cce Merge branch 'issue2695' into develop 2024-03-09 16:37:39 +01:00
nicolargo 5dfc91d051 Custom header information #2695 2024-03-09 16:37:19 +01:00
nicolargo 573d73f198 Force image update 2024-03-09 15:20:16 +01:00
nicolargo 4bbb729d48 Revert "Commit c9285be686 breaks the Docker image Pipeline. Try to downgrade urllib < 2. Just a try."
This reverts commit 229c9bfaed.
2024-03-09 14:50:46 +01:00
nicolargo 229c9bfaed Commit c9285be686 breaks the Docker image Pipeline. Try to downgrade urllib < 2. Just a try. 2024-03-09 14:38:03 +01:00
nicolargo 0b7e293476 Use a venv-build environment for Alpine image 2024-03-04 11:24:51 +01:00
nicolargo a71f2b6367 Display the pip version during the build 2024-03-04 11:05:21 +01:00
nicolargo 280d76c6dd Update dep 2024-03-04 10:37:13 +01:00
nicolargo 8a9949abd9 Change separator color in black mode 2024-03-04 10:20:04 +01:00
Nicolas Hennion be7457e634
Merge pull request #2687 from turbocrime/be-normal
Use normal color for normal text instead of an arbitrary color
2024-03-04 10:02:07 +01:00
Nicolas Hennion 57eaa08a52
Merge pull request #2688 from Kiskae/swap-nvml
Replace `py3nvml` with `nvidia-ml-py`
2024-03-04 09:57:02 +01:00
Kiskae 0bca21f8b1 update documentation for `nvidia-ml-py` 2024-03-03 14:58:14 +01:00
Kiskae a8cc610ec1 Replace `py3nvml` with `nvidia-ml-py` 2024-03-03 14:58:06 +01:00
turbocrime 20c54390ef rm theme 2024-03-01 13:50:04 -08:00
turbocrime aad91c71a6 be even more normal 2024-03-01 13:49:44 -08:00
turbocrime ff061d1398 be normal 2024-03-01 13:45:14 -08:00
nicolargo 753e9f2d97 Remove unused code 2024-02-18 09:50:20 +01:00
nicolargo 4ab96a72a7 Merge branch 'feature/issue2414' into develop 2024-02-17 17:01:08 +01:00
nicolargo eb7d3d28c2 Improve DiskIO launch 2024-02-17 16:59:35 +01:00
nicolargo f19bb75ccd Resolve conflict 2024-02-17 16:56:07 +01:00
nicolargo c9285be686 Update dependency urllib3 to v2 #2397 2024-02-17 12:04:27 +01:00
nicolargo 24b6078b5b .gitignore in package #2681 2024-02-17 11:33:36 +01:00
nicolargo 4df1464497 Merge branch 'issue2679' into develop 2024-02-17 11:19:27 +01:00
nicolargo 951591ae2e url_prefix does not work on develop #2679 2024-02-17 11:19:09 +01:00
nicolargo 488c29549c Correct retrun error in specific case 2024-02-11 18:16:35 +01:00
nicolargo ac8c2613df Processlist field description 2024-02-11 16:38:01 +01:00
nicolargo dc172d45d0 High CPU consumption, to be investigate 2024-02-11 11:59:36 +01:00
nicolargo 255b57a18a Done for network 2024-02-10 17:19:24 +01:00
nicolargo bd5e297a0e Compute rate automaticaly 2024-02-03 17:38:17 +01:00
nicolargo a5249a1893 Update Snapcraft 2024-02-03 09:59:31 +01:00
nicolargo 6bc087485c Remove the non relevent CPU trend in the UI 2024-01-28 16:36:51 +01:00
nicolargo ab5bf02e6b Add unittest for Bar 2024-01-28 16:06:56 +01:00
nicolargo 7f2e8525b4 Merge branch 'issue2667' into develop 2024-01-28 12:33:34 +01:00
nicolargo d80dd07901 On Linux OS, add guest CPU stat #2667 2024-01-28 12:33:19 +01:00
nicolargo 787f98d5ef Merge branch 'issue2662' into develop 2024-01-28 10:42:58 +01:00
nicolargo 1623c27f4e Quicklook plugin lst is also configurable and taken into account in the WebUI 2024-01-28 10:42:20 +01:00
nicolargo 5092475d7f Make the Quicklook stats list configurable (TODO on the WebUI) 2024-01-27 11:20:44 +01:00
nicolargo e564c21b89 WebUI done - To be tested with no LOAD (is it a usecase ?) 2024-01-20 17:53:39 +01:00
nicolargo 0a555866e3 TODO - WebUI 2024-01-20 17:40:26 +01:00
nicolargo 92db000a75 Sparkline not working - Web UI not done 2024-01-20 17:24:04 +01:00
nicolargo 2d997ac36f Add swap information - Todo: WebUI 2024-01-20 17:19:41 +01:00
nicolargo ef9694cd6a First version of the #2662 - Need to study how to display the swap 2024-01-20 14:56:57 +01:00
nicolargo 5841d588c8 Merge branch 'develop' of github.com:nicolargo/glances into develop 2024-01-20 10:59:55 +01:00
Nicolas Hennion ba4396345a
Merge pull request #2556 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.131.0
2024-01-20 10:56:34 +01:00
nicolargo 08d8634899 Renovate - Ignore package-lock.json 2024-01-20 10:55:24 +01:00
Nicolas Hennion a6276ac6bd
Merge pull request #2631 from nicolargo/snyk-fix-3a9af49ce5f9976e3d530f42509537fb
[Snyk] Security upgrade fonttools from 4.38.0 to 4.43.0
2024-01-20 10:51:57 +01:00
nicolargo 42f95f3cb7 Crach when ENTER key is pressed in the Alpine minimal image #2658 2024-01-20 10:21:45 +01:00
nicolargo f59a683626 Improve conde quality of _GlancesCurses.__catch_key() 2024-01-14 19:32:15 +01:00
nicolargo ebec98c099 Correct UT 2024-01-14 16:13:04 +01:00
nicolargo f4d43296c6 Make the left menu configurable (in Curses and WebUI) #2648 2024-01-14 16:05:06 +01:00
nicolargo adf6a4222d Make the left menu configurable (in Curses and WebUI) #2648 2024-01-14 16:04:50 +01:00
nicolargo 0c3c2a3414 Correct typo in README file concerning Docker command line 2024-01-13 09:49:39 +01:00
nicolargo b97606247d Migration to Alpine 3.19 and update documentation regarding default glances.conf file in Docker images 2024-01-13 09:48:50 +01:00
nicolargo 5cc18adfb4 Migration to Alpine 3.19 and update documentation regarding default glances.conf file in Docker images 2024-01-13 09:46:29 +01:00
nicolargo a695e1a70e Update Alpine version to 3.18 (a link to the latest 3.18.x tag) 2024-01-13 09:24:53 +01:00
nicolargo 07a81c50ff Update Alpine version to 3.18 (a link to the latest 3.18.x tag) 2024-01-13 09:24:11 +01:00
nicolargo 309c45036f Make the separator default behavor in UI (and add the option in the configuration file 2024-01-07 18:52:22 +01:00
nicolargo fe52a56b6a Update WebUI and Docs 2024-01-06 15:32:05 +01:00
Nicolas Hennion d2a5f5aab4
Merge pull request #2640 from clintonsteiner/updateReadmeTypos
Update prometheus.rst, fix minor typos
2024-01-06 15:30:16 +01:00
nicolargo 67b5fe1a16 Crash when a process is pinned in the develop branch of Glances #2639 2024-01-06 11:00:01 +01:00
nicolargo e3f63ed4ce macOS: Read user config from ~/.config/glances #2636 2024-01-06 10:23:29 +01:00
Nicolas Hennion 98f08f8511
Merge pull request #2641 from osalbahr/add-macos-home-config
macOS: default to `~/.config/glances`
2024-01-06 09:58:11 +01:00
nicolargo ef06423ee4 Update docs 2024-01-06 09:54:05 +01:00
Osama Albahrani d8d26e991b macOS: default to `~/.config/glances`
Fixes nicolargo/glances#2636
2024-01-04 05:00:56 -05:00
csteiner cb92c9d455 Update prometheus.rst, fix minor typos
Incorrect usage of argument and minor grammatical error
--export-prometheus was used instead of --export prometheus
2024-01-03 11:28:30 -06:00
nicolargo 6e35ee0355 Update WebUI and Docs 2023-12-29 19:37:54 +01:00
nicolargo 85481da71c Showing the full arguments on the command column of the TASKS Section of the Web UI. #2634 2023-12-29 19:36:53 +01:00
nicolargo fa0fc8578e Add unittest (API) for fields description and unit 2023-12-23 11:10:52 +01:00
nicolargo 254c7df946 Refactor Alert data model from list of list to list of dict #2633 2023-12-23 11:02:23 +01:00
nicolargo 6edd6fd1ff Refactor Alert data model from list of list to list of dict #2633 2023-12-23 11:01:41 +01:00
nicolargo 947e24c8cb Update doc 2 2023-12-22 18:55:30 +01:00
nicolargo e3ea678f94 Update doc 2023-12-22 18:50:56 +01:00
nicolargo d75a8c193d Getting field information (description, unit) from the API #2630 2023-12-22 18:32:24 +01:00
snyk-bot 4fb7044ba2
fix: dev-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-FONTTOOLS-6133203
2023-12-21 17:52:39 +00:00
nicolargo 380888a564 Improve long fs name in WebUI 2023-12-21 10:40:59 +01:00
renovate[bot] 39912c4ae9
Update dependency zeroconf to v0.131.0 2023-12-19 09:50:51 +00:00
nicolargo 56a7622d14 Refactor alias configuration and allow alias for fs devices
#1735
2023-12-17 18:42:42 +01:00
nicolargo ab2936bcc8 Add breaking changes information in the NEWS file 2023-12-17 14:54:14 +01:00
nicolargo 8d24031500 Change the way version is displayed (add the API version) 2023-12-17 14:48:04 +01:00
nicolargo 746b526c51 Correct issue when running Glances with minimal dep 2023-12-16 15:38:13 +01:00
nicolargo b3828f5497 Replace Bottle by FastAPI #2181 2023-12-16 15:00:04 +01:00
nicolargo 32b33b5883 Merge branch 'issue2181' into develop 2023-12-16 14:50:57 +01:00
nicolargo c976f94b13 Merge branch 'develop' into issue2181 2023-12-16 14:50:36 +01:00
nicolargo bea6563573 Correct Restful API unittests 2023-12-16 14:43:51 +01:00
nicolargo 013bc99c78 Add Glances version plugin 2023-12-16 14:33:44 +01:00
nicolargo ae07ee1437 Add Glances version plugin 2023-12-16 14:33:30 +01:00
nicolargo dc0f363840 Correct Help plugin in the WebUI 2023-12-16 13:51:54 +01:00
nicolargo 93fc961b46 Help did not work in WebUI (empty black screen is displayed) 2023-12-16 12:32:00 +01:00
nicolargo 3215bf5c63 Optimize basic HTTP authentication 2023-12-15 19:06:33 +01:00
nicolargo 3d7b324839 Remove -C /etc/glances.conf from the Dockerfile CMD 2023-12-13 21:59:22 +01:00
nicolargo a3e08acdd2 Remove -C /etc/glances.conf from the Dockerfile CMD 2023-12-13 21:58:54 +01:00
nicolargo e27fd5f102 See TODO in:
- glances/plugins/processlist/__init__.py
- glances/outputs/glances_restful_api.py
2023-12-10 20:27:31 +01:00
nicolargo c4a631a25f Some 'return orjson.dumps(TypeError: Type is not JSON serializable: pcputimes' errors 2023-12-10 20:12:44 +01:00
nicolargo a3e08966b5 :Merge branch 'develop' into issue2181 2023-12-10 20:12:21 +01:00
nicolargo 4a41c76953 Update documentation 2023-12-10 20:10:34 +01:00
Nicolas Hennion c82a5a7098
Merge pull request #2625 from gtimchenko/doc_fix#001
Fix typos and make grammatical and stylistic edits in project documentation
2023-12-10 20:00:53 +01:00
nicolargo 1f1622a625 Looks beter after the last commit ! Some TODO to do in the glances_restful_api.py files... 2023-12-10 19:59:33 +01:00
Georgiy Timchenko 66e7916fbf Fix typos and make grammatical and stylistic edits in project documentation
Several typos were found and corrected in the project documentation. Additionally, a number of grammatical and stylistic improvements were made to enhance clarity and coherence. These changes affect the following files:

- docs/api.rst
- docs/cmds.rst
- docs/config.rst
- docs/docker.rst
- docs/glances.rst
- docs/index.rst
- docs/install.rst
- docs/quickstart.rst
- docs/support.rst

These corrections and improvements significantly enhance the readability and accuracy of the documentation, making it more accessible and comprehensible for both users and developers.
2023-12-10 22:38:38 +04:00
Georgiy Timchenko fa927532a1 Fix typos in project documentation
Several typos were found and corrected in the project documentation. These changes affect the following files:

- docs/cmds.rst
- docs/config.rst

These corrections improve the readability and accuracy of the documentation, making it more accessible and understandable for users and developers.
2023-12-10 22:38:38 +04:00
nicolargo cbb2facc87 Unit tests are ok BUT the WebUI has a lot of issue: plugin disapear, traceback... Perhaps issue when stats are refreched ? 2023-12-10 19:27:02 +01:00
Nicolas Hennion 4fc1336810
Merge pull request #2620 from gtimchenko/doc_typos
Fix typos in project documentation
2023-12-10 15:39:46 +01:00
nicolargo 048e1fc6de Upgrade Alpine version 2023-12-10 15:39:03 +01:00
Georgiy Timchenko 30354d623e Fix typos in project documentation
Several typos were found and corrected in the project documentation. These changes affect the following files:

- docs/cmds.rst
- docs/config.rst

These corrections improve the readability and accuracy of the documentation, making it more accessible and understandable for users and developers.
2023-12-10 14:02:43 +04:00
nicolargo 2e6842cc18 Security update 2023-12-09 11:31:01 +01:00
nicolargo 5e777f0f42 Update Github build workflow 2023-12-09 11:25:55 +01:00
nicolargo b46c7586eb Update Github build workflow 2023-12-09 11:24:27 +01:00
nicolargo 06d458ac63 Update deps 2023-12-09 11:07:33 +01:00
nicolargo 5d054e12e1 Works in progress 2023-12-09 10:09:17 +01:00
nicolargo 5fa7ae4264 WARNING: Replace the get_raw command for processlist 2023-12-02 16:41:52 +01:00
nicolargo 322d8c715a First step of the migration 2023-11-26 22:41:16 +01:00
nicolargo c28089ae47 First step of the migration 2023-11-26 22:40:36 +01:00
nicolargo bcf4ce45fc Rename any reference to Bottle in doc and dep file. Ready to refactor the main glances_restful_api.py file. 2023-11-26 10:02:30 +01:00
nicolargo 36ed96b05a Alerts showing different time than time plugin #2214 2023-11-11 10:21:47 +01:00
nicolargo dbbdc34bf0 Correct timestamp on alert for terminal mode 2023-11-05 09:53:44 +01:00
nicolargo af49f970e3 Refactor Event add / update calls 2023-11-04 11:43:08 +01:00
nicolargo 8f6fe14ea1 Corect an issue with default max events number (0 instead of 10) 2023-11-04 11:34:27 +01:00
nicolargo c59dc2bc16 Merge branch 'develop' of github.com:nicolargo/glances into develop 2023-11-04 09:32:00 +01:00
nicolargo 081beba52a Add debug message for term name 2023-11-04 09:18:19 +01:00
Nicolas Hennion c37504595f
Merge pull request #2599 from monochromec/develop
Optimized plugin name creation
2023-11-03 16:33:28 +01:00
Christoph Zimmermann 4d92e0bd65 Optimized plugin name creation 2023-11-01 17:27:14 +01:00
nicolargo e3d40e9577 TERM setting causes glances to crash #2598 2023-11-01 10:28:02 +01:00
nicolargo e9e12d4dcc Remove systemd from Curses (related to #2595) 2023-11-01 08:59:12 +01:00
nicolargo 16a7934763 Update docs. Correct Sphinx path. 2023-11-01 08:53:44 +01:00
nicolargo 9bf3cb33d6 Merge branch 'develop' of https://github.com/monochromec/glances into monochromec-develop 2023-11-01 08:41:56 +01:00
Christoph Zimmermann 037d3f7c89 Fixed plugin name handling in GlancesPluginModel and optimized package handling in load_additional_plugins 2023-10-31 16:19:11 +01:00
nicolargo 4be7564801 Merge branch 'develop' of https://github.com/monochromec/glances into monochromec-develop 2023-10-29 17:37:24 +01:00
Christoph Zimmermann 0ce4092df7 Added check for already loaded module in sys.modules 2023-10-29 15:07:30 +01:00
Christoph Zimmermann 335029ce27 Merge remote-tracking branch 'refs/remotes/origin/develop' into develop
Merging curses deltas
2023-10-29 14:53:21 +01:00
Christoph Zimmermann e5e4068231 Added functionality in curses i/f 2023-10-29 14:53:15 +01:00
monochromec dc4634a16b
Merge branch 'nicolargo:develop' into develop 2023-10-29 14:51:27 +01:00
Christoph Zimmermann 1eb9187908 Fixed plugin_path bug 2023-10-29 14:50:59 +01:00
nicolargo 51330ca8e7 Merge branch 'develop' of https://github.com/monochromec/glances into monochromec-develop 2023-10-29 10:27:32 +01:00
nicolargo 091e4975ca Merge branch '2589-error-using-glances-export-to-influxdb2' into develop 2023-10-29 10:23:56 +01:00
nicolargo 3a23d1693b Disable UI if an error occurs and if an export module is enabled #2589 2023-10-29 10:23:29 +01:00
nicolargo 28570e8704 Update Flame 2023-10-29 08:59:13 +01:00
Christoph Zimmermann eb72dbe35d Fixed arg parsing for additional plugin directory 2023-10-28 17:10:47 +02:00
Christoph Zimmermann 0b3b74ffa4 Added configuration documentation 2023-10-26 15:43:36 +02:00
Christoph Zimmermann 8d63076aa7 Fixed documentation 2023-10-26 15:36:42 +02:00
Christoph Zimmermann cfd1e142b0 Fixed SPHINXBUILD variable to reflect PATH settings 2023-10-26 15:21:11 +02:00
Christoph Zimmermann e545316306 Updated man page 2023-10-26 15:09:24 +02:00
Christoph Zimmermann d1e6f76014 Merge remote-tracking branch 'origin/develop' into my-branch
dry-run
2023-10-26 14:56:05 +02:00
Christoph Zimmermann f4c35ed56d Added loading of additional plugins feature 2023-10-26 14:43:58 +02:00
nicolargo a88f41f25e Merge branch 'issue1930' into develop 2023-10-15 18:34:09 +02:00
nicolargo 3a7c479524 Change the way AMP are loaded #1930 2023-10-15 18:33:50 +02:00
nicolargo 48251c8271 Refactor plugin folder in the same way than exports modules 2023-10-15 18:05:18 +02:00
nicolargo 30cc9f3e0e Chage the color of the separator line 2023-10-15 10:42:19 +02:00
nicolargo 3765c0ee16 Correct estimated executed duration when using --stop-after command line 2023-10-15 09:57:05 +02:00
nicolargo c05614344e Refactor code #2580 2023-10-14 10:08:19 +02:00
nicolargo 0dc0200375 Refactor glances.main.GlancesMain.parse_args() 2023-10-08 18:55:54 +02:00
nicolargo 204525ecc5 Merge branch 'issue2570' into develop 2023-10-08 10:10:29 +02:00
nicolargo 55d7c07543 CouchDB migration from CouchDB to PyCouchDB library #2570 2023-10-08 10:10:13 +02:00
nicolargo cb4a8b80b7 Apply #2563 on develop branch 2023-10-07 10:46:23 +02:00
Nicolas Hennion e7b0cf09dd
Merge pull request #2571 from nicolargo/revert-2563-patch-1
Revert "Update docker.rst to remove latest-alpine tag"
2023-10-07 10:42:07 +02:00
Nicolas Hennion 81b93e9f16
Revert "Update docker.rst to remove latest-alpine tag" 2023-10-07 10:41:37 +02:00
Nicolas Hennion 34f0e90130
Merge pull request #2563 from NLZ/patch-1
Update docker.rst to remove latest-alpine tag
2023-10-07 10:37:21 +02:00
Nicolas Hennion 09830b9946
Merge pull request #2562 from nicolargo/renovate/alpine-3.x
chore(deps): update alpine docker tag to v3.18.4
2023-10-07 10:35:56 +02:00
Nicolas Hennion d2d7b8eac9
Merge pull request #2560 from nicolargo/snyk-fix-fd847dd68b3040162da674e4c23dc740
[Snyk] Security upgrade pillow from 9.5.0 to 10.0.1
2023-10-07 10:35:21 +02:00
nicolargo ccb74c8570 MongoDB and CouchDB documentation flipped #2565 2023-10-07 10:24:05 +02:00
nicolargo 0f938bead4 Disable IRQ per default 2023-10-07 10:18:39 +02:00
nicolargo 792e332921 Docker Prometheus issue with IRQ plugin #2564 2023-10-07 10:15:41 +02:00
nicolargo cca55759ee Update glances.conf file for Docker 2023-10-07 09:58:12 +02:00
nicolargo 8ee0a83d77 Make the alerts number configurable (related to #2558) 2023-10-07 09:49:13 +02:00
nicolargo c88e310920 Add graph export for GPU plugin (related to #2542) 2023-10-07 09:05:11 +02:00
nicolargo 2b641f4b5e Remove Python 3.12 because test not working on Windows 2023-10-07 09:00:36 +02:00
nicolargo 62fd5aaee8 Add Python 3.12 support in UnitTest for Windows OS 2023-10-07 08:48:48 +02:00
nicolargo ff22f5abcd Merge branch 'develop' of github.com:nicolargo/glances into develop 2023-10-07 08:42:34 +02:00
nicolargo 17fb3c8d60 Add Python 3.12 support in UnitTest 2023-10-07 08:42:22 +02:00
Nicolas Hennion 9a73bb0a1f
Merge pull request #2559 from evrial/patch-1
Update README.rst
2023-10-07 08:16:52 +02:00
Nagy László Zoltán 82e8d7bac7
Update docker.rst to remove latest-alpine tag
latest-alpine tad is decrepated, so updating the compose example to use latest instead
2023-09-30 11:32:57 +02:00
renovate[bot] 09f6e12a87
chore(deps): update alpine docker tag to v3.18.4 2023-09-29 01:48:44 +00:00
snyk-bot fbb0a6aafb
fix: dev-requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-5918878
2023-09-27 05:20:10 +00:00
Alexander Grigoryev eafc4628da
Update README.rst 2023-09-26 19:37:02 +03:00
Nicolas Hennion f9f73f739c
Merge pull request #2553 from nicolargo/renovate/sass-1.x-lockfile
chore(deps): update dependency sass to v1.68.0
2023-09-23 09:22:30 +02:00
Nicolas Hennion d0de934e9a
Merge pull request #2548 from nicolargo/renovate/docker-setup-qemu-action-3.x
chore(deps): update docker/setup-qemu-action action to v3
2023-09-23 09:22:09 +02:00
Nicolas Hennion 42e660b509
Merge pull request #2547 from nicolargo/renovate/docker-setup-buildx-action-3.x
chore(deps): update docker/setup-buildx-action action to v3
2023-09-23 09:21:58 +02:00
Nicolas Hennion 73fa0a27be
Merge pull request #2546 from nicolargo/renovate/docker-login-action-3.x
chore(deps): update docker/login-action action to v3
2023-09-23 09:21:45 +02:00
Nicolas Hennion 51bb691f88
Merge pull request #2545 from nicolargo/renovate/docker-build-push-action-5.x
chore(deps): update docker/build-push-action action to v5
2023-09-23 09:21:33 +02:00
Nicolas Hennion ea12b36439
Merge pull request #2544 from nicolargo/renovate/crazy-max-ghaction-docker-meta-5.x
chore(deps): update crazy-max/ghaction-docker-meta action to v5
2023-09-23 09:21:23 +02:00
Nicolas Hennion 56530f4b5a
Merge pull request #2541 from nicolargo/renovate/actions-checkout-4.x
chore(deps): update actions/checkout action to v4
2023-09-23 09:21:14 +02:00
Nicolas Hennion 010e231bdc
Merge pull request #2538 from nicolargo/renovate/del-7.x-lockfile
chore(deps): update dependency del to v7.1.0
2023-09-23 09:21:05 +02:00
renovate[bot] 1c3df3dd41
chore(deps): update dependency sass to v1.68.0 2023-09-23 07:21:03 +00:00
Nicolas Hennion b142982932
Merge pull request #2537 from nicolargo/renovate/eslint-8.x-lockfile
chore(deps): update dependency eslint to v8.50.0
2023-09-23 09:20:54 +02:00
Nicolas Hennion e1937a5122
Merge pull request #2535 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.112.0
2023-09-23 09:20:36 +02:00
renovate[bot] 240ac4ee4b
chore(deps): update dependency eslint to v8.50.0 2023-09-22 21:15:59 +00:00
renovate[bot] 16fa5c3b5b
chore(deps): update dependency zeroconf to v0.112.0 2023-09-14 15:02:39 +00:00
renovate[bot] c5ac644fe4
chore(deps): update docker/setup-qemu-action action to v3 2023-09-12 14:09:31 +00:00
renovate[bot] 33c90e0690
chore(deps): update docker/setup-buildx-action action to v3 2023-09-12 11:58:13 +00:00
renovate[bot] 496c96879c
chore(deps): update docker/login-action action to v3 2023-09-12 11:58:09 +00:00
renovate[bot] c179f25248
chore(deps): update docker/build-push-action action to v5 2023-09-12 08:54:14 +00:00
renovate[bot] 8b3bb67405
chore(deps): update crazy-max/ghaction-docker-meta action to v5 2023-09-12 08:54:09 +00:00
nicolargo 9211b39438 By default graph should be generated every 60 seconds if the --export-graph option is used... 2023-09-09 16:48:08 +02:00
nicolargo 3b6a4331c2 By default graph should not be generated every 60 seconds... 2023-09-09 16:46:19 +02:00
renovate[bot] 2fcaa74924
chore(deps): update actions/checkout action to v4 2023-09-04 14:43:42 +00:00
renovate[bot] 621b83b6c9
chore(deps): update dependency del to v7.1.0 2023-08-30 18:28:54 +00:00
nicolargo da4763da59 Minimum Python version is 3.8 (also for Windows) 2023-08-19 17:57:25 +02:00
nicolargo 9d1a28d626 Minimum Python version is 3.8 2023-08-19 17:55:21 +02:00
nicolargo 723e0617bc Merge branch 'issue2518' into develop 2023-08-19 17:51:42 +02:00
nicolargo 990abccf9a Folders plugin always fails on special directories #2518 2023-08-19 17:51:28 +02:00
nicolargo 8f57fd3612 Manage error while scanning folder 2023-08-19 11:06:32 +02:00
Nicolas Hennion 39261ff03d
Merge pull request #2534 from nicolargo/renovate/sass-1.x-lockfile
chore(deps): update dependency sass to v1.66.1
2023-08-19 09:57:16 +02:00
Nicolas Hennion 1e958641bb
Merge pull request #2527 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.80.0
2023-08-19 09:56:59 +02:00
renovate[bot] d11ddde2a0
chore(deps): update dependency sass to v1.66.1 2023-08-19 02:00:37 +00:00
renovate[bot] e70f2762be
chore(deps): update dependency zeroconf to v0.80.0 2023-08-15 21:47:51 +00:00
nicolargo 99d05fdd63 Update README 2023-08-14 10:50:47 +02:00
nicolargo a4d247b52c Update docs 2023-08-14 10:31:07 +02:00
nicolargo 03f6de892e Merge branch 'issue2491' into develop 2023-08-14 10:30:35 +02:00
nicolargo ef2f949f04 Implement a new API method to limit the number of returned list object #2491 2023-08-14 10:30:20 +02:00
nicolargo 1a197aa406 Change log for future debug 2023-08-12 10:45:51 +02:00
nicolargo 5da07da87e Merge branch 'develop' into feature/issue2414 2023-08-12 10:02:34 +02:00
nicolargo c5e11cef59 Update WebUI with news deps 2023-08-12 09:50:27 +02:00
Nicolas Hennion 9340b32330
Merge pull request #2512 from nicolargo/renovate/eslint-plugin-vue-9.x-lockfile
chore(deps): update dependency eslint-plugin-vue to v9.17.0
2023-08-12 09:45:45 +02:00
Nicolas Hennion b671a4eaeb
Merge pull request #2520 from nicolargo/renovate/alpine-3.x
chore(deps): update alpine docker tag to v3.18.3
2023-08-12 09:45:25 +02:00
Nicolas Hennion 2e44614a01
Merge pull request #2519 from nicolargo/renovate/less-4.x-lockfile
chore(deps): update dependency less to v4.2.0
2023-08-12 09:45:08 +02:00
Nicolas Hennion dfe8e9ba68
Merge pull request #2517 from nicolargo/renovate/hotkeys-js-3.x-lockfile
fix(deps): update dependency hotkeys-js to v3.12.0
2023-08-12 09:45:01 +02:00
Nicolas Hennion 6aaad8b262
Merge pull request #2516 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.74.0
2023-08-12 09:44:55 +02:00
Nicolas Hennion 2e0003c1c1
Merge pull request #2515 from nicolargo/renovate/sass-1.x-lockfile
chore(deps): update dependency sass to v1.65.1
2023-08-12 09:44:48 +02:00
Nicolas Hennion f2140db243
Merge pull request #2511 from nicolargo/renovate/eslint-8.x-lockfile
chore(deps): update dependency eslint to v8.47.0
2023-08-12 09:44:37 +02:00
renovate[bot] 22fb1bfcbd
chore(deps): update dependency eslint to v8.47.0 2023-08-11 16:42:02 +00:00
renovate[bot] 50ad307419
chore(deps): update dependency sass to v1.65.1 2023-08-10 02:06:44 +00:00
renovate[bot] 87e87b951c
chore(deps): update dependency eslint-plugin-vue to v9.17.0 2023-08-09 13:39:01 +00:00
renovate[bot] 9cb294feb4
chore(deps): update alpine docker tag to v3.18.3 2023-08-07 23:22:55 +00:00
nicolargo 85bfe7e65f Swap Wifi and Connection plugins 2023-08-06 11:44:48 +02:00
renovate[bot] 967e71eb49
chore(deps): update dependency less to v4.2.0 2023-08-05 18:34:10 +00:00
renovate[bot] b8804457d5
chore(deps): update dependency zeroconf to v0.74.0 2023-08-04 01:17:46 +00:00
renovate[bot] cdb3d4fa71
fix(deps): update dependency hotkeys-js to v3.12.0 2023-08-02 13:14:16 +00:00
Nicolas Hennion 407a3cde21
Merge pull request #2510 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.71.4
2023-07-25 16:05:51 +02:00
nicolargo bd96e30358 Merge branch 'feature/wifihotspot' into develop 2023-07-25 16:04:55 +02:00
nicolargo b28263855b Wifi plugin is back again (only current hotspot using the nmcli command line or the current wifi interface using the /proc/net/wireless file - Related to #1377 2023-07-25 16:04:38 +02:00
renovate[bot] 181ea34d52
chore(deps): update dependency zeroconf to v0.71.4 2023-07-24 18:14:14 +00:00
nicolargo 1def83cb8a Wifi plugin is back again but with a limited scope (only wifi interface are monitored, not all hotspots) 2023-07-24 20:03:46 +02:00
Nicolas Hennion 952f5a409c
Merge pull request #2507 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.71.3
2023-07-24 09:49:23 +02:00
nicolargo 3e007f47c4 Update WebUI with latest lib 2023-07-24 09:48:37 +02:00
Nicolas Hennion ba6c5423f4
Merge pull request #2505 from claha/support-arm-v6
Readd support for arm/v6 to docker image
2023-07-24 09:41:13 +02:00
Nicolas Hennion 9eb67e6c18
Merge pull request #2503 from nicolargo/renovate/sass-1.x-lockfile
chore(deps): update dependency sass to v1.64.1
2023-07-24 09:35:23 +02:00
Nicolas Hennion 22176a9a30
Merge pull request #2501 from nicolargo/renovate/webpack-5.x-lockfile
chore(deps): update dependency webpack to v5.88.2
2023-07-24 09:35:00 +02:00
renovate[bot] 90587b5682
chore(deps): update dependency zeroconf to v0.71.3 2023-07-24 00:16:27 +00:00
renovate[bot] 0edd280d1d
chore(deps): update dependency sass to v1.64.1 2023-07-22 03:30:40 +00:00
Claes Hallström d776508e63 Readd support for arm/v6 to docker image
The support for arm/v6 was dropped since the build was based on python,
which did not have support for arm/v6, but now they are based on alpine.
2023-07-20 22:42:25 +02:00
renovate[bot] 89150d6389
chore(deps): update dependency webpack to v5.88.2 2023-07-18 02:08:50 +00:00
nicolargo 3c2bbd4292 Merge branch 'develop' of github.com:nicolargo/glances into develop 2023-07-15 09:01:15 +02:00
nicolargo 58612661ae Screen frequently flickers when outputting to local display #2490 2023-07-15 09:01:05 +02:00
Nicolas Hennion a01c8d31ca
Merge pull request #2500 from nicolargo/renovate/eslint-8.x-lockfile
chore(deps): update dependency eslint to v8.45.0
2023-07-15 08:35:33 +02:00
renovate[bot] 817abd8510
chore(deps): update dependency eslint to v8.45.0 2023-07-14 16:43:03 +00:00
nicolargo 0eaa4e0006 Ignore/detect symlink loops in folders plugin #2494 2023-07-14 10:01:03 +02:00
Nicolas Hennion 2cb18eddf6
Merge pull request #2495 from nicolargo/renovate/hotkeys-js-3.x-lockfile
fix(deps): update dependency hotkeys-js to v3.11.2
2023-07-14 09:16:14 +02:00
Nicolas Hennion 14592cc0ac
Merge pull request #2487 from nicolargo/renovate/zeroconf-0.x
chore(deps): update dependency zeroconf to v0.71.0
2023-07-14 09:15:55 +02:00
nicolargo ad1de825f9 Correct test_100_secure to avoid pipe error (error only occured in Github pipelines) 2023-07-14 09:12:29 +02:00
nicolargo 7fbf1e725c Update api.rst Typo Fixed #2496 - Update autogenerated docs 2023-07-14 09:01:29 +02:00
nicolargo 3d67f731db Update api.rst Typo Fixed #2496 2023-07-14 09:01:04 +02:00
renovate[bot] 713cc77845
fix(deps): update dependency hotkeys-js to v3.11.2 2023-07-11 07:59:56 +00:00
RazCrimson f77b5d26fa
Merge pull request #2492 from nicolargo/renovate/hotkeys-js-3.x-lockfile
fix(deps): update dependency hotkeys-js to v3.11.1
2023-07-11 03:46:31 +05:30
renovate[bot] 651ddda6a7
fix(deps): update dependency hotkeys-js to v3.11.1 2023-07-10 02:12:07 +00:00
renovate[bot] a234bb407e
chore(deps): update dependency zeroconf to v0.71.0 2023-07-09 00:34:40 +00:00
k26pl 355cd8b08b Fix typos 2023-07-08 17:43:33 +02:00
Nicolas Hennion 551c4d686b
Merge pull request #2488 from k26pl/patch-1
Fix typos
2023-07-08 17:33:45 +02:00
k26pl 0cc3dcbaa0
Fix typos 2023-07-05 10:05:39 +02:00
nicolargo 89f16847bd Change ignore file for renovate.json 2023-07-02 16:02:46 +02:00
Nicolas Hennion 8d27f97b10
Merge pull request #2486 from nicolargo/renovate/hotkeys-js-3.x-lockfile
fix(deps): update dependency hotkeys-js to v3.10.4
2023-07-02 15:50:29 +02:00
renovate[bot] c22c7e088e
fix(deps): update dependency hotkeys-js to v3.10.4 2023-07-02 12:18:23 +00:00
nicolargo 80ca676b04 Update documentation 2023-07-01 11:18:24 +02:00
Nicolas Hennion 09571b4a5c
Merge pull request #2482 from nicolargo/renovate/eslint-8.x-lockfile
chore(deps): update dependency eslint to v8.44.0
2023-07-01 11:17:47 +02:00
Nicolas Hennion 0724d48196
Merge pull request #2478 from nicolargo/renovate/webpack-5.x-lockfile
chore(deps): update dependency webpack to v5.88.1
2023-07-01 11:17:40 +02:00
Nicolas Hennion cf1c8b1388
Merge pull request #2475 from nicolargo/renovate/hotkeys-js-3.x-lockfile
fix(deps): update dependency hotkeys-js to v3.10.3
2023-07-01 11:17:19 +02:00
Nicolas Hennion 3ce41c2f19
Merge pull request #2473 from nicolargo/issue2439
Docs: docker - include OS Release Volume mount info
2023-07-01 11:16:37 +02:00
renovate[bot] 6576206fc3
Update dependency eslint to v8.44.0 2023-07-01 03:59:30 +00:00
renovate[bot] f7c62a606e
Update dependency webpack to v5.88.1 2023-06-28 20:15:55 +00:00
renovate[bot] 5e84b72923
Update dependency hotkeys-js to v3.10.3 2023-06-25 12:36:39 +00:00
RazCrimson 2ae4157a83
Merge pull request #2474 from nicolargo/renovate/eslint-plugin-vue-9.x-lockfile
Update dependency eslint-plugin-vue to v9.15.1
2023-06-24 20:53:00 +05:30
renovate[bot] ae599eec00
Update dependency eslint-plugin-vue to v9.15.1 2023-06-24 15:00:56 +00:00
Bharath Vignesh J K 6f71aee5b8 chg: docs(docker) - use table for image tag variants 2023-06-24 20:08:48 +05:30
Bharath Vignesh J K b4b62e9d32 add: docs(docker) - volume mounts for host info in containers 2023-06-24 20:04:25 +05:30
Bharath Vignesh J K c1a5fddf34 fix: docs(docker) - broken hyperlink 2023-06-24 19:55:02 +05:30
nicolargo 39821a9695 Remove Clear-text logging of sensitive information - Code Scanning #36 2023-06-24 09:34:57 +02:00
Nicolas Hennion 3e7cd36b3b
Merge pull request #2462 from nicolargo/renovate/eslint-plugin-vue-9.x-lockfile
Update dependency eslint-plugin-vue to v9.15.0
2023-06-24 09:05:22 +02:00
Nicolas Hennion f96c89ae80
Merge pull request #2466 from nicolargo/renovate/sass-1.x-lockfile
Update dependency sass to v1.63.6
2023-06-24 09:05:01 +02:00
Nicolas Hennion 87df25fb45
Merge pull request #2468 from nicolargo/renovate/sanitize-html-2.x-lockfile
Update dependency sanitize-html to v2.11.0
2023-06-24 09:04:44 +02:00
Nicolas Hennion 37a9444dbf
Merge pull request #2470 from nicolargo/renovate/webpack-5.x-lockfile
Update dependency webpack to v5.88.0
2023-06-24 09:04:32 +02:00
Nicolas Hennion 4512b97fad
Merge pull request #2461 from nicolargo/renovate/zeroconf-0.x
Update dependency zeroconf to v0.69.0
2023-06-24 09:04:14 +02:00
renovate[bot] 7a8f99869e
Update dependency sass to v1.63.6 2023-06-21 23:14:33 +00:00
renovate[bot] df661206ab
Update dependency webpack to v5.88.0 2023-06-21 18:46:13 +00:00
renovate[bot] 0fbad3ea3d
Update dependency sanitize-html to v2.11.0 2023-06-21 16:21:30 +00:00
renovate[bot] 3be72fdd24
Update dependency zeroconf to v0.69.0 2023-06-18 22:03:48 +00:00
renovate[bot] f02a7717f3
Update dependency eslint-plugin-vue to v9.15.0 2023-06-18 12:31:00 +00:00
nicolargo aeb6891c85 Improve secure.py 2023-06-17 16:28:27 +02:00
nicolargo 21d18c39e8 Correct secure.py 2023-06-17 15:49:13 +02:00
Nicolas Hennion 65124d75a0
Merge pull request #2452 from nicolargo/renovate/html-webpack-plugin-5.x-lockfile
Update dependency html-webpack-plugin to v5.5.3
2023-06-17 09:41:59 +02:00
Nicolas Hennion 8f9aebcd60
Merge pull request #2454 from nicolargo/renovate/zeroconf-0.x
Update dependency zeroconf to v0.66.0
2023-06-17 09:41:49 +02:00
Nicolas Hennion ef7c0f3874
Merge pull request #2455 from nicolargo/renovate/crazy-max-ghaction-docker-meta-4.x
Update crazy-max/ghaction-docker-meta action to v4.6.0
2023-06-17 09:41:36 +02:00
Nicolas Hennion fccd263d1a
Merge pull request #2456 from nicolargo/renovate/sass-1.x-lockfile
Update dependency sass to v1.63.4
2023-06-17 09:41:25 +02:00
Nicolas Hennion c5c62ad7ca
Merge pull request #2457 from nicolargo/renovate/alpine-3.x
Update alpine Docker tag to v3.18.2
2023-06-17 09:41:14 +02:00
Nicolas Hennion 5bdbe39740
Merge pull request #2458 from nicolargo/renovate/webpack-5.x-lockfile
Update dependency webpack to v5.87.0
2023-06-17 09:41:03 +02:00
Nicolas Hennion 356f1f77d6
Merge pull request #2460 from nicolargo/renovate/eslint-8.x-lockfile
Update dependency eslint to v8.43.0
2023-06-17 09:40:50 +02:00
renovate[bot] 9c4f4d257a
Update dependency eslint to v8.43.0 2023-06-16 22:30:06 +00:00
renovate[bot] 2661a96d38
Update dependency webpack to v5.87.0 2023-06-14 18:55:38 +00:00
renovate[bot] 885cecef90
Update alpine Docker tag to v3.18.2 2023-06-14 18:55:26 +00:00
renovate[bot] 9c15c19b88
Update dependency sass to v1.63.4 2023-06-14 04:41:04 +00:00
renovate[bot] a7d54ff70f
Update crazy-max/ghaction-docker-meta action to v4.6.0 2023-06-13 11:47:33 +00:00
renovate[bot] 23d8cf20ae
Update dependency zeroconf to v0.66.0 2023-06-13 03:36:14 +00:00
renovate[bot] 79bef1dd1c
Update dependency html-webpack-plugin to v5.5.3 2023-06-10 22:16:39 +00:00
Nicolas Hennion fc1570da75
Merge pull request #2437 from nicolargo/renovate/less-loader-11.x-lockfile
Update dependency less-loader to v11.1.3
2023-06-10 10:35:59 +02:00
Nicolas Hennion 65fd9414b6
Merge pull request #2438 from nicolargo/renovate/webpack-5.x-lockfile
Update dependency webpack to v5.86.0
2023-06-10 10:35:48 +02:00
Nicolas Hennion b0740fe844
Merge pull request #2440 from nicolargo/renovate/eslint-8.x-lockfile
Update dependency eslint to v8.42.0
2023-06-10 10:35:34 +02:00
Nicolas Hennion 5171cdbc26
Merge pull request #2450 from nicolargo/renovate/webpack-dev-server-4.x-lockfile
Update dependency webpack-dev-server to v4.15.1
2023-06-10 10:35:23 +02:00
Nicolas Hennion cbc57c6380
Merge pull request #2441 from nicolargo/renovate/webpack-cli-5.x-lockfile
Update dependency webpack-cli to v5.1.4
2023-06-10 10:35:09 +02:00
renovate[bot] c5a4003dcf
Update dependency webpack-dev-server to v4.15.1 2023-06-10 08:34:57 +00:00
Nicolas Hennion f224667114
Merge pull request #2443 from nicolargo/renovate/zeroconf-0.x
Update dependency zeroconf to v0.64.1
2023-06-10 10:34:54 +02:00
Nicolas Hennion d15aa93b37
Merge pull request #2449 from nicolargo/renovate/sass-loader-13.x-lockfile
Update dependency sass-loader to v13.3.2
2023-06-10 10:34:40 +02:00
Nicolas Hennion f5f9452968
Merge pull request #2444 from nicolargo/renovate/crazy-max-ghaction-docker-meta-4.x
Update crazy-max/ghaction-docker-meta action to v4.5.0
2023-06-10 10:34:28 +02:00
renovate[bot] ccf961ceca
Update dependency sass-loader to v13.3.2 2023-06-10 08:34:17 +00:00
Nicolas Hennion d6e0d1022f
Merge pull request #2445 from nicolargo/renovate/sass-1.x-lockfile
Update dependency sass to v1.63.3
2023-06-10 10:34:15 +02:00
Nicolas Hennion ce454c17f6
Merge pull request #2448 from nicolargo/renovate/html-webpack-plugin-5.x-lockfile
Update dependency html-webpack-plugin to v5.5.2
2023-06-10 10:34:02 +02:00
Nicolas Hennion 421c3dfdc4
Merge pull request #2434 from nicolargo/renovate/vue-loader-17.x-lockfile
Update dependency vue-loader to v17.2.2
2023-06-10 10:33:49 +02:00
nicolargo 21d02b6c95 Merge branch 'develop' of github.com:nicolargo/glances into develop 2023-06-10 10:33:10 +02:00
nicolargo 5821f84a69 Ignore glances/outputs/static/package-lock.json in Renovate 2023-06-10 10:32:59 +02:00
Nicolas Hennion 97d4cb6afb
Merge pull request #2447 from Antiz96/develop
Double quote array expansions to avoid re-splitting elements in docker-bin.sh
2023-06-10 10:29:35 +02:00
renovate[bot] a260133c39
Update dependency sass to v1.63.3 2023-06-09 16:11:20 +00:00
renovate[bot] 300edd4a93
Update dependency html-webpack-plugin to v5.5.2 2023-06-09 13:51:42 +00:00
Robin Candau b1a1661379 Double quote array expansions to avoid re-splitting elements in docker-bin.sh 2023-06-09 12:51:02 +02:00
renovate[bot] 75dc16a251
Update dependency less-loader to v11.1.3 2023-06-08 22:17:42 +00:00
renovate[bot] 99ca0eea77
Update dependency webpack-cli to v5.1.4 2023-06-07 19:20:10 +00:00
renovate[bot] 1220f95a2a
Update dependency webpack to v5.86.0 2023-06-07 15:59:22 +00:00
renovate[bot] 5819fcc256
Update crazy-max/ghaction-docker-meta action to v4.5.0 2023-06-07 15:59:06 +00:00
renovate[bot] 02a47d21c5
Update dependency zeroconf to v0.64.1 2023-06-05 16:50:24 +00:00
nicolargo 7f08871ca4 Merge branch 'issue1365' into develop 2023-06-04 10:44:56 +02:00
nicolargo cf2dcb3d6b Feature request: support path prefix so we can watch glances via url like http://ip/urlprefix/ #1365 2023-06-04 10:44:42 +02:00
Nicolas Hennion 513e4486fb
Merge pull request #2435 from fr4nc0is/1582-smart-plugin
[WebUI] Added smart plugin support
2023-06-03 18:30:24 +02:00
renovate[bot] 6fbd81d88d
Update dependency eslint to v8.42.0 2023-06-03 02:13:34 +00:00
renovate[bot] 77903a3422
Update dependency vue-loader to v17.2.2 2023-06-02 09:36:29 +00:00
Francois Pires 344f2ebc5a added smart plugin 2023-05-29 18:57:12 +02:00
RazCrimson e8cf98eebc
Merge pull request #2432 from nicolargo/renovate/css-loader-6.x-lockfile
Update dependency css-loader to v6.8.1
2023-05-28 20:00:05 +05:30
RazCrimson 96fa021f68
Merge pull request #2433 from nicolargo/renovate/sass-loader-13.x-lockfile
Update dependency sass-loader to v13.3.1
2023-05-28 19:59:48 +05:30
RazCrimson ec7bbf9776
Merge pull request #2431 from nicolargo/renovate/less-loader-11.x-lockfile
Update dependency less-loader to v11.1.1
2023-05-28 19:59:28 +05:30
renovate[bot] 3bd785fb72
Update dependency css-loader to v6.8.1 2023-05-28 03:02:51 +00:00
renovate[bot] 8fc125cccf
Update dependency sass-loader to v13.3.1 2023-05-28 03:02:33 +00:00
renovate[bot] 3f869fd7d8
Update dependency less-loader to v11.1.1 2023-05-28 00:43:26 +00:00
Nicolas Hennion 1f7db8ad78
Merge pull request #2405 from nicolargo/renovate/vue-monorepo
Update vue monorepo to v3.3.4
2023-05-27 09:35:50 +02:00
Nicolas Hennion 7b99bc6275
Merge pull request #2411 from nicolargo/renovate/css-loader-6.x-lockfile
Update dependency css-loader to v6.7.4
2023-05-27 09:35:36 +02:00
Nicolas Hennion 47d4f72369
Merge pull request #2412 from nicolargo/renovate/style-loader-3.x-lockfile
Update dependency style-loader to v3.3.3
2023-05-27 09:35:25 +02:00
Nicolas Hennion b1dc8e4af7
Merge pull request #2417 from nicolargo/renovate/eslint-8.x-lockfile
Update dependency eslint to v8.41.0
2023-05-27 09:35:13 +02:00
Nicolas Hennion 1e2d71c3a9
Merge pull request #2424 from nicolargo/renovate/eslint-plugin-vue-9.x-lockfile
Update dependency eslint-plugin-vue to v9.14.1
2023-05-27 09:34:35 +02:00
Nicolas Hennion f10eb0e280
Merge pull request #2425 from nicolargo/renovate/sass-loader-13.x-lockfile
Update dependency sass-loader to v13.3.0
2023-05-27 09:34:24 +02:00
Nicolas Hennion 4641d8ccd3
Merge pull request #2428 from nicolargo/renovate/webpack-5.x-lockfile
Update dependency webpack to v5.84.1
2023-05-27 09:34:13 +02:00
nicolargo 62ca9d551f Merge branch 'develop' of github.com:nicolargo/glances into develop 2023-05-27 09:33:48 +02:00
nicolargo f5794f025a Ignore package-lock.json from the Renovate cyber security scanner 2023-05-27 09:33:43 +02:00
Nicolas Hennion 04a11d1c55
Merge pull request #2429 from nicolargo/renovate/zeroconf-0.x
Update dependency zeroconf to v0.63.0
2023-05-27 09:27:10 +02:00
renovate[bot] 36c523c891
Update dependency eslint-plugin-vue to v9.14.1 2023-05-26 12:11:15 +00:00
renovate[bot] 033f4e34dd
Update dependency webpack to v5.84.1 2023-05-25 23:05:15 +00:00
renovate[bot] ae67a5b1d8
Update dependency zeroconf to v0.63.0 2023-05-25 15:24:17 +00:00
renovate[bot] 59573e22ca
Update dependency sass-loader to v13.3.0 2023-05-22 14:44:05 +00:00
nicolargo ae11cd960d Bug in the wrapper... 2023-05-21 18:22:21 +02:00
nicolargo 136036a04f First refactor on disk IO but stats are not good. Bit rate higher thand 30 GB sometime... 2023-05-21 17:13:44 +02:00
nicolargo ae42fa5a82 Rename decorator from manage_gauge to manage_rate 2023-05-20 18:59:42 +02:00
nicolargo 311ce5d00d Avoid div by zero when rate is computed 2023-05-20 18:52:23 +02:00
nicolargo c9caab51f4 Manage gauge in the main Plugin class - Related to #2414 2023-05-20 18:44:42 +02:00
nicolargo 0ecca5b224 Change release note 2023-05-20 16:52:01 +02:00
nicolargo 1470cd9f63 Merge branch 'master' into support/glancesv3 2023-05-20 16:47:20 +02:00
nicolargo f360404a3c version 3.4.0.3 2023-05-20 16:46:56 +02:00
nicolargo f2869b28b7 Correct issue with the PR #2419 - Miss a chmod on the glances startup script 2023-05-20 16:36:40 +02:00
nicolargo ac4da6fd5b Correct issue with the PR #2419 - Miss a chmod on the glances startup script 2023-05-20 16:36:11 +02:00
nicolargo 40fd7fe7c7 Add glances binary to '/usr/local/bin' + Update ENV PATH to include '/venv/bin' in Dockerfiles - Reported from devel branch #2419 2023-05-20 16:09:27 +02:00
nicolargo f85ddbfee9 Merge branch 'Antiz96-develop' into develop 2023-05-20 15:59:41 +02:00
nicolargo 8b7fdc84e1 Merge branch 'develop' of https://github.com/Antiz96/glances into Antiz96-develop 2023-05-20 15:54:29 +02:00
nicolargo 0095d83185 Make also the job on memswap - related to #2420 2023-05-20 12:30:23 +02:00
nicolargo 87b8300cc6 Make also the job on memswap - related to #2420 2023-05-20 12:29:55 +02:00
nicolargo 4669c6be67 No more threshold display in the WebUI cpu/mem and memswap plugins #2420 2023-05-20 12:24:14 +02:00
nicolargo 28101e20fa No more threshold display in the WebUI cpu/mem and memswap plugins #2420 2023-05-20 12:23:48 +02:00
Robin Candau 2413601560 Fix the PATH ENV var 2023-05-20 11:25:40 +02:00
Robin Candau 8a1e4d2c2c typo 2023-05-20 11:20:34 +02:00
Robin Candau 4e102fd0bb Include docker binary file in .dockerignore 2023-05-20 11:13:08 +02:00
Robin Candau 2f1781f346 Add glances binary to '/usr/local/bin' + Update ENV PATH to include '/venv/bin' in Dockerfiles 2023-05-20 11:01:24 +02:00
renovate[bot] 02b2666f6c
chore(deps): update dependency eslint to v8.41.0 2023-05-19 22:44:21 +00:00
nicolargo dc1c7a1ea0 Update AUTHORS 2023-05-19 15:02:43 +02:00
nicolargo 5bb1047151 Get back to Core20 because Snap is PISA again 2023-05-19 10:31:20 +02:00
nicolargo f3cf3aa77b Get back to Core20 because Snap is PISA again 2023-05-19 10:31:05 +02:00
nicolargo d0b7e034e8 Get back to Core20 because Snap is PISA again 2023-05-19 10:30:46 +02:00
nicolargo dbed127987 Get back to Core20 because Snap is PISA 2023-05-19 10:15:56 +02:00
nicolargo ed46b6a3e2 Get back to Core20 because Snap is PISA 2023-05-19 10:15:38 +02:00
nicolargo d42544fb8c Get back to Core20 because Snap is PISA 2023-05-19 10:15:12 +02:00
nicolargo 2ac78a8320 SNAP is PITA 2023-05-19 10:05:01 +02:00
nicolargo 1d86888f76 SNAP is PITA 2023-05-19 10:04:43 +02:00
nicolargo 2da2cb714e SNAP is PITA 2023-05-19 10:04:19 +02:00
nicolargo ef57106fac Snap is a pain in the ass 2023-05-19 09:49:12 +02:00
nicolargo 3874a16e03 Snap is a pain in the ass 2023-05-19 09:48:55 +02:00
nicolargo 33d767b7de Snap is a pain in the ass 2023-05-19 09:48:31 +02:00
nicolargo 3e367235d6 Try to migrate SnapCraft Core 20 to 22 (following guide: https://forum.snapcraft.io/t/micro-howto-migrate-from-core20-to-core22/30188) 2023-05-19 09:34:50 +02:00
nicolargo 50838c4bd6 Try to migrate SnapCraft Core 20 to 22 (following guide: https://forum.snapcraft.io/t/micro-howto-migrate-from-core20-to-core22/30188) 2023-05-19 09:34:36 +02:00
nicolargo c3c0cb6e6c Try to migrate SnapCraft Core 20 to 22 (following guide: https://forum.snapcraft.io/t/micro-howto-migrate-from-core20-to-core22/30188) 2023-05-19 09:21:29 +02:00
nicolargo 5f7e713254 No module named 'influxdb' on the snap version of glances #1738 2023-05-19 09:02:29 +02:00
nicolargo 4a242e718a No module named 'influxdb' on the snap version of glances #1738 2023-05-19 09:02:10 +02:00
renovate[bot] 64fe034e07
chore(deps): update dependency style-loader to v3.3.3 2023-05-19 03:28:07 +00:00
renovate[bot] 928772a3c9
chore(deps): update dependency css-loader to v6.7.4 2023-05-19 03:27:50 +00:00
nicolargo 54a6d95952 Update releases note 2023-05-18 18:22:54 +02:00
nicolargo a6e8c5d186 Cannot start Glances 3.4.0.1 on Windows 10: SIGHUP not defined #2408 2023-05-18 17:28:11 +02:00
nicolargo e160298332 Influxdb2 export not working #2407 2023-05-18 17:08:39 +02:00
renovate[bot] a85b3940fd
chore(deps): update vue monorepo to v3.3.4 2023-05-18 10:26:49 +00:00
Nicolas Hennion 6c33fbc659
Merge pull request #2403 from nicolargo/renovate/vue-monorepo
chore(deps): update vue monorepo to v3.3.3
2023-05-18 09:57:07 +02:00
Nicolas Hennion a10e4a1302
Merge pull request #2402 from nicolargo/renovate/webpack-5.x-lockfile
chore(deps): update dependency webpack to v5.83.1
2023-05-18 09:56:16 +02:00
renovate[bot] 9cba477899
chore(deps): update vue monorepo to v3.3.3 2023-05-18 07:19:17 +00:00
renovate[bot] 582c67e95f
chore(deps): update dependency webpack to v5.83.1 2023-05-17 22:58:18 +00:00
nicolargo 658c3563a7 Improve Makefile to split minimal, full and dev virtualenv 2023-05-17 15:42:39 +02:00
nicolargo 6f4da273c0 Add minimal venv in Makefile 2023-05-17 11:35:46 +02:00
nicolargo 753623ec31 3.4.0 crash on startupwith minimal deps #2401 2023-05-17 11:32:33 +02:00
nicolargo 16b04fdb48 Update doc to run Docker with Podman support 2023-05-16 11:03:02 +02:00
nicolargo 12ab23d1c2 On the road of Glances version 4.0.0 2023-05-16 10:51:17 +02:00
nicolargo 08296ae6c5 Merge branch 'glancesv4' into develop 2023-05-16 10:44:04 +02:00
nicolargo 6343db0344 Merge from develop - aka Glances 3.4.0 2023-05-16 10:31:06 +02:00
Bharath Vignesh J K 25f527a982 Merge branch 'develop' into glancesv4
# Conflicts:
#	glances/plugins/containers/engines/docker.py
2023-05-13 00:45:07 +05:30
Nicolas Hennion 00cce5c608
Merge pull request #2379 from nicolargo/glancesv4-update
Sync `glancesv4` with latest `develop`
2023-05-10 08:50:05 +02:00
Bharath Vignesh J K d8c06e5b40 fix: misc - broken imports 2023-05-10 02:00:33 +05:30
Bharath Vignesh J K 9dd3c444e4 chg: MQTT export - locate installed CA bundle with certifi 2023-05-10 02:00:09 +05:30
Bharath Vignesh J K 43fc28a737 drop: compat.py
reason: compat.py was used only to maintain backcompat with PY2
2023-05-10 01:56:08 +05:30
Bharath Vignesh J K 0e5551364d chg: workflow (test) - drop support for older py versions
some older versions creeped in during the merge
2023-05-10 01:39:14 +05:30
Bharath Vignesh J K 3f93a3989c chore: missed out formatting 2023-05-10 01:22:31 +05:30
Bharath Vignesh J K be5ae310ba fix: Makefile - black config ignored 2023-05-10 01:22:30 +05:30
Bharath Vignesh J K f48dad555d chg: containers - missed stop hook invocation to podman extension 2023-05-10 01:16:00 +05:30
Bharath Vignesh J K d7c1cef28f merge: post-merge cleanup 2023-05-10 01:15:10 +05:30
Bharath Vignesh J K a08d3dc546 Merge from develop 2023-05-10 01:13:38 +05:30
nicolargo db4bd0d136 Merge from develop 2023-03-12 09:44:43 +01:00
nicolargo 70aa46d4a0 Solve conflicts 2022-11-19 16:08:18 +01:00
nicolargo d6818c9c3a Solve issue with merge 2022-10-29 14:42:22 +02:00
nicolargo c5e138f698 Finalize the merge from develop 2022-10-29 11:24:03 +02:00
nicolargo 30f7dbc566 Solve conflicts 2022-10-29 11:13:13 +02:00
nicolargo bbc94568d6 Correct issue following merge with json and csv output 2022-09-09 18:25:37 +02:00
nicolargo 0a39988a5a Merge branch 'develop' into glancesv4 2022-09-09 18:23:43 +02:00
nicolargo 55b063c6b0 Resolve merge conflicts 2022-09-08 10:15:16 +02:00
nicolargo 52964dabec Correct merge issue 2022-08-15 18:21:38 +02:00
nicolargo ff5423e366 Correct unitest (again/again) 2022-08-14 11:24:08 +02:00
nicolargo 723f4f2d25 Correct unitest (again) 2022-08-14 10:57:37 +02:00
nicolargo 6ee41b22b7 Correct unitest 2022-08-14 10:44:01 +02:00
nicolargo e00bb4f336 Merge from develop 2022-08-14 10:39:32 +02:00
nicolargo 9b4afb84cf Merge branch 'develop' into glancesv4 2022-07-28 18:23:58 +02:00
nicolargo e71fbaf0b0 Correct typo with bat percent plugin (sensor) 2022-07-27 09:53:02 +02:00
nicolargo e1683854ce Correct an issue from the latest develop merge 2022-07-27 09:45:07 +02:00
nicolargo dfe0f642ea Resolv first conflict 2022-07-26 10:37:44 +02:00
nicolargo 7080464766 Resolve conflict after develop merge 2022-07-09 14:03:12 +02:00
nicolargo d149a2f3a4 Merge from develop 2022-05-29 13:04:58 +02:00
nicolargo 85c991ff56 Remove a log message 2022-05-25 16:58:23 +02:00
nicolargo 82025891b3 Resolve merge conflicts from develop 2022-05-25 16:01:06 +02:00
nicolargo c34479a996 Merge branch 'develop' into glancesv4 2022-05-03 08:27:15 +02:00
nicolargo 7096c755aa Missing from glances.timer import getTimeSinceLastUpdate 2022-04-17 10:35:22 +02:00
nicolargo 22ea644778 Merge from develop 2022-04-17 10:32:45 +02:00
nicolargo b3c009b22e Correct unitary test failed 2022-03-20 09:26:06 +01:00
nicolargo 7dbe2ffd3d Format code thanks to Black 2022-03-20 09:12:23 +01:00
nicolargo 40864d35e1 Correct merge conflict 2022-03-20 09:09:00 +01:00
nicolargo 899f814e3a Merge branch 'develop' into glancesv4 2022-02-26 15:53:10 +01:00
nicolargo 71a8b37dfb Merge develop 2022-02-26 15:50:56 +01:00
nicolargo f112aaf19c Correct execution error 2022-01-23 10:50:49 +01:00
nicolargo aaf2c0e82d Solve conflict following issue #1049 2022-01-23 10:47:05 +01:00
nicolargo a4d75fedaa Merge branch 'develop' into glancesv4 2022-01-02 09:35:38 +01:00
nicolargo 0eb5dd211c Merge branch 'develop' into glancesv4 2021-12-28 09:41:52 +01:00
nicolargo cec72149cb Merge branch 'develop' into glancesv4 2021-12-27 11:10:54 +01:00
nicolargo 83b11e55d1 Merge branch 'develop' into glancesv4 2021-12-27 10:42:28 +01:00
nicolargo 7d756db882 Correct issue in decorators names 2021-12-05 16:27:55 +01:00
nicolargo 56090c289c Resolv conflict while mergin develop for CPU optim in server mode 2021-12-05 16:21:46 +01:00
nicolargo b3b49b52e2 Run black on the branch 2021-12-05 09:24:27 +01:00
nicolargo b5bb57c4cd Correct conflict following black merge 2021-12-05 09:23:30 +01:00
nicolargo 7c4326e40e Merged from develeop 2021-11-29 09:01:15 +01:00
nicolargo d72f7b0928 Solve conflict with develop 2021-11-28 14:13:29 +01:00
nicolargo 2294e83a27 Resolve conflict during develop merge 2021-11-22 11:47:52 +01:00
nicolargo 9fa87cddf2 Merge branch 'develop' into glancesv4 2021-11-20 10:25:11 +01:00
nicolargo e0e4734659 is_disabled instead of is_disable for system and uptime 2021-11-14 15:56:47 +01:00
nicolargo 3d93926294 Resolve conflict with PR #1949 2021-11-14 12:26:07 +01:00
nicolargo 0bdc1dbc53 Merge branch 'develop' into glancesv4 2021-11-11 18:03:01 +01:00
nicolargo 54d937c93e Merge branch 'develop' into glancesv4 2021-11-11 10:47:16 +01:00
nicolargo 4e5be7e75a Merge branch 'develop' into glancesv4 2021-11-11 10:33:08 +01:00
nicolargo 511b25bb10 Merge branch 'develop' into glancesv4 2021-11-11 10:03:40 +01:00
nicolargo 341f4b1ea4 Correct an conflict while merging Docker plugin 2021-11-06 16:10:51 +01:00
nicolargo 6e9cc89e4d Correct UT for real 2021-11-04 09:58:22 +01:00
nicolargo 5922ccebef Correct UT 2021-11-04 09:54:52 +01:00
nicolargo 9b25f76ee4 Remove unused view.py in the MEM plugin 2021-11-03 10:52:58 +01:00
nicolargo 2b28c3cab5 Correct unitary test 2021-11-03 10:39:04 +01:00
nicolargo ac4e4bee25 Merge branch 'develop' into glancesv4 2021-11-03 10:26:19 +01:00
nicolargo cc4f35419c Merge branch 'develop' into glancesv4 2021-10-08 17:42:23 +02:00
nicolargo 0b42429a63 First try for the view class 2021-09-26 18:47:21 +02:00
nicolargo 2eeab3c3a4 Merge branch 'develop' into glancesv4 2021-09-26 18:03:31 +02:00
nicolargo 518758dda7 Merge branch 'testrefactor' into glancesv4 2021-09-26 18:02:57 +02:00
nicolargo dd5bc83f1b Add default __init__.py file 2021-09-26 17:47:57 +02:00
nicolargo 3573c1a2df Refactor plugins as MVC (only M implement for the moment) 2021-09-26 17:47:09 +02:00
nicolargo 0d6a6eb92b Correct class name error in debug message 2021-09-26 09:03:23 +02:00
nicolargo dc90c3f52f Correct an issue on idle display 2021-09-25 10:12:52 +02:00
nicolargo 1971965fa6 Add comment to change AMP in future release 2021-09-19 10:28:24 +02:00
nicolargo 9713b083ab Add README.rst for plugins and exports 2021-09-04 17:01:38 +02:00
nicolargo a0b5982f1d Refactor exports modules loading 2021-09-04 16:46:20 +02:00
nicolargo 23292675a3 Merge branch 'develop' into glancesv4 2021-09-04 09:39:31 +02:00
nicolargo 64eab612a3 Plugin sensors and main plugin OK 2021-09-04 09:39:17 +02:00
nicolargo d80a9cf229 Remove future dep 2021-08-29 14:48:24 +02:00
nicolargo 750f33f5b1 Merge branch 'develop' into glancesv4 2021-08-29 10:37:44 +02:00
nicolargo 32152d7ca5 Remove Python 3.4 test 2021-08-29 09:54:52 +02:00
nicolargo 7544c959e3 Avoid circular loop when init docker plugin 2021-08-28 11:08:16 +02:00
nicolargo cb68d216d2 Merge compat into globals 2021-08-28 10:56:04 +02:00
nicolargo 76ea71f256 Remove Python 2 in docs and README files 2021-08-28 10:23:19 +02:00
nicolargo 15173dd431 Correct unitests 2021-08-25 13:07:44 +02:00
nicolargo 83170d7da5 Plugins are classes 2021-08-24 10:04:02 +02:00
394 changed files with 48009 additions and 33465 deletions

View File

@ -1,2 +0,0 @@
[bandit]
exclude: ./docs,./glances/outputs/static/node_modules

View File

@ -4,7 +4,6 @@ include =
*glances*
omit =
setup.py
glances/outputs/*
glances/exports/*
glances/compat.py

View File

@ -8,10 +8,15 @@
!/glances/outputs/static
# Include Requirements files
!/requirements.txt
!/all-requirements.txt
!/docker-requirements.txt
!/webui-requirements.txt
!/optional-requirements.txt
# Include Config file
!/docker-compose/glances.conf
!/docker-files/docker-logger.json
# Include Binary file
!/docker-bin.sh
# Include TOML file
!/pyproject.toml

View File

@ -1,8 +0,0 @@
[flake8]
exclude = .git,__pycache__,docs/,build,dist
ignore =
W504, B007, B014, B008, B902, Q000,
N801, N802, N803, N806, N807, N811, N812, N813, N814, N815, N816, N817, N818
# lines should not exceed 120 characters
max-line-length = 120

View File

@ -6,6 +6,9 @@ labels: ''
assignees: ''
---
**Check the bug**
Before filling this bug report, please search if a similar issue already exists.
In this case, just add a comment on this existing issue.
**Describe the bug**
A clear and concise description of what the bug is.
@ -26,11 +29,7 @@ If applicable, add screenshots to help explain your problem.
- Operating System (lsb_release -a or OS name/version): `To be completed with result of: lsb_release -a`
- Glances & psutil versions: `To be completed with result of: glances -V`
- How do you install Glances (Pypi package, script, package manager, source): `To be completed`
- Glances test (only available with Glances 3.1.7 or higher):
```
To be completed with result of: glances --issue
```
- Glances test: ` To be completed with result of: glances --issue`
**Additional context**
Add any other context about the problem here.

View File

@ -1,153 +1,82 @@
# This pipeline aims at building Glances for the following targets:
# - Docker Hub
# - Pypi
# This pipeline aims at building Glances Pypi packages
name: CI
env:
DEFAULT_DOCKER_IMAGE: nicolargo/glances
NODE_ENV: ${{ (contains('refs/heads/master', github.ref) || startsWith(github.ref, 'refs/tags/v')) && 'prod' || 'dev' }}
PUSH_BRANCH: ${{ 'refs/heads/develop' == github.ref || 'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/v') }}
# linux/arm/v7 (drop support for v6) support following issue - See issue #2120
DOCKER_PLATFORMS: linux/amd64,linux/arm/v7,linux/arm64,linux/386
# Ubuntu image only support linux/amd64 and linux/arm64 - See issue #2185
DOCKER_PLATFORMS_UBUNTU: linux/amd64,linux/arm64
name: build
on:
pull_request:
branches: [ develop ]
push:
branches: [ master, develop ]
tags:
- v*
workflow_call:
jobs:
pypi:
build:
name: Build distribution 📦
if: github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install pip install build tools
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install pypa/build
run: >-
python -m
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: >-
python -m
build
--sdist
--wheel
--outdir dist/
- name: Publish distribution package to Test PyPI
uses: pypa/gh-action-pypi-publish@master
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
skip_existing: true
name: python-package-distributions
path: dist/
- name: Publish distribution package to PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
create_Docker_builds:
runs-on: ubuntu-latest
# Make sure we release the python package first. So we are sure to get the latest.
pypi:
name: Publish Python 🐍 distribution 📦 to PyPI
if: startsWith(github.ref, 'refs/tags')
needs:
- pypi
outputs:
tags: ${{ steps.config.outputs.tags }}
steps:
- name: Determine image tags
id: config
shell: bash
run: |
TAG_ARRAY='['
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
TAG_ARRAY="$TAG_ARRAY { \"target\": \"minimal\", \"tag\": \"${VERSION}\" },"
TAG_ARRAY="$TAG_ARRAY { \"target\": \"full\", \"tag\": \"${VERSION}-full\" },"
elif [[ $GITHUB_REF == refs/heads/develop ]]; then
TAG_ARRAY="$TAG_ARRAY { \"target\": \"dev\", \"tag\": \"dev\" },"
else
TAG_ARRAY="$TAG_ARRAY { \"target\": \"minimal\", \"tag\": \"latest\" },"
TAG_ARRAY="$TAG_ARRAY { \"target\": \"full\", \"tag\": \"latest-full\" },"
fi
TAG_ARRAY="${TAG_ARRAY::-1} ]"
echo "Tags to build: $TAG_ARRAY"
echo "::set-output name=tags::$TAG_ARRAY"
build_Docker_image:
- build
runs-on: ubuntu-latest
needs:
- create_Docker_builds
strategy:
fail-fast: false
matrix:
os: ['alpine', 'ubuntu']
tag: ${{ fromJson(needs.create_Docker_builds.outputs.tags) }}
environment:
name: pypi
url: https://pypi.org/p/glances
permissions:
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Retrieve Repository Docker metadata
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v4.4.0
- name: Download all the dists
uses: actions/download-artifact@v5
with:
images: ${{ env.DEFAULT_DOCKER_IMAGE }}
labels: |
org.opencontainers.image.url=https://nicolargo.github.io/glances/
- name: Cache Docker layers
uses: actions/cache@v3
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ env.NODE_ENV }}-${{ matrix.os }}-${{ matrix.tag.tag }}
restore-keys: ${{ runner.os }}-buildx-${{ env.NODE_ENV }}-${{ matrix.os }}
skip-existing: true
attestations: false
print-hash: true
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
pypi_test:
name: Publish Python 🐍 distribution 📦 to TestPyPI
if: github.ref == 'refs/heads/develop'
needs:
- build
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://pypi.org/p/glances
permissions:
attestations: write
id-token: write
steps:
- name: Download all the dists
uses: actions/download-artifact@v5
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@v2
if: ${{ env.PUSH_BRANCH == 'true' }}
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push image
uses: docker/build-push-action@v4
with:
push: ${{ env.PUSH_BRANCH == 'true' }}
tags: "${{ env.DEFAULT_DOCKER_IMAGE }}:${{ matrix.os != 'alpine' && format('{0}-', matrix.os) || '' }}${{ matrix.tag.tag }}"
build-args: |
CHANGING_ARG=${{ github.sha }}
context: .
file: "docker-files/${{ matrix.os }}.Dockerfile"
platforms: ${{ matrix.os != 'ubuntu' && env.DOCKER_PLATFORMS || env.DOCKER_PLATFORMS_UBUNTU }}
target: ${{ matrix.tag.target }}
labels: ${{ steps.docker_meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
repository-url: https://test.pypi.org/legacy/
skip-existing: true
attestations: false

105
.github/workflows/build_docker.yml vendored Normal file
View File

@ -0,0 +1,105 @@
# This pipeline aims at building Glances Docker images
name: build_docker
env:
DEFAULT_DOCKER_IMAGE: nicolargo/glances
PUSH_BRANCH: ${{ 'refs/heads/develop' == github.ref || startsWith(github.ref, 'refs/tags/v') }}
# Alpine image platform: https://hub.docker.com/_/alpine
# linux/arm/v6,linux/arm/v7 do not work (timeout during the build)
DOCKER_PLATFORMS: linux/amd64,linux/arm64/v8
# Ubuntu image platforms list: https://hub.docker.com/_/ubuntu
# linux/arm/v7 do not work (Cargo/Rust not available)
DOCKER_PLATFORMS_UBUNTU: linux/amd64,linux/arm64/v8
on:
workflow_call:
secrets:
DOCKER_USERNAME:
description: 'Docker Hub username'
required: true
DOCKER_TOKEN:
description: 'Docker Hub token'
required: true
jobs:
create_docker_images_list:
runs-on: ubuntu-latest
outputs:
tags: ${{ steps.config.outputs.tags }}
steps:
- name: Determine image tags
id: config
shell: bash
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
TAG_ARRAY="[{ \"target\": \"minimal\", \"tag\": \"${VERSION}\" },"
TAG_ARRAY="$TAG_ARRAY { \"target\": \"minimal\", \"tag\": \"latest\" },"
TAG_ARRAY="$TAG_ARRAY { \"target\": \"full\", \"tag\": \"${VERSION}-full\" },"
TAG_ARRAY="$TAG_ARRAY { \"target\": \"full\", \"tag\": \"latest-full\" }]"
elif [[ $GITHUB_REF == refs/heads/develop ]]; then
TAG_ARRAY="[{ \"target\": \"dev\", \"tag\": \"dev\" }]"
else
TAG_ARRAY="[]"
fi
echo "Tags to build: $TAG_ARRAY"
echo "tags=$TAG_ARRAY" >> $GITHUB_OUTPUT
build_docker_images:
runs-on: ubuntu-latest
needs:
- create_docker_images_list
strategy:
fail-fast: false
matrix:
os: ['alpine', 'ubuntu']
tag: ${{ fromJson(needs.create_docker_images_list.outputs.tags) }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Retrieve Repository Docker metadata
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ${{ env.DEFAULT_DOCKER_IMAGE }}
labels: |
org.opencontainers.image.url=https://nicolargo.github.io/glances/
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@v3
if: ${{ env.PUSH_BRANCH == 'true' }}
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push image
uses: docker/build-push-action@v6
with:
push: ${{ env.PUSH_BRANCH == 'true' }}
tags: "${{ env.DEFAULT_DOCKER_IMAGE }}:${{ matrix.os != 'alpine' && format('{0}-', matrix.os) || '' }}${{ matrix.tag.tag }}"
build-args: |
CHANGING_ARG=${{ github.sha }}
context: .
file: "docker-files/${{ matrix.os }}.Dockerfile"
platforms: ${{ matrix.os != 'ubuntu' && env.DOCKER_PLATFORMS || env.DOCKER_PLATFORMS_UBUNTU }}
target: ${{ matrix.tag.target }}
labels: ${{ steps.docker_meta.outputs.labels }}
# GHA default behaviour overwrites last build cache. Causes alpine and ubuntu cache to overwrite each other.
# Use `scope` with the os name to prevent that
cache-from: 'type=gha,scope=${{ matrix.os }}'
cache-to: 'type=gha,mode=max,scope=${{ matrix.os }}'

27
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: ci
on:
pull_request:
branches: [ develop ]
push:
branches: [ master, develop ]
tags:
- v*
jobs:
quality:
uses: ./.github/workflows/quality.yml
test:
uses: ./.github/workflows/test.yml
needs: [quality]
build:
if: github.event_name != 'pull_request'
uses: ./.github/workflows/build.yml
needs: [quality, test]
build_docker:
if: github.event_name != 'pull_request'
uses: ./.github/workflows/build_docker.yml
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
needs: [quality, test]

28
.github/workflows/cyber.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: cyber
on:
workflow_call:
jobs:
trivy:
name: Trivy scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'

22
.github/workflows/inactive_issues.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Label inactive issues
on:
schedule:
- cron: "30 1 * * *"
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v10
with:
days-before-issue-stale: 90
days-before-issue-close: -1
stale-issue-label: "inactive"
stale-issue-message: "This issue is stale because it has been open for 3 months with no activity."
close-issue-message: "This issue was closed because it has been inactive for 30 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}

22
.github/workflows/needs_contributor.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Add a message when needs contributor tag is used
on:
issues:
types:
- labeled
jobs:
add-comment:
if: github.event.label.name == 'needs contributor'
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Add comment
run: gh issue comment "$NUMBER" --body "$BODY"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
BODY: >
This issue is available for anyone to work on.
**Make sure to reference this issue in your pull request.**
:sparkles: Thank you for your contribution ! :sparkles:

View File

@ -1,24 +1,7 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
name: quality
on:
push:
branches: [ develop ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ develop ]
schedule:
- cron: '20 20 * * 0'
workflow_call:
jobs:
analyze:
@ -39,11 +22,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@ -54,7 +37,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@ -68,4 +51,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

View File

@ -1,86 +1,143 @@
# Run unitary test + flake8
# Run unitary test
name: test
on: [push]
on:
workflow_call:
jobs:
source-code-checks:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- name: Check formatting with Ruff
uses: chartboost/ruff-action@v1
with:
args: 'format --check'
- name: Check linting with Ruff
uses: chartboost/ruff-action@v1
with:
args: 'check'
# - name: Static type check
# run: |
# echo "Skipping static type check for the moment, too much error...";
# # pip install pyright
# # pyright glances
test-linux:
runs-on: ubuntu-latest
needs: source-code-checks
# https://github.com/actions/runner-images?tab=readme-ov-file#available-images
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["2.7", "3.7", "3.8", "3.9", "3.10", "3.11"]
# Python EOL version are note tested
# Multiple Python version only tested for Linux
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
run: |
# Stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude=.git,./docs,./glances/outputs/static
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --exclude=.git,./docs,./glances/outputs/static
# - name: Lint with Ruff
# uses: chartboost/ruff-action@v1
- name: Static type check
run: |
if [ "${{ matrix.python-version }}" == "2.7" ];
then
echo "Skipping static type check for Python 2.7";
else
echo "Skipping static type check for the moment, too much error...";
# pip install pyright
# pyright glances
fi
- name: Unitary tests
run: |
python ./unitest.py
- name: Security issues with Bandit
uses: jpetrucciani/bandit-check@master
with:
#path: '-r --exit-zero --skip B104 ./glances/'
path: '-r --exit-zero --skip B104 ./glances/'
- name: Install dependencies
run: |
if [ -f dev-requirements.txt ]; then python -m pip install -r dev-requirements.txt; fi
if [ -f requirements.txt ]; then python -m pip install -r requirements.txt; fi
- name: Unitary tests
run: |
python -m pytest ./tests/test_core.py
test-windows:
runs-on: windows-latest
needs: source-code-checks
# https://github.com/actions/runner-images?tab=readme-ov-file#available-images
runs-on: windows-2025
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
# Windows-curses not available for Python 3.14 for the moment
# See https://github.com/zephyrproject-rtos/windows-curses/issues/76
python-version: ["3.13"]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if (Test-Path -PathType Leaf "dev-requirements.txt") { python -m pip install -r dev-requirements.txt }
if (Test-Path -PathType Leaf "requirements.txt") { python -m pip install -r requirements.txt }
python setup.py install
pip install .
- name: Unitary tests
run: |
python ./unitest.py
python -m pytest ./tests/test_core.py
test-macos:
needs: source-code-checks
# https://github.com/actions/runner-images?tab=readme-ov-file#available-images
runs-on: macos-15
strategy:
matrix:
# Only test the latest stable version
python-version: ["3.14"]
steps:
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
if [ -f dev-requirements.txt ]; then python -m pip install -r dev-requirements.txt; fi
if [ -f requirements.txt ]; then python -m pip install -r requirements.txt; fi
- name: Unitary tests
run: |
python -m pytest ./tests/test_core.py
# Error when trying to implement #2749
# pkg: No packages available to install matching 'py-pip' have been found in the repositories
# test-freebsd:
# runs-on: ubuntu-22.04
# steps:
# - uses: actions/checkout@v4
# - name: Run tests
# uses: vmactions/freebsd-vm@v1
# with:
# usesh: true
# prepare: |
# pkg install -y python3
# run: |
# set -e -x
# python3 -m pip install pytest
# python3 -m pip install --user -r dev-requirements.txt
# python3 -m pip install --user -r requirements.txt
# python3 -m pytest ./tests/test_core.py

40
.github/workflows/webui.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: webui
on:
workflow_call:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v5
- name: Glances will be build with Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: ./glances/outputs/static/package-lock.json
- name: Build Glances WebUI
working-directory: ./glances/outputs/static
# TODO: add the following line when https://github.com/nicolargo/glances/issues/2914 will be solved
# npm audit fix
run: |
npm ci
npm run build
- name: Commit and push WebUI
env:
CI_COMMIT_MESSAGE: Continuous Integration Build Artifacts
CI_COMMIT_AUTHOR: Continuous Integration
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "username@users.noreply.github.com"
git add glances/outputs/static
/bin/bash -c "git commit -m '${{ env.CI_COMMIT_MESSAGE }}' || true"
git push

13
.gitignore vendored
View File

@ -23,9 +23,11 @@ local.properties
.classpath
.settings/
.loadpath
.ipynb_checkpoints/
# External tool builders
.externalToolBuilders/
*yarn.lock
# Locally stored "Eclipse launch configurations"
*.launch
@ -62,5 +64,14 @@ bower_components/
/*_source.tar.bz2
# Virtual env
/venv/
.venv-uv/
.venv/
uv.lock
.python-version
# Test
.coverage
tests-data/issues/*/config/
# Local SSL certificates
glances.local*.pem

107
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,107 @@
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.24.2
hooks:
- id: gitleaks
name: "🔒 security · Detect hardcoded secrets"
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.10
hooks:
- id: ruff-format
name: "🐍 python · Formatter with Ruff"
types_or: [ python, pyi ]
args: [ --config, './pyproject.toml' ]
- id: ruff-check
name: "🐍 python · Linter with Ruff"
types_or: [ python, pyi ]
args: [ --fix, --exit-non-zero-on-fix, --config, './pyproject.toml' ]
# - repo: https://github.com/RobertCraigie/pyright-python
# rev: v1.1.391
# hooks:
# - id: pyright
# name: "🐍 python · Check types"
# - repo: https://github.com/biomejs/pre-commit
# rev: "v2.3.7"
# hooks:
# - id: biome-check
# name: "🟨 javascript · Lint, format, and safe fixes with Biome"
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.35.0
hooks:
- id: check-github-workflows
name: "🐙 github-actions · Validate gh workflow files"
args: ["--verbose"]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
name: "🐚 shell · Lint shell scripts"
- repo: https://github.com/openstack/bashate
rev: 2.1.1
hooks:
- id: bashate
name: "🐚 shell · Check shell script code style"
entry: bashate --error . --ignore=E006
# - repo: https://github.com/mrtazz/checkmake.git
# rev: 0.2.2
# hooks:
# - id: checkmake
# name: "🐮 Makefile · Lint Makefile"
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-executables-have-shebangs
name: "📁 filesystem/⚙️ exec · Verify shebang presence"
- id: check-shebang-scripts-are-executable
name: "📁 filesystem/⚙️ exec · Verify script permissions"
- id: check-case-conflict
name: "📁 filesystem/📝 names · Check case sensitivity"
- id: destroyed-symlinks
name: "📁 filesystem/🔗 symlink · Detect broken symlinks"
- id: check-merge-conflict
name: "🌳 git · Detect conflict markers"
- id: forbid-new-submodules
name: "🌳 git · Prevent submodule creation"
- id: no-commit-to-branch
name: "🌳 git · Protect main branches"
args: ["--branch", "main", "--branch", "master"]
- id: check-added-large-files
name: "🌳 git · Block large file commits"
args: ['--maxkb=5000']
- id: check-ast
name: "🐍 python/🔍 quality · Validate Python AST"
- id: check-docstring-first
name: "🐍 python/📝 style · Enforce docstring at top"
- id: check-json
name: "📄 formats/json · Validate JSON files"
- id: check-shebang-scripts-are-executable
name: "📁 filesystem/⚙️ exec · Ensure scripts are executable"
- id: check-toml
name: "📄 formats/toml · Validate TOML files"
- id: check-yaml
name: "📄 formats/yaml · Validate YAML syntax"
- id: debug-statements
name: "🐍 python/🪲 debug · Detect debug statements"
- id: detect-private-key
name: "🔐 security · Detect private keys"
- id: mixed-line-ending
name: "📄 text/↩️ newline · Normalize line endings"
- id: requirements-txt-fixer
name: "🐍 python/📦 deps · Sort requirements.txt"
- repo: local
hooks:
- id: find-duplicate-lines
name: "❗local script · Find duplicate lines at the end of file"
entry: bash tests-data/tools/find-duplicate-lines.sh
language: system
types: [python]
pass_filenames: false

34
.readthedocs.yaml Normal file
View File

@ -0,0 +1,34 @@
# Read the Docs configuration file for Glances projects
# Required
version: 2
# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"
# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true
# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: dev-requirements.txt

13
AUTHORS
View File

@ -10,6 +10,12 @@ nicolashennion@gmail.com
PGP Fingerprint: A0D9 628F 5A83 A879 48EA B1FE BA43 C11F 2C8B 4347
PGP Public key: gpg --keyserver pgp.mit.edu --recv-keys 0xba43c11f2c8b4347
RazCrimson (maintainer of the Glances project)
https://github.com/RazCrimson
Ariel Otibili (aka) ariel-anieli (for the huge work on code quality)
https://github.com/ariel-anieli
Alessio Sergi (aka) Al3hex (thanks you for the great job on this project)
https://twitter.com/al3hex
https://github.com/asergi
@ -17,6 +23,9 @@ https://github.com/asergi
Floran Brutel (aka) notFloran (maintainer of the Web User Interface)
https://github.com/notFloran
fr4nc0is (maintainer of the Web User Interface)
https://github.com/fr4nc0is
Brandon Philips (aka) Philips
http://ifup.org/
https://github.com/philips
@ -58,3 +67,7 @@ http://www.macports.org/ports.php?by=name&substr=glances
John Kirkham for the conda package (at conda-forge)
https://github.com/conda-forge/glances-feedstock
Rui Chen for the Homebrew package
https://chenrui.dev/
https://formulae.brew.sh/formula/glances

View File

@ -6,7 +6,7 @@ In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
education, socioeconomic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.
## Our Standards

View File

@ -10,7 +10,6 @@ the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue or assessing
patches and features.
## Using the issue tracker
The [issue tracker](https://github.com/nicolargo/glances/issues) is
@ -24,7 +23,6 @@ restrictions:
* Please **do not** derail or troll issues. Keep the discussion on topic and
respect the opinions of others.
## Bug reports
A bug is a _demonstrable problem_ that is caused by the code in the repository.
@ -65,19 +63,17 @@ Example:
> causing the bug, and potential solutions (and your opinions on their
> merits).
>
> You can also run Glances in debug mode (-d) and paste/bin the glances.conf file (https://glances.readthedocs.io/en/latest/config.html).
> You can also run Glances in debug mode (-d) and paste/bin the glances.conf file (<https://glances.readthedocs.io/en/latest/config.html>).
>
> Glances 3.2.0 or higher have also a --issue option to run a simple test. Please use it and copy/paste the output.
## Feature requests
Feature requests are welcome. But take a moment to find out whether your idea
fits with the scope and aims of the project. It's up to *you* to make a strong
fits with the scope and aims of the project. It's up to _you* to make a strong
case to convince the project's developers of the merits of this feature. Please
provide as much detail and context as possible.
## Pull requests
Good pull requests—patches, improvements, new features—are a fantastic
@ -133,6 +129,7 @@ included in the project:
5. Test you code using the Makefile:
* make format ==> Format your code thanks to the Ruff linter
* make run ==> Run Glances
* make run-webserver ==> Run a Glances Web Server
* make test ==> Run unit tests

View File

@ -3,7 +3,12 @@ include CONTRIBUTING.md
include COPYING
include NEWS.rst
include README.rst
include README-pypi.rst
include SECURITY.md
include conf/glances.conf
include conf/fetch-templates/*.jinja
include requirements.txt
include all-requirements.txt
recursive-include docs *
recursive-include glances *.py
recursive-include glances/outputs/static *

387
Makefile
View File

@ -1,206 +1,387 @@
PORT?=8008
LASTTAG = $(shell git describe --tags --abbrev=0)
PORT ?= 8008
CONF := conf/glances.conf
LASTTAG = $(shell git describe --tags --abbrev=0)
IMAGES_TYPES := full minimal
DISTROS := alpine ubuntu
alpine_images := $(IMAGES_TYPES:%=docker-alpine-%)
ubuntu_images := $(IMAGES_TYPES:%=docker-ubuntu-%)
DOCKER_IMAGES := $(alpine_images) $(ubuntu_images)
DOCKER_RUNTIMES := $(DOCKER_IMAGES:%=run-%)
UNIT_TESTS := test-core test-restful test-xmlrpc
DOCKER_BUILD := docker buildx build
DOCKER_RUN := docker run
PODMAN_SOCK ?= /run/user/$(shell id -u)/podman/podman.sock
DOCKER_SOCK ?= /var/run/docker.sock
DOCKER_SOCKS := -v $(PODMAN_SOCK):$(PODMAN_SOCK):ro -v $(DOCKER_SOCK):$(DOCKER_SOCK):ro
DOCKER_OPTS := --rm -e TZ="${TZ}" -e GLANCES_OPT="" --pid host --network host
UV_RUN := .venv-uv/bin/uv
# if the command is only `make`, the default tasks will be the printing of the help.
.DEFAULT_GOAL := help
.PHONY: help
.PHONY: help test docs docs-server venv requirements profiling docker all clean all test
help: ## List all make commands available
@grep -E '^[\.a-zA-Z_%-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk -F ":" '{print $1}' | grep -v % | sed 's/\\//g' | sort | awk 'BEGIN {FS = ":[^:]*?##"}; {printf "\033[1;34mmake %-50s\033[0m %s\n", $$1, $$2}'
@grep -E '^[\.a-zA-Z_%-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk -F ":" '{print $1}' | \
grep -v % | sed 's/\\//g' | sort | \
awk 'BEGIN {FS = ":[^:]*?##"}; {printf "\033[1;34mmake %-50s\033[0m %s\n", $$1, $$2}'
install: ## Open a Web Browser to the installation procedure
sensible-browser "https://github.com/nicolargo/glances#installation"
# ===================================================================
# Virtualenv
# ===================================================================
venv-python: ## Install Python 3 venv
virtualenv -p /usr/bin/python3 venv
# install-uv: ## Instructions to install the UV tool
# @echo "Install the UV tool (https://astral.sh/uv/)"
# @echo "Please install the UV tool manually"
# @echo "For example with: curl -LsSf https://astral.sh/uv/install.sh | sh"
# @echo "Or via a package manager of your distribution"
# @echo "For example for Snap: snap install astral-uv"
venv-dev: venv-python ## Install Python 3 dev dependencies
./venv/bin/pip install -r dev-requirements.txt
./venv/bin/pip install -r doc-requirements.txt
install-uv: ## Install UV tool in a specific virtualenv
python3 -m venv .venv-uv
.venv-uv/bin/pip install uv
venv-dev-upgrade: ## Upgrade Python 3 dev dependencies
./venv/bin/pip install --upgrade pip
./venv/bin/pip install --upgrade -r dev-requirements.txt
./venv/bin/pip install --upgrade -r doc-requirements.txt
upgrade-uv: ## Upgrade the UV tool
.venv-uv/bin/pip install --upgrade pip
.venv-uv/bin/pip install --upgrade uv
venv: venv-python ## Install Python 3 run-time dependencies
./venv/bin/pip install -r requirements.txt
./venv/bin/pip install -r optional-requirements.txt
venv: ## Create the virtualenv with all dependencies
$(UV_RUN) sync --all-extras --no-group dev
venv-upgrade: ## Upgrade Python 3 run-time dependencies
./venv/bin/pip install --upgrade -r requirements.txt
./venv/bin/pip install --upgrade -r optional-requirements.txt
venv-upgrade venv-switch-to-full: ## Upgrade the virtualenv with all dependencies
$(UV_RUN) sync --upgrade --all-extras
venv-min: ## Create the virtualenv with minimal dependencies
$(UV_RUN) sync
venv-upgrade-min venv-switch-to-min: ## Upgrade the virtualenv with minimal dependencies
$(UV_RUN) sync --upgrade
venv-clean: ## Remove the virtualenv
rm -rf .venv
venv-dev: ## Create the virtualenv with dev dependencies
$(UV_RUN) sync --dev --all-extras
$(UV_RUN) run pre-commit install --hook-type pre-commit
# ===================================================================
# Requirements
#
# Note: the --no-hashes option should be used because pip (in CI) has
# issues with hashes.
# ===================================================================
requirements-min: ## Generate the requirements.txt files (minimal dependencies)
$(UV_RUN) export --no-emit-workspace --no-hashes --no-group dev --output-file requirements.txt
requirements-all: ## Generate the all-requirements.txt files (all dependencies)
$(UV_RUN) export --no-emit-workspace --no-hashes --all-extras --no-group dev --output-file all-requirements.txt
requirements-docker: ## Generate the docker-requirements.txt files (Docker specific dependencies)
$(UV_RUN) export --no-emit-workspace --no-hashes --no-group dev --extra containers --extra web --output-file docker-requirements.txt
requirements-dev: ## Generate the dev-requirements.txt files (dev dependencies)
$(UV_RUN) export --no-hashes --only-dev --output-file dev-requirements.txt
requirements: requirements-min requirements-all requirements-dev requirements-docker ## Generate all the requirements files
requirements-upgrade: venv-upgrade requirements ## Upgrade the virtualenv and regenerate all the requirements files
# ===================================================================
# Tests
# ===================================================================
test: ## Run unit tests
./venv/bin/python ./unitest.py
./venv/bin/python ./unitest-restful.py
./venv/bin/python ./unitest-xmlrpc.py
./venv/bin/python -m black ./glances --check --exclude outputs/static
# ./venv/bin/pyright glances
test: ## Run All unit tests
$(UV_RUN) run pytest
test-with-upgrade: venv-upgrade venv-dev-upgrade ## Run unit tests
./venv/bin/python ./unitest.py
./venv/bin/python ./unitest-restful.py
./venv/bin/python ./unitest-xmlrpc.py
./venv/bin/python -m black ./glances --check --exclude outputs/static
# ./venv/bin/pyright glances
test-core: ## Run Core unit tests
$(UV_RUN) run pytest tests/test_core.py
test-api: ## Run API unit tests
$(UV_RUN) run pytest tests/test_api.py
test-memoryleak: ## Run Memory-leak unit tests
$(UV_RUN) run pytest tests/test_memoryleak.py
test-perf: ## Run Perf unit tests
$(UV_RUN) run pytest tests/test_perf.py
test-restful: ## Run Restful API unit tests
$(UV_RUN) run pytest tests/test_restful.py
test-webui: ## Run WebUI unit tests
$(UV_RUN) run pytest tests/test_webui.py
test-xmlrpc: ## Run XMLRPC API unit tests
$(UV_RUN) run pytest tests/test_xmlrpc.py
test-with-upgrade: venv-upgrade test ## Upgrade deps and run unit tests
test-export-csv: ## Run interface tests with CSV
/bin/bash ./tests/test_export_csv.sh
test-export-json: ## Run interface tests with JSON
/bin/bash ./tests/test_export_json.sh
test-export-influxdb-v1: ## Run interface tests with InfluxDB version 1 (Legacy)
/bin/bash ./tests/test_export_influxdb_v1.sh
test-export-influxdb-v3: ## Run interface tests with InfluxDB version 3 (Core)
/bin/bash ./tests/test_export_influxdb_v3.sh
test-export-timescaledb: ## Run interface tests with TimescaleDB
/bin/bash ./tests/test_export_timescaledb.sh
test-export-nats: ## Run interface tests with NATS
/bin/bash ./tests/test_export_nats.sh
test-exports: test-export-csv test-export-json test-export-influxdb-v1 test-export-influxdb-v3 test-export-timescaledb test-export-nats ## Tests all exports
# ===================================================================
# Linters and profilers
# Linters, profilers and cyber security
# ===================================================================
format: venv-dev-upgrade ## Format the code
@git ls-files './glances/*.py' | xargs ./venv/bin/python -m autopep8 --in-place --jobs 0 --global-config=.flake8
@git ls-files './glances/*.py' | xargs ./venv/bin/python -m autoflake --in-place --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys --exclude="compat.py,globals.py"
./venv/bin/python -m black ./glances --exclude outputs/static
pre-commit: ## Run pre-commit hooks
$(UV_RUN) run pre-commit run --all-files
flake8: venv-dev-upgrade ## Run flake8 linter.
@git ls-files '*.py' | xargs ./venv/bin/python -m flake8 --config=.flake8
find-duplicate-lines: ## Search for duplicate lines in files
/bin/bash tests-data/tools/find-duplicate-lines.sh
ruff: venv-dev-upgrade ## Run Ruff (fastest) linter.
./venv/bin/python -m ruff check . --config=./pyproject.toml
format: ## Format the code
$(UV_RUN) run ruff format .
codespell: venv-dev-upgrade ## Run codespell to fix common misspellings in text files
./venv/bin/codespell -S .git,./docs/_build,./Glances.egg-info,./venv,./glances/outputs,*.svg -L hart,bu,te,statics
lint: ## Lint the code.
$(UV_RUN) run ruff check . --fix
semgrep: venv-dev-upgrade ## Run semgrep to find bugs and enforce code standards
./venv/bin/semgrep --config=auto --lang python --use-git-ignore ./glances
lint-readme: ## Lint the main README.rst file
$(UV_RUN) run rstcheck README.rst
$(UV_RUN) run rstcheck README-pypi.rst
profiling: ## How to start the profiling of the Glances software
@echo "Please complete and run: sudo ./venv/bin/py-spy record -o ./docs/_static/glances-flame.svg -d 60 -s --pid <GLANCES PID>"
codespell: ## Run codespell to fix common misspellings in text files
$(UV_RUN) run codespell -S .git,./docs/_build,./Glances.egg-info,./venv*,./glances/outputs,*.svg -L hart,bu,te,statics -w
semgrep: ## Run semgrep to find bugs and enforce code standards
$(UV_RUN) run semgrep scan --config=auto
profiling-%: SLEEP = 3
profiling-%: TIMES = 30
profiling-%: OUT_DIR = docs/_static
define DISPLAY-BANNER
@echo "Start Glances for $(TIMES) iterations (more or less 1 mins, please do not exit !)"
sleep $(SLEEP)
endef
profiling-gprof: CPROF = glances.cprof
profiling-gprof: ## Callgraph profiling (need "apt install graphviz")
$(DISPLAY-BANNER)
$(UV_RUN) run python -m cProfile -o $(CPROF) run-venv.py -C $(CONF) --stop-after $(TIMES)
$(UV_RUN) run gprof2dot -f pstats $(CPROF) | dot -Tsvg -o $(OUT_DIR)/glances-cgraph.svg
rm -f $(CPROF)
profiling-pyinstrument: ## PyInstrument profiling
$(DISPLAY-BANNER)
$(UV_RUN) add pyinstrument
$(UV_RUN) run pyinstrument -r html -o $(OUT_DIR)/glances-pyinstrument.html -m glances -C $(CONF) --stop-after $(TIMES)
profiling-pyspy: ## Flame profiling
$(DISPLAY-BANNER)
$(UV_RUN) run py-spy record -o $(OUT_DIR)/glances-flame.svg -d 60 -s -- .venv-uv/bin/uvrun python run-venv.py -C $(CONF) --stop-after $(TIMES)
profiling: profiling-gprof profiling-pyinstrument profiling-pyspy ## Profiling of the Glances software
trace-malloc: ## Trace the malloc() calls
@echo "Malloc test is running, please wait ~30 secondes..."
./venv/bin/python -m glances -C ./conf/glances.conf --trace-malloc --stop-after 15 --quiet
$(UV_RUN) run python -m glances -C $(CONF) --trace-malloc --stop-after 15 --quiet
memory-leak: ## Profile memory leaks
./venv/bin/python -m glances -C ./conf/glances.conf --memory-leak
$(UV_RUN) run python -m glances -C $(CONF) --memory-leak
memory-profiling: TIMES = 2400
memory-profiling: PROFILE = mprofile_*.dat
memory-profiling: OUT_DIR = docs/_static
memory-profiling: ## Profile memory usage
@echo "It's a very long test (~4 hours)..."
rm -f mprofile_*.dat
rm -f $(PROFILE)
@echo "1/2 - Start memory profiling with the history option enable"
./venv/bin/mprof run -T 1 -C run.py -C ./conf/glances.conf --stop-after 2400 --quiet
./venv/bin/mprof plot --output ./docs/_static/glances-memory-profiling-with-history.png
rm -f mprofile_*.dat
$(UV_RUN) run mprof run -T 1 -C run-venv.py -C $(CONF) --stop-after $(TIMES) --quiet
$(UV_RUN) run mprof plot --output $(OUT_DIR)/glances-memory-profiling-with-history.png
rm -f $(PROFILE)
@echo "2/2 - Start memory profiling with the history option disable"
./venv/bin/mprof run -T 1 -C run.py -C ./conf/glances.conf --disable-history --stop-after 2400 --quiet
./venv/bin/mprof plot --output ./docs/_static/glances-memory-profiling-without-history.png
rm -f mprofile_*.dat
$(UV_RUN) run mprof run -T 1 -C run-venv.py -C $(CONF) --disable-history --stop-after $(TIMES) --quiet
$(UV_RUN) run mprof plot --output $(OUT_DIR)/glances-memory-profiling-without-history.png
rm -f $(PROFILE)
# Trivy installation: https://aquasecurity.github.io/trivy/latest/getting-started/installation/
trivy: ## Run Trivy to find vulnerabilities
$(UV_RUN) run trivy fs ./glances/
bandit: ## Run Bandit to find vulnerabilities
$(UV_RUN) run bandit glances -r
# ===================================================================
# Docs
# ===================================================================
docs: venv-dev-upgrade ## Create the documentation
./venv/bin/python -m glances -C ./conf/glances.conf --api-doc > ./docs/api.rst
docs: ## Create the documentation
$(UV_RUN) run python -m glances -C $(CONF) --api-doc > ./docs/api/python.rst
$(UV_RUN) run python ./generate_openapi.py
$(UV_RUN) run python -m glances -C $(CONF) --api-restful-doc > ./docs/api/restful.rst
cd docs && ./build.sh && cd ..
docs-server: docs ## Start a Web server to serve the documentation
(sleep 2 && sensible-browser "http://localhost:$(PORT)") &
cd docs/_build/html/ && ../../../venv/bin/python -m http.server $(PORT)
cd docs/_build/html/ && .venv-uv/bin/uvrun python -m http.server $(PORT)
docs-jupyter: ## Start Jupyter Notebook
$(UV_RUN) run --with jupyter jupyter lab
release-note: ## Generate release note
git --no-pager log $(LASTTAG)..HEAD --first-parent --pretty=format:"* %s"
@echo "\n"
git --no-pager shortlog -s -n $(LASTTAG)..HEAD
install: ## Open a Web Browser to the installation procedure
sensible-browser "https://github.com/nicolargo/glances#installation"
# ===================================================================
# WebUI
# Follow ./glances/outputs/static/README.md for more information
# ===================================================================
webui: venv-dev-upgrade ## Build the Web UI
cd glances/outputs/static/ && npm ci && npm run build
webui webui%: DIR = glances/outputs/static/
webui-audit: venv-dev-upgrade ## Audit the Web UI
cd glances/outputs/static/ && npm audit
webui-gen-config: ## Generate the Web UI config file
$(UV_RUN) run python ./generate_webui_conf.py > ./glances/outputs/static/js/uiconfig.json
webui-audit-fix: venv-dev-upgrade ## Fix audit the Web UI
cd glances/outputs/static/ && npm audit fix && npm ci && npm run build
webui: webui-gen-config ## Build the Web UI
cd $(DIR) && npm ci && npm run build
webui-audit: ## Audit the Web UI
cd $(DIR) && npm audit
webui-audit-fix: webui-gen-config ## Fix audit the Web UI
cd $(DIR) && npm audit fix && npm ci && npm run build
webui-update: webui-gen-config ## Update JS dependencies
cd $(DIR) && npm update --save && npm ci && npm run build
# ===================================================================
# Packaging
# ===================================================================
flatpak: venv-dev-upgrade ## Generate FlatPack JSON file
flatpak: venv-upgrade ## Generate FlatPack JSON file
git clone https://github.com/flatpak/flatpak-builder-tools.git
./venv/bin/python ./flatpak-builder-tools/pip/flatpak-pip-generator glances
$(UV_RUN) run python ./flatpak-builder-tools/pip/flatpak-pip-generator glances
rm -rf ./flatpak-builder-tools
@echo "Now follow: https://github.com/flathub/flathub/wiki/App-Submission"
# Snap package is automatically build on the Snapcraft.io platform
# https://snapcraft.io/glances
# But you can try an offline build with the following command
snapcraft:
snapcraft
# ===================================================================
# Docker
# Need Docker Buildx package (apt install docker-buildx on Ubuntu)
# ===================================================================
docker: docker-alpine docker-ubuntu## Generate local docker images
define MAKE_DOCKER_BUILD_RULES
$($(DISTRO)_images): docker-$(DISTRO)-%: docker-files/$(DISTRO).Dockerfile
$(DOCKER_BUILD) --target $$* -f $$< -t glances:local-$(DISTRO)-$$* .
endef
docker-alpine: ## Generate local docker images (Alpine)
docker build --target full -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-full .
docker build --target minimal -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-minimal .
docker build --target dev -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-dev .
$(foreach DISTRO,$(DISTROS),$(eval $(MAKE_DOCKER_BUILD_RULES)))
docker-ubuntu: ## Generate local docker images (Ubuntu)
docker build --target full -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-full .
docker build --target minimal -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-minimal .
docker build --target dev -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-dev .
docker: docker-alpine docker-ubuntu ## Generate local docker images
docker-alpine: $(alpine_images) ## Generate local docker images (Alpine)
docker-ubuntu: $(ubuntu_images) ## Generate local docker images (Ubuntu)
docker-alpine-full: ## Generate local docker image (Alpine full)
docker-alpine-minimal: ## Generate local docker image (Alpine minimal)
docker-alpine-dev: ## Generate local docker image (Alpine dev)
docker-ubuntu-full: ## Generate local docker image (Ubuntu full)
docker-ubuntu-minimal: ## Generate local docker image (Ubuntu minimal)
docker-ubuntu-dev: ## Generate local docker image (Ubuntu dev)
trivy-docker: ## Run Trivy to find vulnerabilities in Docker images
$(UV_RUN) run trivy image glances:local-alpine-full
$(UV_RUN) run trivy image glances:local-alpine-minimal
$(UV_RUN) run trivy image glances:local-ubuntu-full
$(UV_RUN) run trivy image glances:local-ubuntu-minimal
# ===================================================================
# Run
# ===================================================================
run: ## Start Glances in console mode (also called standalone)
./venv/bin/python -m glances -C ./conf/glances.conf
$(UV_RUN) run python -m glances -C $(CONF)
run-debug: ## Start Glances in debug console mode (also called standalone)
./venv/bin/python -m glances -C ./conf/glances.conf -d
$(UV_RUN) run python -m glances -C $(CONF) -d
run-local-conf: ## Start Glances in console mode with the system conf file
./venv/bin/python -m glances
$(UV_RUN) run python -m glances
run-local-conf-hide-public: ## Start Glances in console mode with the system conf file and hide public information
$(UV_RUN) run python -m glances --hide-public-info
run-like-htop: ## Start Glances with the same features than Htop
$(UV_RUN) run python -m glances --disable-plugin network,ports,wifi,connections,diskio,fs,irq,folders,raid,smart,sensors,vms,containers,ip,amps --disable-left-sidebar
run-fetch: ## Start Glances in fetch mode
$(UV_RUN) run python -m glances --fetch
$(DOCKER_RUNTIMES): run-docker-%:
$(DOCKER_RUN) $(DOCKER_OPTS) $(DOCKER_SOCKS) -it glances:local-$*
run-docker-alpine-minimal: ## Start Glances Alpine Docker minimal in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-minimal
run-docker-alpine-full: ## Start Glances Alpine Docker full in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-full
run-docker-alpine-dev: ## Start Glances Alpine Docker dev in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-dev
run-docker-ubuntu-minimal: ## Start Glances Ubuntu Docker minimal in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-minimal
run-docker-ubuntu-full: ## Start Glances Ubuntu Docker full in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-full
run-docker-ubuntu-dev: ## Start Glances Ubuntu Docker dev in console mode
docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-dev
generate-ssl: ## Generate local and sel signed SSL certificates for dev (need mkcert)
mkcert glances.local localhost 120.0.0.1 0.0.0.0
run-webserver: ## Start Glances in Web server mode
./venv/bin/python -m glances -C ./conf/glances.conf -w
$(UV_RUN) run python -m glances -C $(CONF) -w
run-webserver-local-conf: ## Start Glances in Web server mode with the system conf file
$(UV_RUN) run python -m glances -w
run-webserver-local-conf-hide-public: ## Start Glances in Web server mode with the system conf file and hide public info
$(UV_RUN) run python -m glances -w --hide-public-info
run-restapiserver: ## Start Glances in REST API server mode
./venv/bin/python -m glances -C ./conf/glances.conf -w --disable-webui
$(UV_RUN) run python -m glances -C $(CONF) -w --disable-webui
run-server: ## Start Glances in server mode (RPC)
./venv/bin/python -m glances -C ./conf/glances.conf -s
$(UV_RUN) run python -m glances -C $(CONF) -s
run-client: ## Start Glances in client mode (RPC)
./venv/bin/python -m glances -C ./conf/glances.conf -c localhost
$(UV_RUN) run python -m glances -C $(CONF) -c localhost
run-browser: ## Start Glances in browser mode (RPC)
./venv/bin/python -m glances -C ./conf/glances.conf --browser
$(UV_RUN) run python -m glances -C $(CONF) --browser
run-web-browser: ## Start Web Central Browser
$(UV_RUN) run python -m glances -C $(CONF) -w --browser
run-issue: ## Start Glances in issue mode
./venv/bin/python -m glances -C ./conf/glances.conf --issue
$(UV_RUN) run python -m glances -C $(CONF) --issue
run-multipass: ## Install and start Glances in a VM (only available on Ubuntu with multipass already installed)
multipass launch -n glances-on-lts lts
multipass exec glances-on-lts -- sudo snap install glances
multipass exec glances-on-lts -- glances
multipass stop glances-on-lts
multipass delete glances-on-lts
show-version: ## Show Glances version number
./venv/bin/python -m glances -C ./conf/glances.conf -V
show-issue: ## Generate output for a new issue
./venv/bin/python -m glances -C ./conf/glances.conf --issue
.PHONY: test docs docs-server venv
$(UV_RUN) run python -m glances -C $(CONF) -V

2479
NEWS.rst

File diff suppressed because it is too large Load Diff

385
README-pypi.rst Normal file
View File

@ -0,0 +1,385 @@
Glances 🌟
==========
**Glances** is an open-source system cross-platform monitoring tool.
It allows real-time monitoring of various aspects of your system such as
CPU, memory, disk, network usage etc. It also allows monitoring of running processes,
logged in users, temperatures, voltages, fan speeds etc.
It also supports container monitoring, it supports different container management
systems such as Docker, LXC. The information is presented in an easy to read dashboard
and can also be used for remote monitoring of systems via a web interface or command
line interface. It is easy to install and use and can be customized to show only
the information that you are interested in.
In client/server mode, remote monitoring could be done via terminal,
Web interface or API (XML-RPC and RESTful).
Stats can also be exported to files or external time/value databases, CSV or direct
output to STDOUT.
Glances is written in Python and uses libraries to grab information from
your system. It is based on an open architecture where developers can
add new plugins or exports modules.
Usage 👋
========
For the standalone mode, just run:
.. code-block:: console
$ glances
.. image:: https://github.com/nicolargo/glances/raw/refs/heads/master/docs/_static/glances-responsive-webdesign.png
For the Web server mode, run:
.. code-block:: console
$ glances -w
and enter the URL ``http://<ip>:61208`` in your favorite web browser.
In this mode, a HTTP/Restful API is exposed, see document `RestfulApi`_ for more details.
.. image:: https://github.com/nicolargo/glances/raw/refs/heads/master/docs/_static/screenshot-web.png
For the client/server mode (remote monitoring through XML-RPC), run the following command on the server:
.. code-block:: console
$ glances -s
and this one on the client:
.. code-block:: console
$ glances -c <ip>
You can also detect and display all Glances servers available on your
network (or defined in the configuration file) in TUI:
.. code-block:: console
$ glances --browser
or WebUI:
.. code-block:: console
$ glances -w --browser
It possible to display raw stats on stdout:
.. code-block:: console
$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...
or in a CSV format thanks to the stdout-csv option:
.. code-block:: console
$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...
or in a JSON format thanks to the stdout-json option (attribute not supported in this mode in order to have a real JSON object in output):
.. code-block:: console
$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
Last but not least, you can use the fetch mode to get a quick look of a machine:
.. code-block:: console
$ glances --fetch
Results look like this:
.. image:: https://github.com/nicolargo/glances/raw/refs/heads/master/docs/_static/screenshot-fetch.png
Use Glances as a Python library 📚
==================================
You can access the Glances API by importing the `glances.api` module and creating an
instance of the `GlancesAPI` class. This instance provides access to all Glances plugins
and their fields. For example, to access the CPU plugin and its total field, you can
use the following code:
.. code-block:: python
>>> from glances import api
>>> gl = api.GlancesAPI()
>>> gl.cpu
{'cpucore': 16,
'ctx_switches': 1214157811,
'guest': 0.0,
'idle': 91.4,
'interrupts': 991768733,
'iowait': 0.3,
'irq': 0.0,
'nice': 0.0,
'soft_interrupts': 423297898,
'steal': 0.0,
'syscalls': 0,
'system': 5.4,
'total': 7.3,
'user': 3.0}
>>> gl.cpu["total"]
7.3
>>> gl.mem["used"]
12498582144
>>> gl.auto_unit(gl.mem["used"])
11.6G
If the stats return a list of items (like network interfaces or processes), you can
access them by their name:
.. code-block:: python
>>> gl.network.keys()
['wlp0s20f3', 'veth33b370c', 'veth19c7711']
>>> gl.network["wlp0s20f3"]
{'alias': None,
'bytes_all': 362,
'bytes_all_gauge': 9242285709,
'bytes_all_rate_per_sec': 1032.0,
'bytes_recv': 210,
'bytes_recv_gauge': 7420522678,
'bytes_recv_rate_per_sec': 599.0,
'bytes_sent': 152,
'bytes_sent_gauge': 1821763031,
'bytes_sent_rate_per_sec': 433.0,
'interface_name': 'wlp0s20f3',
'key': 'interface_name',
'speed': 0,
'time_since_update': 0.3504955768585205}
For a complete example of how to use Glances as a library, have a look to the `PythonApi`_.
Documentation 📜
================
For complete documentation have a look at the readthedocs_ website.
If you have any question (after RTFM! and the `FAQ`_), please post it on the official Reddit `forum`_ or in GitHub `Discussions`_.
Gateway to other services 🌐
============================
Glances can export stats to:
- ``CSV`` file
- ``JSON`` file
- ``InfluxDB`` server
- ``Cassandra`` server
- ``CouchDB`` server
- ``OpenTSDB`` server
- ``Prometheus`` server
- ``StatsD`` server
- ``ElasticSearch`` server
- ``PostgreSQL/TimeScale`` server
- ``RabbitMQ/ActiveMQ`` broker
- ``ZeroMQ`` broker
- ``Kafka`` broker
- ``Riemann`` server
- ``Graphite`` server
- ``RESTful`` endpoint
Installation 🚀
===============
There are several methods to test/install Glances on your system. Choose your weapon!
PyPI: Pip, the standard way
---------------------------
Glances is on ``PyPI``. By using PyPI, you will be using the latest stable version.
To install Glances, simply use the ``pip`` command line.
Warning: on modern Linux operating systems, you may have an externally-managed-environment
error message when you try to use ``pip``. In this case, go to the the PipX section below.
.. code-block:: console
pip install --user glances
*Note*: Python headers are required to install `psutil`_, a Glances
dependency. For example, on Debian/Ubuntu **the simplest** is
``apt install python3-psutil`` or alternatively need to install first
the *python-dev* package and gcc (*python-devel* on Fedora/CentOS/RHEL).
For Windows, just install psutil from the binary installation file.
By default, Glances is installed **without** the Web interface dependencies.
To install it, use the following command:
.. code-block:: console
pip install --user 'glances[web]'
For a full installation (with all features, see features list bellow):
.. code-block:: console
pip install --user 'glances[all]'
Features list:
- all: install dependencies for all features
- action: install dependencies for action feature
- browser: install dependencies for Glances centram browser
- cloud: install dependencies for cloud plugin
- containers: install dependencies for container plugin
- export: install dependencies for all exports modules
- gpu: install dependencies for GPU plugin
- graph: install dependencies for graph export
- ip: install dependencies for IP public option
- raid: install dependencies for RAID plugin
- sensors: install dependencies for sensors plugin
- smart: install dependencies for smart plugin
- snmp: install dependencies for SNMP
- sparklines: install dependencies for sparklines option
- web: install dependencies for Webserver (WebUI) and Web API
- wifi: install dependencies for Wifi plugin
To upgrade Glances to the latest version:
.. code-block:: console
pip install --user --upgrade glances
The current develop branch is published to the test.pypi.org package index.
If you want to test the develop version (could be instable), enter:
.. code-block:: console
pip install --user -i https://test.pypi.org/simple/ Glances
PyPI: PipX, the alternative way
-------------------------------
Install PipX on your system (apt install pipx on Ubuntu).
Install Glances (with all features):
.. code-block:: console
pipx install 'glances[all]'
The glances script will be installed in the ~/.local/bin folder.
Shell tab completion 🔍
=======================
Glances 4.3.2 and higher includes shell tab autocompletion thanks to the --print-completion option.
For example, on a Linux operating system with bash shell:
.. code-block:: console
$ mkdir -p ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion
$ glances --print-completion bash > ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion/glances
$ source ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion/glances
Following shells are supported: bash, zsh and tcsh.
Requirements 🧩
===============
Glances is developed in Python. A minimal Python version 3.10 or higher
should be installed on your system.
*Note for Python 2 users*
Glances version 4 or higher do not support Python 2 (and Python 3 < 3.10).
Please uses Glances version 3.4.x if you need Python 2 support.
Dependencies:
- ``psutil`` (better with latest version)
- ``defusedxml`` (in order to monkey patch xmlrpc)
- ``packaging`` (for the version comparison)
- ``windows-curses`` (Windows Curses implementation) [Windows-only]
- ``shtab`` (Shell autocompletion) [All but Windows]
- ``jinja2`` (for fetch mode and templating)
Extra dependencies:
- ``batinfo`` (for battery monitoring)
- ``bernhard`` (for the Riemann export module)
- ``cassandra-driver`` (for the Cassandra export module)
- ``chevron`` (for the action script feature)
- ``docker`` (for the Containers Docker monitoring support)
- ``elasticsearch`` (for the Elastic Search export module)
- ``FastAPI`` and ``Uvicorn`` (for Web server mode)
- ``graphitesender`` (For the Graphite export module)
- ``hddtemp`` (for HDD temperature monitoring support) [Linux-only]
- ``influxdb`` (for the InfluxDB version 1 export module)
- ``influxdb-client`` (for the InfluxDB version 2 export module)
- ``kafka-python`` (for the Kafka export module)
- ``nvidia-ml-py`` (for the GPU plugin)
- ``pycouchdb`` (for the CouchDB export module)
- ``pika`` (for the RabbitMQ/ActiveMQ export module)
- ``podman`` (for the Containers Podman monitoring support)
- ``potsdb`` (for the OpenTSDB export module)
- ``prometheus_client`` (for the Prometheus export module)
- ``psycopg[binary]`` (for the PostgreSQL/TimeScale export module)
- ``pygal`` (for the graph export module)
- ``pymdstat`` (for RAID support) [Linux-only]
- ``pymongo`` (for the MongoDB export module)
- ``pysnmp-lextudio`` (for SNMP support)
- ``pySMART.smartx`` (for HDD Smart support) [Linux-only]
- ``pyzmq`` (for the ZeroMQ export module)
- ``requests`` (for the Ports, Cloud plugins and RESTful export module)
- ``sparklines`` (for the Quick Plugin sparklines option)
- ``statsd`` (for the StatsD export module)
- ``wifi`` (for the wifi plugin) [Linux-only]
- ``zeroconf`` (for the autodiscover mode)
Project sponsorship 🙌
======================
You can help me to achieve my goals of improving this open-source project
or just say "thank you" by:
- sponsor me using one-time or monthly tier Github sponsors_ page
- send me some pieces of bitcoin: 185KN9FCix3svJYp7JQM7hRMfSKyeaJR4X
- buy me a gift on my wishlist_ page
Any and all contributions are greatly appreciated.
Authors and Contributors 🔥
===========================
Nicolas Hennion (@nicolargo) <nicolas@nicolargo.com>
.. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo
:target: https://twitter.com/nicolargo
License 📜
==========
Glances is distributed under the LGPL version 3 license. See ``COPYING`` for more details.
.. _psutil: https://github.com/giampaolo/psutil
.. _readthedocs: https://glances.readthedocs.io/
.. _forum: https://www.reddit.com/r/glances/
.. _sponsors: https://github.com/sponsors/nicolargo
.. _wishlist: https://www.amazon.fr/hz/wishlist/ls/BWAAQKWFR3FI?ref_=wl_share
.. _PythonApi: https://glances.readthedocs.io/en/develop/api/python.html
.. _RestfulApi: https://glances.readthedocs.io/en/develop/api/restful.html
.. _FAQ: https://github.com/nicolargo/glances/blob/develop/docs/faq.rst
.. _Discussions: https://github.com/nicolargo/glances/discussions

View File

@ -1,44 +1,64 @@
===============================
Glances - An eye on your system
===============================
.. raw:: html
.. image:: https://img.shields.io/pypi/v/glances.svg
<div align="center">
.. image:: ./docs/_static/glances-responsive-webdesign.png
.. raw:: html
<h1>Glances</h1>
An Eye on your System
| |pypi| |test| |contributors| |quality|
| |starts| |docker| |pypistat| |sponsors|
| |reddit|
.. |pypi| image:: https://img.shields.io/pypi/v/glances.svg
:target: https://pypi.python.org/pypi/Glances
.. image:: https://img.shields.io/github/stars/nicolargo/glances.svg
.. |starts| image:: https://img.shields.io/github/stars/nicolargo/glances.svg
:target: https://github.com/nicolargo/glances/
:alt: Github stars
.. image:: https://img.shields.io/docker/pulls/nicolargo/glances
.. |docker| image:: https://img.shields.io/docker/pulls/nicolargo/glances
:target: https://hub.docker.com/r/nicolargo/glances/
:alt: Docker pull
.. image:: https://pepy.tech/badge/glances/month
.. |pypistat| image:: https://pepy.tech/badge/glances/month
:target: https://pepy.tech/project/glances
:alt: Pypi downloads
.. image:: https://github.com/nicolargo/glances/actions/workflows/test.yml/badge.svg
.. |test| image:: https://github.com/nicolargo/glances/actions/workflows/ci.yml/badge.svg?branch=develop
:target: https://github.com/nicolargo/glances/actions
:alt: Linux tests (GitHub Actions)
.. image:: https://img.shields.io/github/contributors/nicolargo/glances
.. |contributors| image:: https://img.shields.io/github/contributors/nicolargo/glances
:target: https://github.com/nicolargo/glances/issues?q=is%3Aissue+is%3Aopen+label%3A%22needs+contributor%22
:alt: Contibutors
:alt: Contributors
.. image:: https://scrutinizer-ci.com/g/nicolargo/glances/badges/quality-score.png?b=develop
.. |quality| image:: https://scrutinizer-ci.com/g/nicolargo/glances/badges/quality-score.png?b=develop
:target: https://scrutinizer-ci.com/g/nicolargo/glances/?branch=develop
:alt: Code quality
.. image:: https://img.shields.io/github/sponsors/nicolargo
.. |sponsors| image:: https://img.shields.io/github/sponsors/nicolargo
:target: https://github.com/sponsors/nicolargo
:alt: Sponsors
.. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo
.. |twitter| image:: https://img.shields.io/badge/X-000000?style=for-the-badge&logo=x&logoColor=white
:target: https://twitter.com/nicolargo
:alt: @nicolargo
Summary
=======
.. |reddit| image:: https://img.shields.io/badge/Reddit-FF4500?style=for-the-badge&logo=reddit&logoColor=white
:target: https://www.reddit.com/r/glances/
:alt: @reddit
.. raw:: html
</div>
Summary 🌟
==========
**Glances** is an open-source system cross-platform monitoring tool.
It allows real-time monitoring of various aspects of your system such as
@ -50,325 +70,17 @@ and can also be used for remote monitoring of systems via a web interface or com
line interface. It is easy to install and use and can be customized to show only
the information that you are interested in.
.. image:: https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-summary.png
In client/server mode, remote monitoring could be done via terminal,
Web interface or API (XML-RPC and RESTful).
Stats can also be exported to files or external time/value databases, CSV or direct
output to STDOUT.
.. image:: https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-responsive-webdesign.png
Glances is written in Python and uses libraries to grab information from
your system. It is based on an open architecture where developers can
add new plugins or exports modules.
Project sponsorship
===================
You can help me to achieve my goals of improving this open-source project
or just say "thank you" by:
- sponsor me using one-time or monthly tier Github sponsors_ page
- send me some pieces of bitcoin: 185KN9FCix3svJYp7JQM7hRMfSKyeaJR4X
- buy me a gift on my wishlist_ page
Any and all contributions are greatly appreciated.
Requirements
============
- ``python>=2.7`` or ``python>=3.4``
- ``psutil>=5.3.0`` (better with latest version)
- ``defusedxml`` (in order to monkey patch xmlrpc)
- ``ujson`` (an optimized alternative to the standard json module)
- ``future`` (for Python 2 support)
*Note for Python 2.6 users*
Glances no longer supports Python 2.6. Please upgrade
to a minimum Python version of 2.7/3.4+ or downgrade to Glances 2.6.2 (last version
with Python 2.6 support).
*Deprecation warning note for Python 2.x users*
Glances version 4.0 will no longer supports Python 2.x.
Optional dependencies:
- ``batinfo`` (for battery monitoring)
- ``bernhard`` (for the Riemann export module)
- ``bottle`` (for Web server mode)
- ``cassandra-driver`` (for the Cassandra export module)
- ``chevron`` (for the action script feature)
- ``couchdb`` (for the CouchDB export module)
- ``docker`` (for the Containers Docker monitoring support) [Linux/macOS-only / Python >= 3.6]
- ``elasticsearch`` (for the Elastic Search export module)
- ``graphitesender`` (For the Graphite export module)
- ``hddtemp`` (for HDD temperature monitoring support) [Linux-only]
- ``influxdb`` (for the InfluxDB version 1 export module)
- ``influxdb-client`` (for the InfluxDB version 2 export module) [Only for Python >= 3.6]
- ``kafka-python`` (for the Kafka export module)
- ``netifaces`` (for the IP plugin)
- ``py3nvml`` (for the GPU plugin) [Only for Python 3]
- ``pika`` (for the RabbitMQ/ActiveMQ export module)
- ``podman`` (for the Containers Podman monitoring support) [Linux/macOS-only / Python >= 3.6]
- ``potsdb`` (for the OpenTSDB export module)
- ``prometheus_client`` (for the Prometheus export module)
- ``py-cpuinfo`` (for the Quicklook CPU info module)
- ``pygal`` (for the graph export module)
- ``pymdstat`` (for RAID support) [Linux-only]
- ``pymongo`` (for the MongoDB export module) [Only for Python >= 3.7]
- ``pysnmp`` (for SNMP support)
- ``pySMART.smartx`` (for HDD Smart support) [Linux-only]
- ``pyzmq`` (for the ZeroMQ export module)
- ``requests`` (for the Ports, Cloud plugins and RESTful export module)
- ``scandir`` (for the Folders plugin) [Only for Python < 3.5]
- ``sparklines`` (for the Quick Plugin sparklines option)
- ``statsd`` (for the StatsD export module)
- ``wifi`` (for the wifi plugin) [Linux-only]
- ``zeroconf`` (for the autodiscover mode)
Installation
============
There are several methods to test/install Glances on your system. Choose your weapon!
PyPI: The standard way
----------------------
Glances is on ``PyPI``. By using PyPI, you will be using the latest
stable version.
To install Glances, simply use ``pip``:
.. code-block:: console
pip install --user glances
*Note*: Python headers are required to install `psutil`_, a Glances
dependency. For example, on Debian/Ubuntu you need to install first
the *python-dev* package (*python-devel* on Fedora/CentOS/RHEL).
For Windows, just install psutil from the binary installation file.
*Note 2 (for the Wifi plugin)*: If you want to use the Wifi plugin, you need
to install the *wireless-tools* package on your system.
By default, Glances is installed without the Web interface dependencies.
To install it, use the following command:
.. code-block:: console
pip install --user 'glances[web]'
For a full installation (with all features):
.. code-block:: console
pip install --user 'glances[all]'
To upgrade Glances to the latest version:
.. code-block:: console
pip install --user --upgrade glances
The current develop branch is published to the test.pypi.org package index.
If you want to test the develop version (could be instable), enter:
.. code-block:: console
pip install --user -i https://test.pypi.org/simple/ Glances
Glances Auto Install script: the easy way
-----------------------------------------
To install both dependencies and the latest Glances production ready version
(aka *master* branch), just enter the following command line:
.. code-block:: console
curl -L https://bit.ly/glances | /bin/bash
or
.. code-block:: console
wget -O- https://bit.ly/glances | /bin/bash
*Note*: This is only supported on some GNU/Linux distributions and Mac OS X.
If you want to support other distributions, please contribute to `glancesautoinstall`_.
Docker: the fun way
-------------------
Glances Docker images are availables. You can use it to monitor your
server and all your containers !
Get the Glances container:
.. code-block:: console
docker pull nicolargo/glances:latest-full
The following tags are availables:
- *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)
Run last version of Glances container in *console mode*:
.. code-block:: console
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it nicolargo/glances:latest-full
Additionally, if you want to use your own glances.conf file, you can
create your own Dockerfile:
.. code-block:: console
FROM nicolargo/glances:latest
COPY glances.conf /etc/glances.conf
CMD python -m glances -C /etc/glances.conf $GLANCES_OPT
Alternatively, you can specify something along the same lines with
docker run options (notice the `GLANCES_OPT` environment
variable setting parameters for the glances startup command):
.. code-block:: console
docker run -e TZ="${TZ}" -v `pwd`/glances.conf:/etc/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -e GLANCES_OPT="-C /etc/glances.conf" -it nicolargo/glances:latest-full
Where \`pwd\`/glances.conf is a local directory containing your glances.conf file.
Run the container in *Web server mode*:
.. code-block:: console
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances:latest-full
For a full list of options, see the Glances `Docker`_ documentation page.
GNU/Linux
---------
`Glances` is available on many Linux distributions, so you should be
able to install it using your favorite package manager. Be aware that
when you use this method the operating system `package`_ for `Glances`
may not be the latest version.
Note: The Debian package (and all other Debian-based distributions) do
not include anymore the JS statics files used by the Web interface
(see ``issue2021``). If you want to add it to your Glances installation,
follow the instructions: ``issue2021comment``.
FreeBSD
-------
To install the binary package:
.. code-block:: console
# pkg install py38-glances
To install Glances from ports:
.. code-block:: console
# cd /usr/ports/sysutils/py-glances/
# make install clean
macOS
-----
If you do not want to use the glancesautoinstall script, follow this procedure.
macOS users can install Glances using ``Homebrew`` or ``MacPorts``.
Homebrew
````````
.. code-block:: console
$ brew install glances
MacPorts
````````
.. code-block:: console
$ sudo port install glances
Windows
-------
Install `Python`_ for Windows (Python 2.7.9+ and 3.4+ ship with pip) and
then run the following command:
.. code-block:: console
$ pip install glances
Android
-------
You need a rooted device and the `Termux`_ application (available on the
Google Play Store).
Start Termux on your device and enter:
.. code-block:: console
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install bottle
$ pip install glances
And start Glances:
.. code-block:: console
$ glances
You can also run Glances in server mode (-s or -w) in order to remotely
monitor your Android device.
Source
------
To install Glances from source:
.. code-block:: console
$ wget https://github.com/nicolargo/glances/archive/vX.Y.tar.gz -O - | tar xz
$ cd glances-*
# python setup.py install
*Note*: Python headers are required to install psutil.
Chef
----
An awesome ``Chef`` cookbook is available to monitor your infrastructure:
https://supermarket.chef.io/cookbooks/glances (thanks to Antoine Rouyer)
Puppet
------
You can install Glances using ``Puppet``: https://github.com/rverchere/puppet-glances
Ansible
-------
A Glances ``Ansible`` role is available: https://galaxy.ansible.com/zaxos/glances-ansible-role/
Usage
=====
Usage 👋
========
For the standalone mode, just run:
@ -376,6 +88,8 @@ For the standalone mode, just run:
$ glances
.. image:: ./docs/_static/glances-summary.png
For the Web server mode, run:
.. code-block:: console
@ -384,28 +98,36 @@ For the Web server mode, run:
and enter the URL ``http://<ip>:61208`` in your favorite web browser.
For the client/server mode, run:
In this mode, a HTTP/Restful API is exposed, see document `RestfulApi`_ for more details.
.. image:: ./docs/_static/screenshot-web.png
For the client/server mode (remote monitoring through XML-RPC), run the following command on the server:
.. code-block:: console
$ glances -s
on the server side and run:
and this one on the client:
.. code-block:: console
$ glances -c <ip>
on the client one.
You can also detect and display all Glances servers available on your
network or defined in the configuration file:
network (or defined in the configuration file) in TUI:
.. code-block:: console
$ glances --browser
You can also display raw stats on stdout:
or WebUI:
.. code-block:: console
$ glances -w --browser
It possible to display raw stats on stdout:
.. code-block:: console
@ -437,24 +159,443 @@ or in a JSON format thanks to the stdout-json option (attribute not supported in
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
and RTFM, always.
Last but not least, you can use the fetch mode to get a quick look of a machine:
Documentation
=============
.. code-block:: console
$ glances --fetch
Results look like this:
.. image:: ./docs/_static/screenshot-fetch.png
Use Glances as a Python library 📚
==================================
You can access the Glances API by importing the `glances.api` module and creating an
instance of the `GlancesAPI` class. This instance provides access to all Glances plugins
and their fields. For example, to access the CPU plugin and its total field, you can
use the following code:
.. code-block:: python
>>> from glances import api
>>> gl = api.GlancesAPI()
>>> gl.cpu
{'cpucore': 16,
'ctx_switches': 1214157811,
'guest': 0.0,
'idle': 91.4,
'interrupts': 991768733,
'iowait': 0.3,
'irq': 0.0,
'nice': 0.0,
'soft_interrupts': 423297898,
'steal': 0.0,
'syscalls': 0,
'system': 5.4,
'total': 7.3,
'user': 3.0}
>>> gl.cpu.get("total")
7.3
>>> gl.mem.get("used")
12498582144
>>> gl.auto_unit(gl.mem.get("used"))
11.6G
If the stats return a list of items (like network interfaces or processes), you can
access them by their name:
.. code-block:: python
>>> gl.network.keys()
['wlp0s20f3', 'veth33b370c', 'veth19c7711']
>>> gl.network.get("wlp0s20f3")
{'alias': None,
'bytes_all': 362,
'bytes_all_gauge': 9242285709,
'bytes_all_rate_per_sec': 1032.0,
'bytes_recv': 210,
'bytes_recv_gauge': 7420522678,
'bytes_recv_rate_per_sec': 599.0,
'bytes_sent': 152,
'bytes_sent_gauge': 1821763031,
'bytes_sent_rate_per_sec': 433.0,
'interface_name': 'wlp0s20f3',
'key': 'interface_name',
'speed': 0,
'time_since_update': 0.3504955768585205}
For a complete example of how to use Glances as a library, have a look to the `PythonApi`_.
Documentation 📜
================
For complete documentation have a look at the readthedocs_ website.
If you have any question (after RTFM!), please post it on the official Q&A `forum`_.
If you have any question (after RTFM! and the `FAQ`_), please post it on the official Reddit `forum`_ or in GitHub `Discussions`_.
Gateway to other services
=========================
Gateway to other services 🌐
============================
Glances can export stats to: ``CSV`` file, ``JSON`` file, ``InfluxDB``, ``Cassandra``, ``CouchDB``,
``OpenTSDB``, ``Prometheus``, ``StatsD``, ``ElasticSearch``, ``RabbitMQ/ActiveMQ``,
``ZeroMQ``, ``Kafka``, ``Riemann``, ``Graphite`` and ``RESTful`` server.
Glances can export stats to:
How to contribute ?
===================
- files: ``CSV`` and ``JSON``
- databases: ``InfluxDB``, ``ElasticSearch``, ``PostgreSQL/TimeScale``, ``Cassandra``, ``CouchDB``, ``OpenTSDB``, ``Prometheus``, ``StatsD``, ``Riemann`` and ``Graphite``
- brokers: ``RabbitMQ/ActiveMQ``, ``NATS``, ``ZeroMQ`` and ``Kafka``
- others: ``RESTful`` endpoint
Installation 🚀
===============
There are several methods to test/install Glances on your system. Choose your weapon!
PyPI: Pip, the standard way
---------------------------
Glances is on ``PyPI``. By using PyPI, you will be using the latest stable version.
To install Glances, simply use the ``pip`` command line in an virtual environment.
.. code-block:: console
cd ~
python3 -m venv ~/.venv
source ~/.venv/bin/activate
pip install glances
*Note*: Python headers are required to install `psutil`_, a Glances
dependency. For example, on Debian/Ubuntu **the simplest** is
``apt install python3-psutil`` or alternatively need to install first
the *python-dev* package and gcc (*python-devel* on Fedora/CentOS/RHEL).
For Windows, just install psutil from the binary installation file.
By default, Glances is installed **without** the Web interface dependencies.
To install it, use the following command:
.. code-block:: console
pip install 'glances[web]'
For a full installation (with all features, see features list bellow):
.. code-block:: console
pip install 'glances[all]'
Features list:
- all: install dependencies for all features
- action: install dependencies for action feature
- browser: install dependencies for Glances centram browser
- cloud: install dependencies for cloud plugin
- containers: install dependencies for container plugin
- export: install dependencies for all exports modules
- gpu: install dependencies for GPU plugin
- graph: install dependencies for graph export
- ip: install dependencies for IP public option
- raid: install dependencies for RAID plugin
- sensors: install dependencies for sensors plugin
- smart: install dependencies for smart plugin
- snmp: install dependencies for SNMP
- sparklines: install dependencies for sparklines option
- web: install dependencies for Webserver (WebUI) and Web API
- wifi: install dependencies for Wifi plugin
To upgrade Glances to the latest version:
.. code-block:: console
pip install --upgrade glances
PyPI: PipX, the alternative way
-------------------------------
Install PipX on your system. For example on Ubuntu/Debian:
.. code-block:: console
sudo apt install pipx
Then install Glances (with all features):
.. code-block:: console
pipx install 'glances[all]'
The glances script will be installed in the ~/.local/bin folder.
To upgrade Glances to the latest version:
.. code-block:: console
pipx upgrade glances
Docker: the cloudy way
----------------------
Glances Docker images are available. You can use it to monitor your
server and all your containers !
The following tags are available:
- *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 (FastAPI 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 (FastAPI and Docker)
- *ubuntu-dev* for a basic Ubuntu Glances image (based on development branch) with all dependencies (Warning: may be instable)
Run last version of Glances container in *console mode*:
.. code-block:: console
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full
By default, the /etc/glances/glances.conf file is used (based on docker-compose/glances.conf).
Additionally, if you want to use your own glances.conf file, you can
create your own Dockerfile:
.. code-block:: console
FROM nicolargo/glances:latest
COPY glances.conf /root/.config/glances/glances.conf
CMD python -m glances -C /root/.config/glances/glances.conf $GLANCES_OPT
Alternatively, you can specify something along the same lines with
docker run options (notice the `GLANCES_OPT` environment
variable setting parameters for the glances startup command):
.. code-block:: console
docker run -e TZ="${TZ}" -v $HOME/.config/glances/glances.conf:/glances.conf:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -e GLANCES_OPT="-C /glances.conf" -it nicolargo/glances:latest-full
Where $HOME/.config/glances/glances.conf is a local directory containing your glances.conf file.
Run the container in *Web server mode*:
.. code-block:: console
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host nicolargo/glances:latest-full
For a full list of options, see the Glances `Docker`_ documentation page.
It is also possible to use a simple Docker compose file (see in ./docker-compose/docker-compose.yml):
.. code-block:: console
cd ./docker-compose
docker-compose up
It will start a Glances server with WebUI.
Brew: The missing package manager
---------------------------------
For Linux and Mac OS, it is also possible to install Glances with `Brew`_:
.. code-block:: console
brew install glances
GNU/Linux package
-----------------
`Glances` is available on many Linux distributions, so you should be
able to install it using your favorite package manager. Nevetheless,
i do not recommend it. Be aware that when you use this method the operating
system `package`_ for `Glances`may not be the latest version and only basics
plugins are enabled.
Note: The Debian package (and all other Debian-based distributions) do
not include anymore the JS statics files used by the Web interface
(see ``issue2021``). If you want to add it to your Glances installation,
follow the instructions: ``issue2021comment``. In Glances version 4 and
higher, the path to the statics file is configurable (see ``issue2612``).
FreeBSD
-------
On FreeBSD, package name depends on the Python version.
Check for Python version:
.. code-block:: console
# python --version
Install the Glances package:
.. code-block:: console
# pkg install pyXY-glances
Where X and Y are the Major and Minor Values of your Python System.
.. code-block:: console
# Example for Python 3.11.3: pkg install py311-glances
**NOTE:** Check Glances Binary Package Version for your System Architecture.
You must have the Correct Python Version Installed which corresponds to the Glances Binary Package.
To install Glances from Ports:
.. code-block:: console
# cd /usr/ports/sysutils/py-glances/
# make install clean
macOS
-----
MacOS users can install Glances using ``Homebrew`` or ``MacPorts``.
Homebrew
````````
.. code-block:: console
$ brew install glances
MacPorts
````````
.. code-block:: console
$ sudo port install glances
Windows
-------
Install `Python`_ for Windows (Python 3.4+ ship with pip) and
follow the Glances Pip install procedure.
Android
-------
You need a rooted device and the `Termux`_ application (available on the
Google Play Store).
Start Termux on your device and enter:
.. code-block:: console
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
And start Glances:
.. code-block:: console
$ glances
You can also run Glances in server mode (-s or -w) in order to remotely
monitor your Android device.
Source
------
To install Glances from source:
.. code-block:: console
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
*Note*: Python headers are required to install psutil.
Chef
----
An awesome ``Chef`` cookbook is available to monitor your infrastructure:
https://supermarket.chef.io/cookbooks/glances (thanks to Antoine Rouyer)
Puppet
------
You can install Glances using ``Puppet``: https://github.com/rverchere/puppet-glances
Ansible
-------
A Glances ``Ansible`` role is available: https://galaxy.ansible.com/zaxos/glances-ansible-role/
Shell tab completion 🔍
=======================
Glances 4.3.2 and higher includes shell tab autocompletion thanks to the --print-completion option.
For example, on a Linux operating system with bash shell:
.. code-block:: console
$ mkdir -p ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion
$ glances --print-completion bash > ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion/glances
$ source ${XDG_DATA_HOME:="$HOME/.local/share"}/bash-completion/glances
Following shells are supported: bash, zsh and tcsh.
Requirements 🧩
===============
Glances is developed in Python. A minimal Python version 3.10 or higher
should be installed on your system.
*Note for Python 2 users*
Glances version 4 or higher do not support Python 2 (and Python 3 < 3.10).
Please uses Glances version 3.4.x if you need Python 2 support.
Dependencies:
- ``psutil`` (better with latest version)
- ``defusedxml`` (in order to monkey patch xmlrpc)
- ``packaging`` (for the version comparison)
- ``windows-curses`` (Windows Curses implementation) [Windows-only]
- ``shtab`` (Shell autocompletion) [All but Windows]
- ``jinja2`` (for fetch mode and templating)
Extra dependencies:
- ``batinfo`` (for battery monitoring)
- ``bernhard`` (for the Riemann export module)
- ``cassandra-driver`` (for the Cassandra export module)
- ``chevron`` (for the action script feature)
- ``docker`` (for the Containers Docker monitoring support)
- ``elasticsearch`` (for the Elastic Search export module)
- ``FastAPI`` and ``Uvicorn`` (for Web server mode)
- ``graphitesender`` (For the Graphite export module)
- ``hddtemp`` (for HDD temperature monitoring support) [Linux-only]
- ``influxdb`` (for the InfluxDB version 1 export module)
- ``influxdb-client`` (for the InfluxDB version 2 export module)
- ``kafka-python`` (for the Kafka export module)
- ``nats-py`` (for the NATS export module)
- ``nvidia-ml-py`` (for the GPU plugin)
- ``pycouchdb`` (for the CouchDB export module)
- ``pika`` (for the RabbitMQ/ActiveMQ export module)
- ``podman`` (for the Containers Podman monitoring support)
- ``potsdb`` (for the OpenTSDB export module)
- ``prometheus_client`` (for the Prometheus export module)
- ``psycopg[binary]`` (for the PostgreSQL/TimeScale export module)
- ``pygal`` (for the graph export module)
- ``pymdstat`` (for RAID support) [Linux-only]
- ``pymongo`` (for the MongoDB export module)
- ``pysnmp-lextudio`` (for SNMP support)
- ``pySMART.smartx`` (for HDD Smart support) [Linux-only]
- ``pyzmq`` (for the ZeroMQ export module)
- ``requests`` (for the Ports, Cloud plugins and RESTful export module)
- ``sparklines`` (for the Quick Plugin sparklines option)
- ``statsd`` (for the StatsD export module)
- ``wifi`` (for the wifi plugin) [Linux-only]
- ``zeroconf`` (for the autodiscover mode)
How to contribute ? 🤝
======================
If you want to contribute to the Glances project, read this `wiki`_ page.
@ -463,29 +604,53 @@ There is also a chat dedicated to the Glances developers:
.. image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/nicolargo/glances?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
Author
======
Project sponsorship 🙌
======================
You can help me to achieve my goals of improving this open-source project
or just say "thank you" by:
- sponsor me using one-time or monthly tier Github sponsors_ page
- send me some pieces of bitcoin: 185KN9FCix3svJYp7JQM7hRMfSKyeaJR4X
- buy me a gift on my wishlist_ page
Any and all contributions are greatly appreciated.
Authors and Contributors 🔥
===========================
Nicolas Hennion (@nicolargo) <nicolas@nicolargo.com>
.. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo
:target: https://twitter.com/nicolargo
License
=======
License 📜
==========
Glances is distributed under the LGPL version 3 license. See ``COPYING`` for more details.
More stars ! 🌟
===============
Please give us a star on `GitHub`_ if you like this project.
.. image:: https://api.star-history.com/svg?repos=nicolargo/glances&type=Date
:target: https://www.star-history.com/#nicolargo/glances&Date
:alt: Star history
.. _psutil: https://github.com/giampaolo/psutil
.. _glancesautoinstall: https://github.com/nicolargo/glancesautoinstall
.. _Brew: https://formulae.brew.sh/formula/glances
.. _Python: https://www.python.org/getit/
.. _Termux: https://play.google.com/store/apps/details?id=com.termux
.. _readthedocs: https://glances.readthedocs.io/
.. _forum: https://groups.google.com/forum/?hl=en#!forum/glances-users
.. _forum: https://www.reddit.com/r/glances/
.. _wiki: https://github.com/nicolargo/glances/wiki/How-to-contribute-to-Glances-%3F
.. _package: https://repology.org/project/glances/versions
.. _sponsors: https://github.com/sponsors/nicolargo
.. _wishlist: https://www.amazon.fr/hz/wishlist/ls/BWAAQKWFR3FI?ref_=wl_share
.. _issue2021: https://github.com/nicolargo/glances/issues/2021#issuecomment-1197831157
.. _issue2021comment: https://github.com/nicolargo/glances/issues/2021#issuecomment-1197831157
.. _Docker: https://github.com/nicolargo/glances/blob/develop/docs/docker.rst
.. _Docker: https://github.com/nicolargo/glances/blob/master/docs/docker.rst
.. _GitHub: https://github.com/nicolargo/glances
.. _PythonApi: https://glances.readthedocs.io/en/develop/api/python.html
.. _RestfulApi: https://glances.readthedocs.io/en/develop/api/restful.html
.. _FAQ: https://github.com/nicolargo/glances/blob/develop/docs/faq.rst
.. _Discussions: https://github.com/nicolargo/glances/discussions

View File

@ -2,13 +2,10 @@
## Supported Versions
Use this section to tell people about which versions of your project are
currently being supported with security updates.
| Version | Support security updates |
| ------- | ------------------------ |
| 3.x | :white_check_mark: |
| < 3.0 | :x: |
| 4.x | :white_check_mark: |
| < 4.0 | :x: |
## Reporting a Vulnerability
@ -31,4 +28,3 @@ If there are any vulnerabilities in {{cookiecutter.project_name}}, don't hesitat
4. Please do not disclose the vulnerability publicly until a fix is released!
Once we have either a) published a fix, or b) declined to address the vulnerability for whatever reason, you are free to publicly disclose it.

237
all-requirements.txt Normal file
View File

@ -0,0 +1,237 @@
# This file was autogenerated by uv via the following command:
# uv export --no-emit-workspace --no-hashes --all-extras --no-group dev --output-file all-requirements.txt
annotated-doc==0.0.4
# via fastapi
annotated-types==0.7.0
# via pydantic
anyio==4.12.0
# via
# elasticsearch
# starlette
batinfo==0.4.2 ; sys_platform == 'linux'
# via glances
bernhard==0.2.6
# via glances
cassandra-driver==3.29.3
# via glances
certifi==2025.11.12
# via
# elastic-transport
# influxdb-client
# influxdb3-python
# requests
cffi==2.0.0 ; implementation_name == 'pypy' or platform_python_implementation != 'PyPy'
# via
# cryptography
# pyzmq
chardet==5.2.0
# via pysmart
charset-normalizer==3.4.4
# via requests
chevron==0.14.0
# via glances
click==8.1.8
# via
# geomet
# uvicorn
colorama==0.4.6 ; sys_platform == 'win32'
# via click
cryptography==46.0.3
# via pysnmpcrypto
defusedxml==0.7.1
# via glances
dnspython==2.8.0
# via pymongo
docker==7.1.0
# via glances
elastic-transport==9.2.1
# via elasticsearch
elasticsearch==9.2.1
# via glances
exceptiongroup==1.2.2 ; python_full_version < '3.11'
# via anyio
fastapi==0.128.0
# via glances
geomet==1.1.0
# via cassandra-driver
graphitesender==0.11.2
# via glances
h11==0.16.0
# via uvicorn
humanfriendly==10.0
# via pysmart
ibm-cloud-sdk-core==3.24.2
# via ibmcloudant
ibmcloudant==0.11.2
# via glances
idna==3.11
# via
# anyio
# requests
ifaddr==0.2.0
# via zeroconf
importlib-metadata==8.7.1
# via pygal
influxdb==5.3.2
# via glances
influxdb-client==1.49.0
# via glances
influxdb3-python==0.16.0
# via glances
jinja2==3.1.6
# via
# glances
# pysmi-lextudio
kafka-python==2.3.0
# via glances
markupsafe==3.0.3
# via jinja2
msgpack==1.1.2
# via influxdb
nats-py==2.12.0
# via glances
nvidia-ml-py==13.590.44
# via glances
packaging==25.0
# via glances
paho-mqtt==2.1.0
# via glances
pbkdf2==1.3
# via wifi
pika==1.3.2
# via glances
ply==3.11
# via pysmi-lextudio
podman==5.6.0
# via glances
potsdb==1.0.3
# via glances
prometheus-client==0.23.1
# via glances
protobuf==6.33.2
# via bernhard
psutil==7.2.1
# via glances
psycopg==3.3.2
# via glances
psycopg-binary==3.3.2 ; implementation_name != 'pypy'
# via psycopg
pyarrow==22.0.0
# via influxdb3-python
pyasn1==0.6.1
# via pysnmp-lextudio
pycparser==2.23 ; (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') or (implementation_name == 'pypy' and platform_python_implementation == 'PyPy')
# via cffi
pydantic==2.12.5
# via fastapi
pydantic-core==2.41.5
# via pydantic
pygal==3.1.0
# via glances
pyjwt==2.10.1
# via
# ibm-cloud-sdk-core
# ibmcloudant
pymdstat==0.4.3
# via glances
pymongo==4.15.5
# via glances
pyreadline3==3.5.4 ; sys_platform == 'win32'
# via humanfriendly
pysmart==1.4.2
# via glances
pysmi-lextudio==1.4.3
# via pysnmp-lextudio
pysnmp-lextudio==6.1.2
# via glances
pysnmpcrypto==0.0.4
# via pysnmp-lextudio
python-dateutil==2.9.0.post0
# via
# elasticsearch
# glances
# ibm-cloud-sdk-core
# ibmcloudant
# influxdb
# influxdb-client
# influxdb3-python
pytz==2025.2
# via influxdb
pywin32==311 ; sys_platform == 'win32'
# via docker
pyzmq==27.1.0
# via glances
reactivex==4.1.0
# via
# influxdb-client
# influxdb3-python
requests==2.32.5
# via
# docker
# glances
# ibm-cloud-sdk-core
# ibmcloudant
# influxdb
# podman
# pysmi-lextudio
setuptools==80.9.0
# via
# influxdb-client
# wifi
shtab==1.8.0 ; sys_platform != 'win32'
# via glances
six==1.17.0
# via
# glances
# influxdb
# python-dateutil
sniffio==1.3.1
# via
# elastic-transport
# elasticsearch
sparklines==0.7.0
# via glances
starlette==0.50.0
# via fastapi
statsd==4.0.1
# via glances
termcolor==3.3.0
# via sparklines
tomli==2.0.2 ; python_full_version < '3.11'
# via podman
typing-extensions==4.15.0
# via
# anyio
# cryptography
# elasticsearch
# fastapi
# psycopg
# pydantic
# pydantic-core
# reactivex
# starlette
# typing-inspection
# uvicorn
typing-inspection==0.4.2
# via pydantic
tzdata==2025.3 ; sys_platform == 'win32'
# via psycopg
urllib3==2.6.2
# via
# docker
# elastic-transport
# ibm-cloud-sdk-core
# influxdb-client
# influxdb3-python
# podman
# requests
uvicorn==0.40.0
# via glances
wifi==0.3.8
# via glances
windows-curses==2.4.1 ; sys_platform == 'win32'
# via glances
zeroconf==0.148.0
# via glances
zipp==3.23.0
# via importlib-metadata

View File

@ -0,0 +1,9 @@
✨ {{ gl.system['hostname'] }}{{ ' - ' + gl.ip['address'] if gl.ip['address'] else '' }}
⚙️ {{ gl.system['hr_name'] }} | Uptime: {{ gl.uptime }}
💡 LOAD {{ '%0.2f'| format(gl.load['min1']) }} {{ '%0.2f'| format(gl.load['min5']) }} {{ '%0.2f'| format(gl.load['min15']) }}
⚡ CPU {{ gl.bar(gl.cpu['total']) }} {{ gl.cpu['total'] }}% of {{ gl.core['log'] }} cores
🧠 MEM {{ gl.bar(gl.mem['percent']) }} {{ gl.mem['percent'] }}% ({{ gl.auto_unit(gl.mem['used']) }} {{ gl.auto_unit(gl.mem['total']) }})
{% for fs in gl.fs.keys() %}💾 {% if loop.index == 1 %}DISK{% else %} {% endif %} {{ gl.bar(gl.fs[fs]['percent']) }} {{ gl.fs[fs]['percent'] }}% ({{ gl.auto_unit(gl.fs[fs]['used']) }} {{ gl.auto_unit(gl.fs[fs]['size']) }}) for {{ fs }}
{% endfor %}{% for net in gl.network.keys() %}📡 {% if loop.index == 1 %}NET{% else %} {% endif %} ↓ {{ gl.auto_unit(gl.network[net]['bytes_recv_rate_per_sec']) }}b/s ↑ {{ gl.auto_unit(gl.network[net]['bytes_sent_rate_per_sec']) }}b/s for {{ net }}
{% endfor %}

View File

@ -0,0 +1,23 @@
_____ _
/ ____| |
| | __| | __ _ _ __ ___ ___ ___
| | |_ | |/ _` | '_ \ / __/ _ \/ __|
| |__| | | (_| | | | | (_| __/\__
\_____|_|\__,_|_| |_|\___\___||___/
✨ {{ gl.system['hostname'] }}{{ ' - ' + gl.ip['address'] if gl.ip['address'] else '' }}
⚙️ {{ gl.system['hr_name'] }} | Uptime: {{ gl.uptime }}
💡 LOAD {{ '%0.2f'| format(gl.load['min1']) }} {{ '%0.2f'| format(gl.load['min5']) }} {{ '%0.2f'| format(gl.load['min15']) }}
⚡ CPU {{ gl.bar(gl.cpu['total']) }} {{ gl.cpu['total'] }}% of {{ gl.core['log'] }} cores
🧠 MEM {{ gl.bar(gl.mem['percent']) }} {{ gl.mem['percent'] }}% ({{ gl.auto_unit(gl.mem['used']) }} {{ gl.auto_unit(gl.mem['total']) }})
{% for fs in gl.fs.keys() %}💾 {% if loop.index == 1 %}DISK{% else %} {% endif %} {{ gl.bar(gl.fs[fs]['percent']) }} {{ gl.fs[fs]['percent'] }}% ({{ gl.auto_unit(gl.fs[fs]['used']) }} {{ gl.auto_unit(gl.fs[fs]['size']) }}) for {{ fs }}
{% endfor %}{% for net in gl.network.keys() %}📡 {% if loop.index == 1 %}NET{% else %} {% endif %} ↓ {{ gl.auto_unit(gl.network[net]['bytes_recv_rate_per_sec']) }}b/s ↑ {{ gl.auto_unit(gl.network[net]['bytes_sent_rate_per_sec']) }}b/s for {{ net }}
{% endfor %}
🔥 TOP PROCESS by CPU
{% for process in gl.top_process() %}{{ loop.index }}️⃣ {{ process['name'][:20] }}{{ ' ' * (20 - process['name'][:20] | length) }} ⚡ {{ process['cpu_percent'] }}% CPU{{ ' ' * (8 - (gl.auto_unit(process['cpu_percent']) | length)) }} 🧠 {{ gl.auto_unit(process['memory_info']['rss']) }}B MEM
{% endfor %}
🔥 TOP PROCESS by MEM
{% for process in gl.top_process(sorted_by='memory_percent', sorted_by_secondary='cpu_percent') %}{{ loop.index }}️⃣ {{ process['name'][:20] }}{{ ' ' * (20 - process['name'][:20] | length) }} 🧠 {{ gl.auto_unit(process['memory_info']['rss']) }}B MEM{{ ' ' * (7 - (gl.auto_unit(process['memory_info']['rss']) | length)) }} ⚡ {{ process['cpu_percent'] }}% CPU
{% endfor %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,28 +13,75 @@ check_update=true
# Default is 1200 values (~1h with the default refresh rate)
history_size=1200
# Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z)
#strftime_format="%Y-%m-%d %H:%M:%S %Z"
#strftime_format=%Y-%m-%d %H:%M:%S %Z
# Define external directory for loading additional plugins
# The layout follows the glances standard for plugin definitions
#plugin_dir=/home/user/dev/plugins
##############################################################################
# User interface
##############################################################################
[outputs]
# Theme name for the Curses interface: black or white
curse_theme=black
# Limit the number of processes to display in the WebUI
max_processes_display=30
# Options for all UIs
#--------------------
# Separator in the Curses and WebUI interface (between top and others plugins)
#separator=True
# Set the the Curses and WebUI interface left menu plugin list (comma-separated)
#left_menu=network,wifi,connections,ports,diskio,fs,irq,folders,raid,smart,sensors,now
# Limit the number of processes to display (in the WebUI)
#max_processes_display=25
#
# Specifics options for TUI
#--------------------------
# Disable background color
#disable_bg=True
#
# Specifics options for WebUI
#----------------------------
# Set URL prefix for the WebUI and the API
# Example: url_prefix=/glances/ => http://localhost/glances/
# Note: The final / is mandatory
# Default is no prefix (/)
#url_prefix=/glances/
# Set root path for WebUI statics files
# Why ? On Debian system, WebUI statics files are not provided.
# You can download it in a specific folder
# thanks to https://github.com/nicolargo/glances/issues/2021
# then configure this folder with the webui_root_path key
# Default is folder where glances_restful_api.py is hosted
#webui_root_path=
# CORS options
# Comma separated list of origins that should be permitted to make cross-origin requests.
# Default is *
#cors_origins=*
# Indicate that cookies should be supported for cross-origin requests.
# Default is True
#cors_credentials=True
# Comma separated list of HTTP methods that should be allowed for cross-origin requests.
# Default is *
#cors_methods=*
# Comma separated list of HTTP request headers that should be supported for cross-origin requests.
# Default is *
#cors_headers=*
# Define SSL files (keyfile_password is optional)
#ssl_keyfile_password=kfp
#ssl_keyfile=./glances.local+3-key.pem
#ssl_certfile=./glances.local+3.pem
##############################################################################
# plugins
# Plugins
##############################################################################
[quicklook]
# Set to true to disable a plugin
# Note: you can also disable it from the command line (see --disable-plugin <plugin_name>)
disable=False
# Graphical percentage char used in the terminal user interface (default is |)
percentage_char=|
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,load
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|
# Define CPU, MEM and SWAP thresholds in %
cpu_careful=50
cpu_warning=70
@ -45,6 +92,11 @@ mem_critical=90
swap_careful=50
swap_warning=70
swap_critical=90
# Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
# With 1 CPU core, the load should be lower than 1.00 ~ 100%
load_careful=70
load_warning=100
load_critical=500
[system]
# This plugin display the first line in the Glances UI with:
@ -53,6 +105,9 @@ swap_critical=90
disable=False
# Default refresh rate is 60 seconds
#refresh=60
# System information to display (a string where {key} will be replaced by the value)
# Available information are: hostname, os_name, os_version, os_arch, linux_distro, platform
#system_info_msg= | My {os_name} system |
[cpu]
disable=False
@ -76,7 +131,7 @@ user_careful=50
user_warning=70
user_critical=90
user_log=False
#user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert
#user_critical_action=echo "{{time}} User CPU {{user}} higher than {{critical}}" > /tmp/cpu.alert
#
system_careful=50
system_warning=70
@ -89,13 +144,18 @@ steal_critical=90
#steal_log=True
#
# Context switch limit (core / second)
# Leave commented to just use the default config (critical is 50000*# (Logical CPU cores)
# Leave commented to just use the default config critical is 50000*(Logical CPU cores)
#ctx_switches_careful=10000
#ctx_switches_warning=12000
#ctx_switches_critical=14000
[percpu]
disable=False
# Define the maximum number of CPU displayed at a time
# If the number of CPU is higher than the one configured in max_cpu_display then:
# - display top 'max_cpu_display' (sorted by CPU consumption)
# - a last line will be added with the mean of all other CPUs
max_cpu_display=4
# Define CPU thresholds in %
# Default values if not defined: 50/70/90
user_careful=50
@ -118,15 +178,21 @@ proc_critical=90
mem_careful=50
mem_warning=70
mem_critical=90
# Temperature
temperature_careful=60
temperature_warning=70
temperature_critical=80
[mem]
disable=False
# Display available memory instead of used memory
#available=True
# Define RAM thresholds in %
# Default values if not defined: 50/70/90
careful=50
#careful_action_repeat=echo {{percent}} >> /tmp/memory.alert
warning=70
critical=90
#critical_action_repeat=echo "{{time}} {{percent}} higher than {{critical}}"" >> /tmp/memory.alert
[memswap]
disable=False
@ -135,6 +201,7 @@ disable=False
careful=50
warning=70
critical=90
#warning_action=echo "{{time}} {{percent}} higher than {{warning}}"" > /tmp/memory.alert
[load]
disable=False
@ -159,11 +226,18 @@ tx_careful=70
tx_warning=80
tx_critical=90
# Define the list of hidden network interfaces (comma-separated regexp)
#hide=docker.*,lo
hide=docker.*,lo
# Define the list of wireless network interfaces to be show (comma-separated)
#show=docker.*
# WLAN 0 alias
#wlan0_alias=Wireless
# Automatically hide interface not up (default is False)
hide_no_up=True
# Automatically hide interface with no IP address (default is False)
hide_no_ip=True
# Set hide_zero to True to automatically hide interface with no traffic
hide_zero=False
# Set hide_threshold_bytes to an integer value to automatically hide
# interface with traffic less or equal than this value
#hide_threshold_bytes=0
# It is possible to overwrite the bitrate thresholds per interface
# WLAN 0 Default limits (in bits per second aka bps) for interface bitrate
#wlan0_rx_careful=4000000
@ -174,24 +248,38 @@ tx_critical=90
#wlan0_tx_warning=900000
#wlan0_tx_critical=1000000
#wlan0_tx_log=True
#wlan0_rx_critical_action=echo "{{time}} {{interface_name}} RX {{bytes_recv_rate_per_sec}}Bps" > /tmp/network.alert
# Alias for network interface name
#alias=wlp0s20f3:WIFI
[ip]
# Disable display of private IP address
disable=False
# Configure the online service where public IP address information will be downloaded
# - public_disabled: Disable public IP address information (set to True for offline platform)
# - public_refresh_interval: Refresh interval between to calls to the online service
# - public_api: URL of the API (the API should return an JSON object)
# - public_username: Login for the online service (if needed)
# - public_password: Password for the online service (if needed)
# - public_field: Field name of the public IP address in onlibe service JSON message
# - public_template: Template to build the public message
#
# Example for IPLeak service:
# public_api=https://ipv4.ipleak.net/json/
# public_field=ip
# public_template={ip} {continent_name}/{country_name}/{city_name}
#
public_disabled=True
public_refresh_interval=300
public_ip_disabled=False
# Configuration for the Censys online service
# Need to create an aacount: https://censys.io/login
censys_url=https://search.censys.io/api
# Get your own credential here: https://search.censys.io/account/api
# Enter your credential and uncomment the following lines
#censys_username=<censys_api_id>
#censys_password=<censys_secret>
# List of fields to be displayed in user interface (comma separated)
censys_fields=location:continent,location:country,autonomous_system:name
public_api=https://ipv4.ipleak.net/json/
#public_username=<myname>
#public_password=<mysecret>
public_field=ip
public_template={continent_name}/{country_name}/{city_name}
[connections]
# Display additional information about TCP connections
# This plugin is disabled by default
# This plugin is disabled by default because it consumes lots of CPU
disable=True
# nf_conntrack thresholds in %
nf_conntrack_percent_careful=70
@ -199,12 +287,8 @@ nf_conntrack_percent_warning=80
nf_conntrack_percent_critical=90
[wifi]
disable=True
# Define the list of hidden wireless network interfaces (comma-separated regexp)
hide=lo,docker.*
# Define the list of wireless network interfaces to be show (comma-separated)
#show=docker.*
# Define SIGNAL thresholds in db (lower is better...)
disable=False
# Define SIGNAL thresholds in dBm (lower is better...)
# Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength
careful=-65
warning=-75
@ -215,26 +299,63 @@ disable=False
# Define the list of hidden disks (comma-separated regexp)
#hide=sda2,sda5,loop.*
hide=loop.*,/dev/loop.*
# Set hide_zero to True to automatically hide disk with no read/write
hide_zero=False
# Set hide_threshold_bytes to an integer value to automatically hide
# interface with traffic less or equal than this value
#hide_threshold_bytes=0
# Define the list of disks to be show (comma-separated)
#show=sda.*
# Alias for sda1
#sda1_alias=InternalDisk
# Alias for sda1 and sdb1
#alias=sda1:SystemDisk,sdb1:DataDisk
# Default latency thresholds (in ms) (rx = read / tx = write)
rx_latency_careful=10
rx_latency_warning=20
rx_latency_critical=50
tx_latency_careful=10
tx_latency_warning=20
tx_latency_critical=50
# Set latency thresholds (latency in ms) for a given disk name (rx = read / tx = write)
# dm-0_rx_latency_careful=10
# dm-0_rx_latency_warning=20
# dm-0_rx_latency_critical=50
# dm-0_rx_latency_log=False
# dm-0_tx_latency_careful=10
# dm-0_tx_latency_warning=20
# dm-0_tx_latency_critical=50
# dm-0_tx_latency_log=False
# There is no default bitrate thresholds for disk (because it is not possible to know the disk speed)
# Set bitrate thresholds (in bytes per second) for a given disk name (rx = read / tx = write)
#dm-0_rx_careful=4000000000
#dm-0_rx_warning=5000000000
#dm-0_rx_critical=6000000000
#dm-0_rx_log=False
#dm-0_tx_careful=700000000
#dm-0_tx_warning=900000000
#dm-0_tx_critical=1000000000
#dm-0_tx_log=False
[fs]
disable=False
# Define the list of file system to hide (comma-separated regexp)
hide=/boot.*,/snap.*
hide=/boot.*,.*/snap.*
# Define the list of file system to show (comma-separated regexp)
#show=/,/srv
# Define filesystem space thresholds in %
# Default values if not defined: 50/70/90
# It is also possible to define per mount point value
# Example: /_careful=40
careful=50
warning=70
critical=90
# It is also possible to define per mount point value
# Example: /_careful=40
#/_careful=1
#/_warning=5
#/_critical=10
#/_critical_action=echo "{{time}} {{mnt_point}} filesystem space {{percent}}% higher than {{critical}}%" > /tmp/fs.alert
# Allow additional file system types (comma-separated FS type)
#allow=shm
# Alias for root file system
#alias=/:Root,/zfspool:ZFS
[irq]
# Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html
@ -277,6 +398,12 @@ disable=True
# Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html
# This plugin is disabled by default
disable=True
# Define the list of sensors to hide (comma-separated regexp)
#hide=.*Hide_this_driver.*
# Define the list of sensors to show (comma-separated regexp)
#show=.*Drive_Temperature.*
# List of attributes to hide (comma separated)
#hide_attributes=Self-tests,Errors
[hddtemp]
disable=False
@ -287,32 +414,39 @@ port=7634
[sensors]
# Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html
disable=False
# By default refresh every refresh time * 2
#refresh=6
# Hide some sensors
#hide=ambient
# Set the refresh multiplicator for the sensors
# By default refresh every Glances refresh * 5 (increase to reduce CPU consumption)
#refresh=5
# Hide some sensors (comma separated list of regexp)
hide=unknown.*
# Show only the following sensors (comma separated list of regexp)
#show=CPU.*
# Sensors core thresholds (in Celsius...)
# Default values are grabbed from the system
#temperature_core_careful=60
#temperature_core_warning=70
# By default values are grabbed from the system
# Overwrite thresholds for a specific sensor
# temperature_core_Ambient_careful=40
# temperature_core_Ambient_warning=60
# temperature_core_Ambient_critical=85
# temperature_core_Ambient_log=True
# temperature_core_Ambient_critical_action=echo "{{time}} {{label}} temperature {{value}}{{unit}} higher than {{critical}}{{unit}}" > /tmp/temperature.alert
# Overwrite thresholds for a specific type of sensor
#temperature_core_careful=45
#temperature_core_warning=65
#temperature_core_critical=80
# Temperatures threshold in °C for hddtemp
# Default values if not defined: 45/52/60
temperature_hdd_careful=45
temperature_hdd_warning=52
temperature_hdd_critical=60
#temperature_hdd_careful=45
#temperature_hdd_warning=52
#temperature_hdd_critical=60
# Battery threshold in %
battery_careful=80
battery_warning=90
battery_critical=95
# Default values if not defined: 70/80/90
#battery_careful=70
#battery_warning=80
#battery_critical=90
# Fan speed threshold in RPM
#fan_speed_careful=100
# Sensors alias
#temp1_alias=Motherboard 0
#temp2_alias=Motherboard 1
#core 0_temperature_core_alias=CPU Core 0 temp
#core 0_fans_speed_alias=CPU Core 0 fan
#or
#core 0_alias=CPU Core 0
#core 1_alias=CPU Core 1
#alias=core 0:CPU Core 0,core 1:CPU Core 1
[processcount]
disable=False
@ -325,6 +459,12 @@ disable=False
# Should be one of the following:
# cpu_percent, memory_percent, io_counters, name, cpu_times, username
#sort_key=memory_percent
# List of stats to disable (not grabed and not display)
# Stats that can be disabled: cpu_percent,memory_info,memory_percent,username,cpu_times,num_threads,nice,status,io_counters,cmdline
# Stats that can not be disable: pid,name
#disable_stats=cpu_percent,memory_info,memory_percent,username,cpu_times,num_threads,nice,status,io_counters,cmdline
# Disable display of virtual memory
#disable_virtual_memory=True
# Define CPU/MEM (per process) thresholds in %
# Default values if not defined: 50/70/90
cpu_careful=50
@ -335,15 +475,26 @@ mem_warning=70
mem_critical=90
#
# Nice priorities range from -20 to 19.
# Configure nice levels using a comma separated list.
# Configure nice levels using a comma-separated list.
#
# Nice: Example 1, non-zero is warning (default behavior)
nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
#
# Nice: Example 2, low priority processes escalate from careful to critical
#nice_ok=O
#nice_careful=1,2,3,4,5,6,7,8,9
#nice_warning=10,11,12,13,14
#nice_critical=15,16,17,18,19
#
# Status: define threshold regarding the process status (first letter of process status)
# R: Running, S: Sleeping, Z: Zombie (complete list here https://psutil.readthedocs.io/en/latest/#process-status-constants)
status_ok=R,W,P,I
status_critical=Z,D
# Define the list of processes to export using:
# a comma-separated list of Glances filter
#export=.*firefox.*,pid:1234
# Define a list of process to focus on (comma-separated list of Glances filter)
#focus=.*firefox.*,.*python.*
[ports]
disable=False
@ -391,54 +542,87 @@ port_default_gateway=True
#web_4_url=https://blog.nicolargo.com/nonexist
#web_4_description=Intranet
[vms]
disable=True
# Define the maximum VMs size name (default is 20 chars)
max_name_size=20
# By default, Glances only display running VMs with states:
# 'Running', 'Paused', 'Starting' or 'Restarting'
# Set the following key to True to display all VMs regarding their states
all=False
[containers]
disable=False
# Only show specific containers (comma separated list of container name or regular expression)
# Only show specific containers (comma-separated list of container name or regular expression)
# Comment this line to display all containers (default configuration)
#show=telegraf
# Hide some containers (comma separated list of container name or regular expression)
; show=telegraf
# Hide some containers (comma-separated list of container name or regular expression)
# Comment this line to display all containers (default configuration)
#hide=telegraf
; hide=telegraf
# Define the maximum docker size name (default is 20 chars)
max_name_size=20
#cpu_careful=50
# List of stats to disable (not display)
# Following stats can be disabled: name,status,uptime,cpu,mem,diskio,networkio,ports,command
disable_stats=command
# Thresholds for CPU and MEM (in %)
#cpu_warning=70
#cpu_critical=90
#mem_careful=20
#mem_warning=50
#mem_critical=70
; cpu_careful=50
; cpu_warning=70
; cpu_critical=90
; mem_careful=20
; mem_warning=50
; mem_critical=70
#
# Per container thresholds
#containername_cpu_careful=10
#containername_cpu_warning=20
#containername_cpu_critical=30
; containername_cpu_careful=10
; containername_cpu_warning=20
; containername_cpu_critical=30
#
# By default, Glances only display running containers
# Set the following key to True to display all containers
all=False
# Define Podman sock
#podman_sock=unix:///run/user/1000/podman/podman.sock
; podman_sock=unix:///run/user/1000/podman/podman.sock
[amps]
# AMPs configuration are defined in the bottom of this file
disable=False
[alert]
disable=False
# Maximum number of events to display (default is 10 events)
;max_events=10
# Minimum duration for an event to be taken into account (default is 6 seconds)
;min_duration=6
# Minimum time between two events of the same type (default is 6 seconds)
# This is used to avoid too many alerts for the same event
# Events will be merged
;min_interval=6
##############################################################################
# Client/server
# Browser mode - Static servers definition
##############################################################################
[serverlist]
# Define columns (comma separated list of <plugin>:<field>:(<key>)) to grab/display
# Default is: system:hr_name,load:min5,cpu:total,mem:percent
# You can also add stats with key, like sensors:value:Ambient (key is case sensitive)
#columns=system:hr_name,load:min5,cpu:total,mem:percent,memswap:percent,sensors:value:Ambient,sensors:value:Composite
# Define the static servers list
# _protocol can be: rpc (default if not defined) or rest
# List is limited to 256 servers max (1 to 256)
#server_1_name=localhost
#server_1_alias=My local PC
#server_1_port=61209
#server_1_alias=Local WebUI
#server_1_port=61266
#server_1_protocol=rest
#server_2_name=localhost
#server_2_port=61235
#server_2_alias=My local PC
#server_2_port=61209
#server_2_protocol=rpc
#server_3_name=192.168.0.17
#server_3_alias=Another PC on my network
#server_3_port=61209
#server_4_name=pasbon
#server_1_protocol=rpc
#server_4_name=notagooddefinition
#server_4_port=61237
[passwords]
@ -457,15 +641,20 @@ disable=False
# Exports
##############################################################################
[export]
# Common section for all exporters
# Do not export following fields (comma separated list of regex)
#exclude_fields=.*_critical,.*_careful,.*_warning,.*\.key$
[graph]
# Configuration for the --export graph option
# Set the path where the graph (.svg files) will be created
# Can be overwrite by the --graph-path command line option
path=/tmp
path=/tmp/glances
# It is possible to generate the graphs automatically by setting the
# generate_every to a non zero value corresponding to the seconds between
# two generation. Set it to 0 to disable graph auto generation.
generate_every=60
generate_every=0
# See following configuration keys definitions in the Pygal lib documentation
# http://pygal.org/en/stable/documentation/index.html
width=800
@ -475,7 +664,7 @@ style=DarkStyle
[influxdb]
# !!!
# Will be DEPRECATED in future release.
# Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x)
# Please have a look on the new influxdb3 export module
# !!!
# Configuration for the --export influxdb option
# https://influxdb.com/
@ -493,7 +682,7 @@ db=glances
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname is always added as a tag
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[influxdb2]
@ -504,7 +693,7 @@ port=8086
protocol=http
org=nicolargo
bucket=glances
token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA==
token=PUT_YOUR_INFLUXDB2_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
@ -516,7 +705,28 @@ token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kA
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname is always added as a tag
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[influxdb3]
# Configuration for the --export influxdb3 option
# https://influxdb.com/
host=http://localhost:8181
org=nicolargo
database=glances
token=PUT_YOUR_INFLUXDB3_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
# Prefix will be added for all measurement name
# Ex: prefix=foo
# => foo.cpu
# => foo.mem
# You can also use dynamic values
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[cassandra]
@ -576,12 +786,15 @@ queue=glances_queue
[mqtt]
# Configuration for the --export mqtt option
host=localhost
# Overwrite device name in the topic
#devicename=localhost
port=8883
tls=false
user=guest
password=guest
topic=glances
topic_structure=per-metric
callback_api_version=2
[couchdb]
# Configuration for the --export couchdb option
@ -589,10 +802,8 @@ topic_structure=per-metric
host=localhost
port=5984
db=glances
# user and password are optional (comment if not configured on the server side)
# If they are used, then the https protocol will be used
#user=root
#password=root
user=admin
password=admin
[mongodb]
# Configuration for the --export mongodb option
@ -669,6 +880,26 @@ prefix=glances
# By default, system_name = FQDN
#system_name=mycomputer
[timescaledb]
# Configuration for the --export timescaledb option
# https://www.timescale.com/
host=localhost
port=5432
db=glances
user=postgres
password=password
# Overwrite device name (default is the FQDN)
# Most of the time, you should not overwrite this value
#hostname=mycomputer
[nats]
# Configuration for the --export nats option
# https://nats.io/
# Host is a separated list of NATS nodes
host=nats://localhost:4222
# Prefix for the subjects (default is 'glances')
prefix=glances
##############################################################################
# AMPS
# * enable: Enable (true) or disable (false) the AMP
@ -704,13 +935,13 @@ refresh=3
countmax=20
[amp_conntrack]
# Use comma separated for multiple commands (no space around the comma)
# Use && separator for multiple commands
# If the regex key is not defined, the AMP will be executed every refresh second
# and the process count will not be displayed (countmin and countmax will be ignore)
enable=false
refresh=30
one_line=false
command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max
command=sysctl net.netfilter.nf_conntrack_count && sysctl net.netfilter.nf_conntrack_max
[amp_nginx]
# Use the NGinx AMP

View File

@ -1,14 +1,395 @@
py-spy
black
pyright
requirements-parser
flake8
autopep8
autoflake
ruff
codespell
memory-profiler
matplotlib
semgrep
setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability
numpy>=1.22.2 # not directly required, pinned by Snyk to avoid a vulnerability
# This file was autogenerated by uv via the following command:
# uv export --no-hashes --only-dev --output-file dev-requirements.txt
alabaster==1.0.0
# via sphinx
annotated-types==0.7.0
# via pydantic
anyio==4.12.0
# via
# httpx
# mcp
# sse-starlette
# starlette
attrs==25.4.0
# via
# glom
# jsonschema
# outcome
# referencing
# reuse
# semgrep
# trio
babel==2.17.0
# via sphinx
boltons==21.0.0
# via
# face
# glom
# semgrep
boolean-py==5.0
# via license-expression
bracex==2.6
# via wcmatch
certifi==2025.11.12
# via
# httpcore
# httpx
# requests
# selenium
cffi==2.0.0 ; (implementation_name != 'pypy' and os_name == 'nt') or platform_python_implementation != 'PyPy'
# via
# cryptography
# trio
cfgv==3.5.0
# via pre-commit
charset-normalizer==3.4.4
# via
# python-debian
# requests
click==8.1.8
# via
# click-option-group
# reuse
# semgrep
# typer
# uvicorn
click-option-group==0.5.9
# via semgrep
codespell==2.4.1
colorama==0.4.6
# via
# click
# pytest
# semgrep
# sphinx
contourpy==1.3.2 ; python_full_version < '3.11'
# via matplotlib
contourpy==1.3.3 ; python_full_version >= '3.11'
# via matplotlib
cryptography==46.0.3
# via pyjwt
cycler==0.12.1
# via matplotlib
distlib==0.4.0
# via virtualenv
docutils==0.21.2
# via
# rstcheck-core
# sphinx
# sphinx-rtd-theme
exceptiongroup==1.2.2
# via
# anyio
# pytest
# semgrep
# trio
# trio-websocket
face==24.0.0
# via glom
filelock==3.20.2
# via virtualenv
fonttools==4.61.1
# via matplotlib
glom==22.1.0
# via semgrep
googleapis-common-protos==1.72.0
# via opentelemetry-exporter-otlp-proto-http
gprof2dot==2025.4.14
h11==0.16.0
# via
# httpcore
# uvicorn
# wsproto
httpcore==1.0.9
# via httpx
httpx==0.28.1
# via mcp
httpx-sse==0.4.3
# via mcp
identify==2.6.15
# via pre-commit
idna==3.11
# via
# anyio
# httpx
# requests
# trio
imagesize==1.4.1
# via sphinx
importlib-metadata==8.7.1
# via opentelemetry-api
iniconfig==2.3.0
# via pytest
jinja2==3.1.6
# via
# reuse
# sphinx
jsonschema==4.25.1
# via
# mcp
# semgrep
jsonschema-specifications==2025.9.1
# via jsonschema
kiwisolver==1.4.9
# via matplotlib
license-expression==30.4.4
# via reuse
markdown-it-py==4.0.0
# via rich
markupsafe==3.0.3
# via jinja2
matplotlib==3.10.8
mcp==1.23.3
# via semgrep
mdurl==0.1.2
# via markdown-it-py
memory-profiler==0.61.0
nodeenv==1.10.0
# via
# pre-commit
# pyright
numpy==2.2.6 ; python_full_version < '3.11'
# via
# contourpy
# matplotlib
numpy==2.4.0 ; python_full_version >= '3.11'
# via
# contourpy
# matplotlib
opentelemetry-api==1.37.0
# via
# opentelemetry-exporter-otlp-proto-http
# opentelemetry-instrumentation
# opentelemetry-instrumentation-requests
# opentelemetry-sdk
# opentelemetry-semantic-conventions
# semgrep
opentelemetry-exporter-otlp-proto-common==1.37.0
# via opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-http==1.37.0
# via semgrep
opentelemetry-instrumentation==0.58b0
# via opentelemetry-instrumentation-requests
opentelemetry-instrumentation-requests==0.58b0
# via semgrep
opentelemetry-proto==1.37.0
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-http
opentelemetry-sdk==1.37.0
# via
# opentelemetry-exporter-otlp-proto-http
# semgrep
opentelemetry-semantic-conventions==0.58b0
# via
# opentelemetry-instrumentation
# opentelemetry-instrumentation-requests
# opentelemetry-sdk
opentelemetry-util-http==0.58b0
# via opentelemetry-instrumentation-requests
outcome==1.3.0.post0
# via
# trio
# trio-websocket
packaging==25.0
# via
# matplotlib
# opentelemetry-instrumentation
# pytest
# requirements-parser
# semgrep
# sphinx
# webdriver-manager
peewee==3.18.3
# via semgrep
pillow==12.1.0
# via matplotlib
platformdirs==4.5.1
# via virtualenv
pluggy==1.6.0
# via pytest
pre-commit==4.5.1
protobuf==6.33.2
# via
# googleapis-common-protos
# opentelemetry-proto
psutil==7.2.1
# via memory-profiler
py-spy==0.4.1
pycparser==2.23 ; (implementation_name != 'PyPy' and implementation_name != 'pypy' and os_name == 'nt') or (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy')
# via cffi
pydantic==2.12.5
# via
# mcp
# pydantic-settings
# rstcheck-core
pydantic-core==2.41.5
# via pydantic
pydantic-settings==2.12.0
# via mcp
pygments==2.19.2
# via
# pytest
# rich
# sphinx
pyinstrument==5.1.1
pyjwt==2.10.1
# via mcp
pyparsing==3.3.1
# via matplotlib
pyright==1.1.407
pysocks==1.7.1
# via urllib3
pytest==9.0.2
python-dateutil==2.9.0.post0
# via matplotlib
python-debian==1.0.1
# via reuse
python-dotenv==1.2.1
# via
# pydantic-settings
# webdriver-manager
python-magic==0.4.27
# via reuse
python-multipart==0.0.21
# via mcp
pywin32==311 ; sys_platform == 'win32'
# via
# mcp
# semgrep
pyyaml==6.0.3
# via pre-commit
referencing==0.37.0
# via
# jsonschema
# jsonschema-specifications
requests==2.32.5
# via
# opentelemetry-exporter-otlp-proto-http
# semgrep
# sphinx
# webdriver-manager
requirements-parser==0.13.0
reuse==6.2.0
rich==13.5.3
# via
# semgrep
# typer
roman-numerals==4.1.0 ; python_full_version >= '3.11'
# via roman-numerals-py
roman-numerals-py==4.1.0 ; python_full_version >= '3.11'
# via sphinx
rpds-py==0.30.0
# via
# jsonschema
# referencing
rstcheck==6.2.5
rstcheck-core==1.2.2
# via rstcheck
ruamel-yaml==0.19.1
# via semgrep
ruamel-yaml-clib==0.2.14
# via semgrep
ruff==0.14.10
selenium==4.39.0
semgrep==1.146.0
setuptools==80.9.0
shellingham==1.5.4
# via typer
six==1.17.0
# via python-dateutil
sniffio==1.3.1
# via trio
snowballstemmer==3.0.1
# via sphinx
sortedcontainers==2.4.0
# via trio
sphinx==8.1.3 ; python_full_version < '3.11'
# via
# sphinx-rtd-theme
# sphinxcontrib-jquery
sphinx==8.2.3 ; python_full_version >= '3.11'
# via
# sphinx-rtd-theme
# sphinxcontrib-jquery
sphinx-rtd-theme==3.0.2
sphinxcontrib-applehelp==2.0.0
# via sphinx
sphinxcontrib-devhelp==2.0.0
# via sphinx
sphinxcontrib-htmlhelp==2.1.0
# via sphinx
sphinxcontrib-jquery==4.1
# via sphinx-rtd-theme
sphinxcontrib-jsmath==1.0.1
# via sphinx
sphinxcontrib-qthelp==2.0.0
# via sphinx
sphinxcontrib-serializinghtml==2.0.0
# via sphinx
sse-starlette==3.1.2
# via mcp
starlette==0.50.0
# via
# mcp
# sse-starlette
tomli==2.0.2
# via
# pytest
# semgrep
# sphinx
tomlkit==0.13.3
# via reuse
trio==0.32.0
# via
# selenium
# trio-websocket
trio-websocket==0.12.2
# via selenium
typer==0.21.0
# via rstcheck
typing-extensions==4.15.0
# via
# anyio
# cryptography
# mcp
# opentelemetry-api
# opentelemetry-exporter-otlp-proto-http
# opentelemetry-sdk
# opentelemetry-semantic-conventions
# pydantic
# pydantic-core
# pyright
# referencing
# selenium
# semgrep
# starlette
# typer
# typing-inspection
# uvicorn
# virtualenv
typing-inspection==0.4.2
# via
# mcp
# pydantic
# pydantic-settings
urllib3==2.6.2
# via
# requests
# selenium
# semgrep
uvicorn==0.40.0 ; sys_platform != 'emscripten'
# via mcp
virtualenv==20.35.4
# via pre-commit
wcmatch==8.5.2
# via semgrep
webdriver-manager==4.0.2
websocket-client==1.9.0
# via selenium
wrapt==1.17.3
# via opentelemetry-instrumentation
wsproto==1.3.2
# via trio-websocket
zipp==3.23.0
# via importlib-metadata

View File

@ -1,4 +0,0 @@
sphinx
sphinx_rtd_theme
reuse
setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability

3
docker-bin.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
/venv/bin/python3 -m glances "$@"

View File

@ -1,3 +0,0 @@
FROM nicolargo/glances:latest as glancesminimal
COPY glances.conf /glances/conf/glances.conf
CMD python -m glances -C /glances/conf/glances.conf $GLANCES_OPT

View File

@ -1,39 +0,0 @@
version: "3.9"
services:
reverse-proxy:
image: traefik
command: --api --docker
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
whoami:
image: emilevauge/whoami
labels:
- "traefik.frontend.rule=Host:whoami.docker.localhost"
monitoring:
image: nicolargo/glances:dev
restart: unless-stopped
pid: host
privileged: true
network_mode: "host"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro"
- "./glances.conf:/glances/conf/glances.conf"
environment:
- GLANCES_OPT: "-C /glances/conf/glances.conf -w"
- TZ: "${TZ}"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
labels:
- "traefik.port=61208"
- "traefik.frontend.rule=Host:glances.docker.localhost"

View File

@ -1,24 +1,55 @@
version: '3.9'
services:
glances:
build:
context: ./
dockerfile: Dockerfile
# See all images tags here: https://hub.docker.com/r/nicolargo/glances/tags
image: nicolargo/glances:latest-full
restart: always
pid: "host"
privileged: true
network_mode: "host"
read_only: true
privileged: false
# Uncomment next line for SATA or NVME smartctl monitoring
# cap_add:
# Uncomment next line for SATA smartctl monitoring
# - SYS_RAWIO
# Uncomment next line for NVME smartctl monitoring
# - SYS_ADMIN
# devices:
# - "/dev/nvme0"
volumes:
- "/:/rootfs:ro"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro"
- "./glances.conf:/glances/conf/glances.conf"
# Uncomment for proper distro information in upper panel.
# # Works only for distros that do have this file (most of distros do).
# - "/etc/os-release:/etc/os-release:ro"
tmpfs:
- /tmp
environment:
- GLANCES_OPT: "-C /glances/conf/glances.conf -w"
- TZ: "${TZ}"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
# Please set to your local timezone (or use local ${TZ} environment variable if set on your host)
- TZ=Europe/Paris
- GLANCES_OPT=-C /glances/conf/glances.conf -w --enable-plugin smart
- PYTHONPYCACHEPREFIX=/tmp/py_caches
# # Uncomment for GPU compatibility (Nvidia) inside the container
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: 1
# capabilities: [gpu]
# Uncomment to protect Glances WebUI by a login/password (add --password to GLANCES_OPT)
# secrets:
# - source: glances_password
# target: /root/.config/glances/<login>.pwd
# secrets:
# glances_password:
# file: ./secrets/glances_password

View File

@ -13,28 +13,75 @@ check_update=False
# Default is 1200 values (~1h with the default refresh rate)
history_size=1200
# Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z)
#strftime_format="%Y-%m-%d %H:%M:%S %Z"
#strftime_format=%Y-%m-%d %H:%M:%S %Z
# Define external directory for loading additional plugins
# The layout follows the glances standard for plugin definitions
#plugin_dir=/home/user/dev/plugins
##############################################################################
# User interface
##############################################################################
[outputs]
# Theme name for the Curses interface: black or white
curse_theme=black
# Limit the number of processes to display in the WebUI
max_processes_display=30
# Options for all UIs
#--------------------
# Separator in the Curses and WebUI interface (between top and others plugins)
#separator=True
# Set the the Curses and WebUI interface left menu plugin list (comma-separated)
#left_menu=network,wifi,connections,ports,diskio,fs,irq,folders,raid,smart,sensors,now
# Limit the number of processes to display (in the WebUI)
max_processes_display=25
#
# Specifics options for TUI
#--------------------------
# Disable background color
#disable_bg=True
#
# Specifics options for WebUI
#----------------------------
# Set URL prefix for the WebUI and the API
# Example: url_prefix=/glances/ => http://localhost/glances/
# Note: The final / is mandatory
# Default is no prefix (/)
#url_prefix=/glances/
# Set root path for WebUI statics files
# Why ? On Debian system, WebUI statics files are not provided.
# You can download it in a specific folder
# thanks to https://github.com/nicolargo/glances/issues/2021
# then configure this folder with the webui_root_path key
# Default is folder where glances_restful_api.py is hosted
#webui_root_path=
# CORS options
# Comma separated list of origins that should be permitted to make cross-origin requests.
# Default is *
#cors_origins=*
# Indicate that cookies should be supported for cross-origin requests.
# Default is True
#cors_credentials=True
# Comma separated list of HTTP methods that should be allowed for cross-origin requests.
# Default is *
#cors_methods=*
# Comma separated list of HTTP request headers that should be supported for cross-origin requests.
# Default is *
#cors_headers=*
# Define SSL files (keyfile_password is optional)
#ssl_keyfile_password=kfp
#ssl_keyfile=./glances.local+3-key.pem
#ssl_certfile=./glances.local+3.pem
##############################################################################
# plugins
# Plugins
##############################################################################
[quicklook]
# Set to true to disable a plugin
# Note: you can also disable it from the command line (see --disable-plugin <plugin_name>)
disable=False
# Graphical percentage char used in the terminal user interface (default is |)
percentage_char=|
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,load
# Graphical bar char used in the terminal user interface (default is |)
bar_char=|
# Define CPU, MEM and SWAP thresholds in %
cpu_careful=50
cpu_warning=70
@ -45,6 +92,11 @@ mem_critical=90
swap_careful=50
swap_warning=70
swap_critical=90
# Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
# With 1 CPU core, the load should be lower than 1.00 ~ 100%
load_careful=70
load_warning=100
load_critical=500
[system]
# This plugin display the first line in the Glances UI with:
@ -53,6 +105,9 @@ swap_critical=90
disable=False
# Default refresh rate is 60 seconds
#refresh=60
# System information to display (a string where {key} will be replaced by the value)
# Available information are: hostname, os_name, os_version, os_arch, linux_distro, platform
#system_info_msg= | My {os_name} system |
[cpu]
disable=False
@ -76,7 +131,7 @@ user_careful=50
user_warning=70
user_critical=90
user_log=False
#user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert
#user_critical_action=echo "{{time}} User CPU {{user}} higher than {{critical}}" > /tmp/cpu.alert
#
system_careful=50
system_warning=70
@ -89,13 +144,18 @@ steal_critical=90
#steal_log=True
#
# Context switch limit (core / second)
# Leave commented to just use the default config (critical is 50000*# (Logical CPU cores)
# Leave commented to just use the default config critical is 50000*(Logical CPU cores)
#ctx_switches_careful=10000
#ctx_switches_warning=12000
#ctx_switches_critical=14000
[percpu]
disable=False
# Define the maximum number of CPU displayed at a time
# If the number of CPU is higher than the one configured in max_cpu_display then:
# - display top 'max_cpu_display' (sorted by CPU consumption)
# - a last line will be added with the mean of all other CPUs
max_cpu_display=4
# Define CPU thresholds in %
# Default values if not defined: 50/70/90
user_careful=50
@ -118,15 +178,21 @@ proc_critical=90
mem_careful=50
mem_warning=70
mem_critical=90
# Temperature
temperature_careful=60
temperature_warning=70
temperature_critical=80
[mem]
disable=False
# Display available memory instead of used memory
#available=True
# Define RAM thresholds in %
# Default values if not defined: 50/70/90
careful=50
#careful_action_repeat=echo {{percent}} >> /tmp/memory.alert
warning=70
critical=90
#critical_action_repeat=echo "{{time}} {{percent}} higher than {{critical}}"" >> /tmp/memory.alert
[memswap]
disable=False
@ -135,6 +201,7 @@ disable=False
careful=50
warning=70
critical=90
#warning_action=echo "{{time}} {{percent}} higher than {{warning}}"" > /tmp/memory.alert
[load]
disable=False
@ -162,8 +229,15 @@ tx_critical=90
#hide=docker.*,lo
# Define the list of wireless network interfaces to be show (comma-separated)
#show=docker.*
# WLAN 0 alias
#wlan0_alias=Wireless
# Automatically hide interface not up (default is False)
hide_no_up=True
# Automatically hide interface with no IP address (default is False)
hide_no_ip=True
# Set hide_zero to True to automatically hide interface with no traffic
hide_zero=False
# Set hide_threshold_bytes to an integer value to automatically hide
# interface with traffic less or equal than this value
#hide_threshold_bytes=0
# It is possible to overwrite the bitrate thresholds per interface
# WLAN 0 Default limits (in bits per second aka bps) for interface bitrate
#wlan0_rx_careful=4000000
@ -174,24 +248,38 @@ tx_critical=90
#wlan0_tx_warning=900000
#wlan0_tx_critical=1000000
#wlan0_tx_log=True
#wlan0_rx_critical_action=echo "{{time}} {{interface_name}} RX {{bytes_recv_rate_per_sec}}Bps" > /tmp/network.alert
# Alias for network interface name
#alias=wlp0s20f3:WIFI
[ip]
# Disable display of private IP address
disable=False
# Configure the online service where public IP address information will be downloaded
# - public_disabled: Disable public IP address information (set to True for offline platform)
# - public_refresh_interval: Refresh interval between to calls to the online service
# - public_api: URL of the API (the API should return an JSON object)
# - public_username: Login for the online service (if needed)
# - public_password: Password for the online service (if needed)
# - public_field: Field name of the public IP address in onlibe service JSON message
# - public_template: Template to build the public message
#
# Example for IPLeak service:
# public_api=https://ipv4.ipleak.net/json/
# public_field=ip
# public_template={ip} {continent_name}/{country_name}/{city_name}
#
public_disabled=True
public_refresh_interval=300
public_ip_disabled=False
# Configuration for the Censys online service
# Need to create an aacount: https://censys.io/login
censys_url=https://search.censys.io/api
# Get your own credential here: https://search.censys.io/account/api
# Enter your credential and uncomment the following lines
#censys_username=<censys_api_id>
#censys_password=<censys_secret>
# List of fields to be displayed in user interface (comma separated)
censys_fields=location:continent,location:country,autonomous_system:name
public_api=https://ipv4.ipleak.net/json/
#public_username=<myname>
#public_password=<mysecret>
public_field=ip
public_template={continent_name}/{country_name}/{city_name}
[connections]
# Display additional information about TCP connections
# This plugin is disabled by default
# This plugin is disabled by default because it consumes lots of CPU
disable=True
# nf_conntrack thresholds in %
nf_conntrack_percent_careful=70
@ -199,12 +287,8 @@ nf_conntrack_percent_warning=80
nf_conntrack_percent_critical=90
[wifi]
disable=True
# Define the list of hidden wireless network interfaces (comma-separated regexp)
hide=lo,docker.*
# Define the list of wireless network interfaces to be show (comma-separated)
#show=docker.*
# Define SIGNAL thresholds in db (lower is better...)
disable=False
# Define SIGNAL thresholds in dBm (lower is better...)
# Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength
careful=-65
warning=-75
@ -215,26 +299,63 @@ disable=False
# Define the list of hidden disks (comma-separated regexp)
#hide=sda2,sda5,loop.*
hide=loop.*,/dev/loop.*
# Set hide_zero to True to automatically hide disk with no read/write
hide_zero=False
# Set hide_threshold_bytes to an integer value to automatically hide
# interface with traffic less or equal than this value
#hide_threshold_bytes=0
# Define the list of disks to be show (comma-separated)
#show=sda.*
# Alias for sda1
#sda1_alias=InternalDisk
# Alias for sda1 and sdb1
#alias=sda1:SystemDisk,sdb1:DataDisk
# Default latency thresholds (in ms) (rx = read / tx = write)
rx_latency_careful=10
rx_latency_warning=20
rx_latency_critical=50
tx_latency_careful=10
tx_latency_warning=20
tx_latency_critical=50
# Set latency thresholds (latency in ms) for a given disk name (rx = read / tx = write)
# dm-0_rx_latency_careful=10
# dm-0_rx_latency_warning=20
# dm-0_rx_latency_critical=50
# dm-0_rx_latency_log=False
# dm-0_tx_latency_careful=10
# dm-0_tx_latency_warning=20
# dm-0_tx_latency_critical=50
# dm-0_tx_latency_log=False
# There is no default bitrate thresholds for disk (because it is not possible to know the disk speed)
# Set bitrate thresholds (in bytes per second) for a given disk name (rx = read / tx = write)
#dm-0_rx_careful=4000000000
#dm-0_rx_warning=5000000000
#dm-0_rx_critical=6000000000
#dm-0_rx_log=False
#dm-0_tx_careful=700000000
#dm-0_tx_warning=900000000
#dm-0_tx_critical=1000000000
#dm-0_tx_log=False
[fs]
disable=False
# Define the list of file system to hide (comma-separated regexp)
hide=/boot.*,/snap.*
hide=/boot.*,.*/snap.*
# Define the list of file system to show (comma-separated regexp)
#show=/,/srv
# Define filesystem space thresholds in %
# Default values if not defined: 50/70/90
# It is also possible to define per mount point value
# Example: /_careful=40
careful=50
warning=70
critical=90
# It is also possible to define per mount point value
# Example: /_careful=40
#/_careful=1
#/_warning=5
#/_critical=10
#/_critical_action=echo "{{time}} {{mnt_point}} filesystem space {{percent}}% higher than {{critical}}%" > /tmp/fs.alert
# Allow additional file system types (comma-separated FS type)
#allow=shm
# Alias for root file system
#alias=/:Root,/zsfpool:ZSF
[irq]
# Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html
@ -277,6 +398,12 @@ disable=True
# Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html
# This plugin is disabled by default
disable=True
# Define the list of sensors to hide (comma-separated regexp)
#hide=.*Hide_this_driver.*
# Define the list of sensors to show (comma-separated regexp)
#show=.*Drive_Temperature.*
# List of attributes to hide (comma separated)
#hide_attributes=Self-tests,Errors
[hddtemp]
disable=False
@ -287,32 +414,39 @@ port=7634
[sensors]
# Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html
disable=False
# By default refresh every refresh time * 2
#refresh=6
# Hide some sensors
#hide=ambient
# Set the refresh multiplicator for the sensors
# By default refresh every Glances refresh * 5 (increase to reduce CPU consumption)
#refresh=5
# Hide some sensors (comma separated list of regexp)
hide=unknown.*
# Show only the following sensors (comma separated list of regexp)
#show=CPU.*
# Sensors core thresholds (in Celsius...)
# Default values are grabbed from the system
#temperature_core_careful=60
#temperature_core_warning=70
# By default values are grabbed from the system
# Overwrite thresholds for a specific sensor
# temperature_core_Ambient_careful=40
# temperature_core_Ambient_warning=60
# temperature_core_Ambient_critical=85
# temperature_core_Ambient_log=True
# temperature_core_Ambient_critical_action=echo "{{time}} {{label}} temperature {{value}}{{unit}} higher than {{critical}}{{unit}}" > /tmp/temperature.alert
# Overwrite thresholds for a specific type of sensor
#temperature_core_careful=45
#temperature_core_warning=65
#temperature_core_critical=80
# Temperatures threshold in °C for hddtemp
# Default values if not defined: 45/52/60
temperature_hdd_careful=45
temperature_hdd_warning=52
temperature_hdd_critical=60
#temperature_hdd_careful=45
#temperature_hdd_warning=52
#temperature_hdd_critical=60
# Battery threshold in %
battery_careful=80
battery_warning=90
battery_critical=95
# Default values if not defined: 70/80/90
#battery_careful=70
#battery_warning=80
#battery_critical=90
# Fan speed threshold in RPM
#fan_speed_careful=100
# Sensors alias
#temp1_alias=Motherboard 0
#temp2_alias=Motherboard 1
#core 0_temperature_core_alias=CPU Core 0 temp
#core 0_fans_speed_alias=CPU Core 0 fan
#or
#core 0_alias=CPU Core 0
#core 1_alias=CPU Core 1
#alias=core 0:CPU Core 0,core 1:CPU Core 1
[processcount]
disable=False
@ -325,6 +459,12 @@ disable=False
# Should be one of the following:
# cpu_percent, memory_percent, io_counters, name, cpu_times, username
#sort_key=memory_percent
# List of stats to disable (not grabed and not display)
# Stats that can be disabled: cpu_percent,memory_info,memory_percent,username,cpu_times,num_threads,nice,status,io_counters,cmdline
# Stats that can not be disable: pid,name
#disable_stats=cpu_percent,memory_info,memory_percent,username,cpu_times,num_threads,nice,status,io_counters,cmdline
# Disable display of virtual memory
#disable_virtual_memory=True
# Define CPU/MEM (per process) thresholds in %
# Default values if not defined: 50/70/90
cpu_careful=50
@ -335,15 +475,26 @@ mem_warning=70
mem_critical=90
#
# Nice priorities range from -20 to 19.
# Configure nice levels using a comma separated list.
# Configure nice levels using a comma-separated list.
#
# Nice: Example 1, non-zero is warning (default behavior)
nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
#
# Nice: Example 2, low priority processes escalate from careful to critical
#nice_ok=O
#nice_careful=1,2,3,4,5,6,7,8,9
#nice_warning=10,11,12,13,14
#nice_critical=15,16,17,18,19
#
# Status: define threshold regarding the process status (first letter of process status)
# R: Running, S: Sleeping, Z: Zombie (complete list here https://psutil.readthedocs.io/en/latest/#process-status-constants)
status_ok=R,W,P,I
status_critical=Z,D
# Define the list of processes to export using:
# a comma-separated list of Glances filter
#export=.*firefox.*,pid:1234
# Define a list of process to focus on (comma-separated list of Glances filter)
#focus=.*firefox.*,.*python.*
[ports]
disable=False
@ -353,7 +504,7 @@ refresh=30
# Set the default timeout (in second) for a scan (can be overwritten in the scan list)
timeout=3
# If port_default_gateway is True, add the default gateway on top of the scan list
port_default_gateway=True
port_default_gateway=False
#
# Define the scan list (1 < x < 255)
# port_x_host (name or IP) is mandatory
@ -391,54 +542,87 @@ port_default_gateway=True
#web_4_url=https://blog.nicolargo.com/nonexist
#web_4_description=Intranet
[vms]
disable=True
# Define the maximum VMs size name (default is 20 chars)
max_name_size=20
# By default, Glances only display running VMs with states:
# 'Running', 'Paused', 'Starting' or 'Restarting'
# Set the following key to True to display all VMs regarding their states
all=False
[containers]
disable=False
# Only show specific containers (comma separated list of container name or regular expression)
# Only show specific containers (comma-separated list of container name or regular expression)
# Comment this line to display all containers (default configuration)
#show=telegraf
# Hide some containers (comma separated list of container name or regular expression)
; show=telegraf
# Hide some containers (comma-separated list of container name or regular expression)
# Comment this line to display all containers (default configuration)
#hide=telegraf
; hide=telegraf
# Define the maximum docker size name (default is 20 chars)
max_name_size=20
#cpu_careful=50
# List of stats to disable (not display)
# Following stats can be disabled: name,status,uptime,cpu,mem,diskio,networkio,ports,command
disable_stats=command
# Thresholds for CPU and MEM (in %)
#cpu_warning=70
#cpu_critical=90
#mem_careful=20
#mem_warning=50
#mem_critical=70
; cpu_careful=50
; cpu_warning=70
; cpu_critical=90
; mem_careful=20
; mem_warning=50
; mem_critical=70
#
# Per container thresholds
#containername_cpu_careful=10
#containername_cpu_warning=20
#containername_cpu_critical=30
; containername_cpu_careful=10
; containername_cpu_warning=20
; containername_cpu_critical=30
#
# By default, Glances only display running containers
# Set the following key to True to display all containers
all=False
# Define Podman sock
#podman_sock=unix:///run/user/1000/podman/podman.sock
; podman_sock=unix:///run/user/1000/podman/podman.sock
[amps]
# AMPs configuration are defined in the bottom of this file
disable=False
[alert]
disable=False
# Maximum number of events to display (default is 10 events)
;max_events=10
# Minimum duration for an event to be taken into account (default is 6 seconds)
;min_duration=6
# Minimum time between two events of the same type (default is 6 seconds)
# This is used to avoid too many alerts for the same event
# Events will be merged
;min_interval=6
##############################################################################
# Client/server
# Browser mode - Static servers definition
##############################################################################
[serverlist]
# Define columns (comma separated list of <plugin>:<field>:(<key>)) to grab/display
# Default is: system:hr_name,load:min5,cpu:total,mem:percent
# You can also add stats with key, like sensors:value:Ambient (key is case sensitive)
#columns=system:hr_name,load:min5,cpu:total,mem:percent,memswap:percent,sensors:value:Ambient,sensors:value:Composite
# Define the static servers list
# _protocol can be: rpc (default if not defined) or rest
# List is limited to 256 servers max (1 to 256)
#server_1_name=localhost
#server_1_alias=My local PC
#server_1_port=61209
#server_1_alias=Local WebUI
#server_1_port=61266
#server_1_protocol=rest
#server_2_name=localhost
#server_2_port=61235
#server_2_alias=My local PC
#server_2_port=61209
#server_2_protocol=rpc
#server_3_name=192.168.0.17
#server_3_alias=Another PC on my network
#server_3_port=61209
#server_4_name=pasbon
#server_1_protocol=rpc
#server_4_name=notagooddefinition
#server_4_port=61237
[passwords]
@ -457,15 +641,20 @@ disable=False
# Exports
##############################################################################
[export]
# Common section for all exporters
# Do not export following fields (comma separated list of regex)
#exclude_fields=.*_critical,.*_careful,.*_warning,.*\.key$
[graph]
# Configuration for the --export graph option
# Set the path where the graph (.svg files) will be created
# Can be overwrite by the --graph-path command line option
path=/tmp
path=/tmp/glances
# It is possible to generate the graphs automatically by setting the
# generate_every to a non zero value corresponding to the seconds between
# two generation. Set it to 0 to disable graph auto generation.
generate_every=60
generate_every=0
# See following configuration keys definitions in the Pygal lib documentation
# http://pygal.org/en/stable/documentation/index.html
width=800
@ -475,7 +664,7 @@ style=DarkStyle
[influxdb]
# !!!
# Will be DEPRECATED in future release.
# Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x)
# Please have a look on the new influxdb3 export module
# !!!
# Configuration for the --export influxdb option
# https://influxdb.com/
@ -493,7 +682,7 @@ db=glances
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname is always added as a tag
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[influxdb2]
@ -504,7 +693,7 @@ port=8086
protocol=http
org=nicolargo
bucket=glances
token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA==
token=PUT_YOUR_INFLUXDB2_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
@ -516,7 +705,28 @@ token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kA
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname is always added as a tag
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[influxdb3]
# Configuration for the --export influxdb3 option
# https://influxdb.com/
host=http://localhost:8181
org=nicolargo
database=glances
token=PUT_YOUR_INFLUXDB3_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
# Prefix will be added for all measurement name
# Ex: prefix=foo
# => foo.cpu
# => foo.mem
# You can also use dynamic values
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
[cassandra]
@ -576,12 +786,15 @@ queue=glances_queue
[mqtt]
# Configuration for the --export mqtt option
host=localhost
# Overwrite device name in the topic
#devicename=localhost
port=8883
tls=false
user=guest
password=guest
topic=glances
topic_structure=per-metric
callback_api_version=2
[couchdb]
# Configuration for the --export couchdb option
@ -589,10 +802,8 @@ topic_structure=per-metric
host=localhost
port=5984
db=glances
# user and password are optional (comment if not configured on the server side)
# If they are used, then the https protocol will be used
#user=root
#password=root
user=admin
password=admin
[mongodb]
# Configuration for the --export mongodb option
@ -669,6 +880,26 @@ prefix=glances
# By default, system_name = FQDN
#system_name=mycomputer
[timescaledb]
# Configuration for the --export timescaledb option
# https://www.timescale.com/
host=localhost
port=5432
db=glances
user=postgres
password=password
# Overwrite device name (default is the FQDN)
# Most of the time, you should not overwrite this value
#hostname=mycomputer
[nats]
# Configuration for the --export nats option
# https://nats.io/
# Host is a separated list of NATS nodes
host=nats://localhost:4222
# Prefix for the subjects (default is 'glances')
prefix=glances
##############################################################################
# AMPS
# * enable: Enable (true) or disable (false) the AMP
@ -704,13 +935,13 @@ refresh=3
countmax=20
[amp_conntrack]
# Use comma separated for multiple commands (no space around the comma)
# Use && separator for multiple commands
# If the regex key is not defined, the AMP will be executed every refresh second
# and the process count will not be displayed (countmin and countmax will be ignore)
enable=false
refresh=30
one_line=false
command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max
command=sysctl net.netfilter.nf_conntrack_count && sysctl net.netfilter.nf_conntrack_max
[amp_nginx]
# Use the NGinx AMP

View File

@ -4,17 +4,23 @@
# https://github.com/nicolargo/glances
#
# WARNING: the versions should be set.
# Ex: Python 3.11 for Alpine 3.18
# Note: ENV is for future running containers. ARG for building your Docker image.
ARG IMAGE_VERSION=3.18.0
ARG PYTHON_VERSION=3.11
# WARNING: the Alpine image version and Python version should be set.
# Alpine 3.18 tag is a link to the latest 3.18.x version.
# Be aware that if you change the Alpine version, you may have to change the Python version.
ARG IMAGE_VERSION=3.23
ARG PYTHON_VERSION=3.12
##############################################################################
# Base layer to be used for building dependencies and the release images
FROM alpine:${IMAGE_VERSION} as base
FROM alpine:${IMAGE_VERSION} AS base
# Upgrade the system
RUN apk update \
&& apk upgrade --no-cache
# Install the minimal set of packages
RUN apk add --no-cache \
python3 \
curl \
@ -28,7 +34,7 @@ RUN apk add --no-cache \
# BUILD Stages
##############################################################################
# BUILD: Base image shared by all build images
FROM base as build
FROM base AS build
ARG PYTHON_VERSION
RUN apk add --no-cache \
@ -48,69 +54,96 @@ RUN apk add --no-cache \
cargo \
pkgconfig \
libffi-dev \
openssl-dev
openssl-dev \
cmake
# for cmake: Issue: https://github.com/nicolargo/glances/issues/2735
RUN python${PYTHON_VERSION} -m venv venv-build
RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --upgrade pip
RUN python${PYTHON_VERSION} -m venv --without-pip venv
COPY requirements.txt docker-requirements.txt webui-requirements.txt optional-requirements.txt ./
COPY pyproject.toml docker-requirements.txt all-requirements.txt ./
##############################################################################
# BUILD: Install the minimal image deps
FROM build as buildMinimal
FROM build AS buildminimal
ARG PYTHON_VERSION
RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
# Note: requirements.txt is include by dep
-r docker-requirements.txt \
-r webui-requirements.txt
RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
-r docker-requirements.txt
##############################################################################
# BUILD: Install all the deps
FROM build as buildFull
FROM build AS buildfull
ARG PYTHON_VERSION
# Required for optional dependency cassandra-driver
ARG CASS_DRIVER_NO_CYTHON=1
# See issue 2368
ARG CARGO_NET_GIT_FETCH_WITH_CLI=true
RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
# Note: requirements.txt is include by dep
-r optional-requirements.txt
RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
-r all-requirements.txt
##############################################################################
# RELEASE Stages
##############################################################################
# Base image shared by all releases
FROM base as release
FROM base AS release
ARG PYTHON_VERSION
# Copy source code and config file
COPY ./docker-compose/glances.conf /etc/glances.conf
COPY /glances /app/glances
COPY ./docker-compose/glances.conf /etc/glances/glances.conf
COPY ./glances/. /app/glances/
# Copy binary and update PATH
COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208
# Add glances user
# RUN addgroup -g 1000 glances && \
# adduser -D -u 1000 -G glances glances && \
# chown -R glances:glances /app
# Define default command.
WORKDIR /app
CMD /venv/bin/python3 -m glances -C /etc/glances.conf $GLANCES_OPT
ENV PYTHON_VERSION=${PYTHON_VERSION}
CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"]
################################################################################
# RELEASE: minimal
FROM release as minimal
FROM release AS minimal
COPY --from=buildMinimal /venv /venv
COPY --from=buildminimal /venv /venv
# USER glances
################################################################################
# RELEASE: full
FROM release as full
FROM release AS full
RUN apk add --no-cache libzmq
COPY --from=buildFull /venv /venv
COPY --from=buildfull /venv /venv
# USER glances
################################################################################
# RELEASE: dev - to be compatible with CI
FROM full as dev
FROM full AS dev
# Forward access and error logs to Docker's log collector
RUN ln -sf /dev/stdout /tmp/glances-root.log \
&& ln -sf /dev/stderr /var/log/error.log \
# Add the specific logger configuration file for Docker dev
# All logs will be forwarded to stdout
COPY ./docker-files/docker-logger.json /app
ENV LOG_CFG=/app/docker-logger.json
# USER glances
WORKDIR /app
ENV PYTHON_VERSION=${PYTHON_VERSION}
CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"]

View File

@ -0,0 +1,24 @@
{
"version": 1,
"disable_existing_loggers": "False",
"root": { "level": "INFO", "handlers": ["console"] },
"formatters": {
"standard": { "format": "%(asctime)s -- %(levelname)s -- %(message)s" },
"short": { "format": "%(levelname)s -- %(message)s" },
"long": {
"format": "%(asctime)s -- %(levelname)s -- %(message)s (%(funcName)s in %(filename)s)"
},
"free": { "format": "%(message)s" }
},
"handlers": {
"console": { "class": "logging.StreamHandler", "formatter": "standard" }
},
"loggers": {
"debug": { "handlers": ["console"], "level": "DEBUG" },
"verbose": { "handlers": ["console"], "level": "INFO" },
"standard": { "handlers": ["console"], "level": "INFO" },
"requests": { "handlers": ["console"], "level": "ERROR" },
"elasticsearch": { "handlers": ["console"], "level": "ERROR" },
"elasticsearch.trace": { "handlers": ["console"], "level": "ERROR" }
}
}

View File

@ -5,15 +5,15 @@
#
# WARNING: the versions should be set.
# Ex: Python 3.10 for Ubuntu 22.04
# Ex: Python 3.12 for Ubuntu 24.04
# Note: ENV is for future running containers. ARG for building your Docker image.
ARG IMAGE_VERSION=23.04
ARG PYTHON_VERSION=3.11
ARG IMAGE_VERSION=24.04
ARG PYTHON_VERSION=3.12
##############################################################################
# Base layer to be used for building dependencies and the release images
FROM ubuntu:${IMAGE_VERSION} as base
FROM ubuntu:${IMAGE_VERSION} AS base
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
@ -32,82 +32,114 @@ RUN apt-get update \
# BUILD Stages
##############################################################################
# BUILD: Base image shared by all build images
FROM base as build
FROM base AS build
ARG PYTHON_VERSION
ARG DEBIAN_FRONTEND=noninteractive
# Install build-time dependencies
# Upgrade the system
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
&& apt-get upgrade -y
# Install build-time dependencies
RUN apt-get install -y --no-install-recommends \
python3-dev \
python3-venv \
python3-pip \
python3-wheel \
libzmq5 \
musl-dev \
build-essential \
&& apt-get clean \
build-essential
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN python${PYTHON_VERSION} -m venv --without-pip venv
RUN python3 -m venv --without-pip venv
COPY requirements.txt docker-requirements.txt webui-requirements.txt optional-requirements.txt ./
COPY pyproject.toml docker-requirements.txt all-requirements.txt ./
##############################################################################
# BUILD: Install the minimal image deps
FROM build as buildMinimal
FROM build AS buildminimal
ARG PYTHON_VERSION
RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
# Note: requirements.txt is include by dep
-r docker-requirements.txt \
-r webui-requirements.txt
RUN python3 -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
-r docker-requirements.txt
##############################################################################
# BUILD: Install all the deps
FROM build as buildFull
FROM build AS buildfull
ARG PYTHON_VERSION
RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
# Note: requirements.txt is include by dep
-r optional-requirements.txt
RUN python3 -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \
-r all-requirements.txt
##############################################################################
# RELEASE Stages
##############################################################################
# Base image shared by all releases
FROM base as release
FROM base AS release
ARG PYTHON_VERSION
# Copy Glances source code and config file
COPY ./docker-compose/glances.conf /etc/glances.conf
COPY /glances /app/glances
COPY ./docker-compose/glances.conf /etc/glances/glances.conf
COPY ./glances/. /app/glances/
# Copy binary and update PATH
COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208
# Add glances user
# NOTE: If used, the Glances Docker plugin do not work...
# UID and GUID 1000 are already configured for the ubuntu user
# Create anew one with UID and GUID 1001
# RUN groupadd -g 1001 glances && \
# useradd -u 1001 -g glances glances && \
# chown -R glances:glances /app
# Define default command.
WORKDIR /app
CMD /venv/bin/python3 -m glances -C /etc/glances.conf $GLANCES_OPT
ENV PYTHON_VERSION=${PYTHON_VERSION}
CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"]
################################################################################
# RELEASE: minimal
FROM release as minimal
FROM release AS minimal
ARG PYTHON_VERSION
COPY --from=buildMinimal /venv /venv
# USER glances
################################################################################
# RELEASE: full
FROM release as full
FROM release AS full
ARG PYTHON_VERSION
RUN apt-get update \
&& apt-get install -y --no-install-recommends libzmq5 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=buildFull /venv /venv
COPY --from=buildfull /venv /venv
# USER glances
################################################################################
# RELEASE: dev - to be compatible with CI
FROM full as dev
FROM full AS dev
ARG PYTHON_VERSION
# Forward access and error logs to Docker's log collector
RUN ln -sf /dev/stdout /tmp/glances-root.log \
&& ln -sf /dev/stderr /var/log/error.log
# Add the specific logger configuration file for Docker dev
# All logs will be forwarded to stdout
COPY ./docker-files/docker-logger.json /app
ENV LOG_CFG=/app/docker-logger.json
# USER glances
WORKDIR /app
ENV PYTHON_VERSION=${PYTHON_VERSION}
CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"]

View File

@ -1,10 +1,83 @@
# install with base requirements file
-r requirements.txt
docker>=6.1.1; python_version >= "3.7"
podman; python_version >= "3.6"
packaging; python_version >= "3.7"
python-dateutil
six
urllib3<2.0 # See issue https://github.com/nicolargo/glances/issues/2392
requests # See issue - https://github.com/nicolargo/glances/issues/2233
# This file was autogenerated by uv via the following command:
# uv export --no-emit-workspace --no-hashes --no-group dev --extra containers --extra web --output-file docker-requirements.txt
annotated-doc==0.0.4
# via fastapi
annotated-types==0.7.0
# via pydantic
anyio==4.12.0
# via starlette
certifi==2025.11.12
# via requests
charset-normalizer==3.4.4
# via requests
click==8.1.8
# via uvicorn
colorama==0.4.6 ; sys_platform == 'win32'
# via click
defusedxml==0.7.1
# via glances
docker==7.1.0
# via glances
exceptiongroup==1.2.2 ; python_full_version < '3.11'
# via anyio
fastapi==0.128.0
# via glances
h11==0.16.0
# via uvicorn
idna==3.11
# via
# anyio
# requests
jinja2==3.1.6
# via glances
markupsafe==3.0.3
# via jinja2
packaging==25.0
# via glances
podman==5.6.0
# via glances
psutil==7.2.1
# via glances
pydantic==2.12.5
# via fastapi
pydantic-core==2.41.5
# via pydantic
python-dateutil==2.9.0.post0
# via glances
pywin32==311 ; sys_platform == 'win32'
# via docker
requests==2.32.5
# via
# docker
# glances
# podman
shtab==1.8.0 ; sys_platform != 'win32'
# via glances
six==1.17.0
# via
# glances
# python-dateutil
starlette==0.50.0
# via fastapi
tomli==2.0.2 ; python_full_version < '3.11'
# via podman
typing-extensions==4.15.0
# via
# anyio
# fastapi
# pydantic
# pydantic-core
# starlette
# typing-inspection
# uvicorn
typing-inspection==0.4.2
# via pydantic
urllib3==2.6.2
# via
# docker
# podman
# requests
uvicorn==0.40.0
# via glances
windows-curses==2.4.1 ; sys_platform == 'win32'
# via glances

View File

@ -3,7 +3,7 @@
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = ../venv/bin/sphinx-build
SPHINXBUILD = ../.venv/bin/sphinx-build
PAPER =
BUILDDIR = _build

8
docs/_static/Glances Logo dark.svg vendored Normal file
View File

@ -0,0 +1,8 @@
<svg width="466" height="513" viewBox="0 0 466 513" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M255.158 74.6719C210.447 74.6719 169.577 90.8033 137.94 117.597L101.314 74.351C142.801 39.2144 196.539 18 255.158 18C313.777 18 367.514 39.2144 409.002 74.351L372.375 117.597C340.739 90.8033 299.869 74.6719 255.158 74.6719Z" fill="#57CB6A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M69.724 269.786C78.8585 239.798 93.6848 213.11 114.202 189.72C109.215 190.339 104.374 191.744 99.6848 193.934C99.4507 193.778 99.2179 193.622 98.9852 193.466C98.7524 193.31 98.5197 193.153 98.2856 192.997C115.671 167.026 137.51 145.644 163.821 128.851C148.064 102.5 139.949 73.9389 139.475 43.1663C175.368 48.9377 205.645 65.0133 230.302 91.3932C274.053 98.9935 313.69 115.849 349.218 141.961C357.984 148.228 364.694 156.188 369.349 165.841C371.421 173.282 373.29 180.773 374.963 188.315C378.06 195.163 382.598 200.939 388.553 205.639C396.216 212.36 404.635 217.979 413.827 222.496C425.428 226.146 437.299 228.487 449.419 229.519C450.036 238.808 447.687 247.236 442.388 254.803C422.562 269.701 400.243 275.475 375.436 272.127C354.959 268.606 334.526 265.016 314.115 261.358C298.373 261.798 289.313 269.913 286.953 285.706C285.479 298.85 288.291 311.024 295.383 322.227C298.898 327.698 302.636 333.004 306.612 338.146C317.576 350.517 329.288 362.067 341.732 372.795C335.351 374.599 328.801 375.692 322.073 376.072C329.039 380.163 337.274 385.383 345.878 390.837C360.519 400.118 376.227 410.074 388.553 416.286C337.769 445.709 282.887 477.418 169.436 434.6C120.749 416.226 83.0894 382.995 69.724 348.786C58.1736 319.223 60.5895 299.774 69.724 269.786ZM293.571 177.683C316.621 190.99 343.292 187.948 343.292 187.948C343.292 187.948 333.852 161.145 310.802 147.837C287.753 134.529 259.821 139.756 259.821 139.756C259.821 139.756 270.521 164.375 293.571 177.683Z" fill="#494949"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M296.872 356.751C291.496 356.475 286.193 356.007 280.958 355.347C300.379 370.178 315.357 388.594 325.89 410.591C321.407 409.082 316.726 407.989 311.849 407.314C315.577 416.3 319.321 425.351 323.082 434.468C261.493 452.42 204.235 443.369 151.309 407.314C150.685 402.008 150.685 396.702 151.309 391.396C152.52 380.056 154.079 368.82 155.99 357.688C146.778 368.801 139.913 381.286 135.396 395.141C133.367 393.112 131.34 391.084 129.311 389.055C131.985 368.86 138.225 349.821 148.033 331.938C145.902 332.304 143.718 332.304 141.48 331.938C142.614 332.774 142.614 333.554 141.48 334.279C137.084 337.409 132.716 340.53 128.375 343.643C140.699 316.793 158.484 294.164 181.732 275.758C188.213 271.424 195.078 267.834 202.326 264.99C204.288 277.522 207.565 289.694 212.155 301.507C212.731 303.02 213.667 304.268 214.964 305.252C224.041 288.216 235.118 272.61 248.195 258.435C247.883 258.123 247.57 257.811 247.259 257.499C236.51 263.412 226.992 270.903 218.708 279.971C214.966 269.684 212.781 259.072 212.155 248.135C211.792 247.267 211.168 246.642 210.283 246.263C195.64 251.401 181.911 258.268 169.095 266.862C174.297 249.902 182.254 234.297 192.965 220.045C191.167 218.977 189.295 218.82 187.349 219.577C181.431 221.394 175.503 223.112 169.563 224.727C169.563 224.415 169.563 224.102 169.563 223.791C186.845 203.591 208.688 191.107 235.089 186.337C228.102 183.226 220.925 180.573 213.559 178.378C232.751 178.16 251.16 181.905 268.789 189.614C293.076 201.759 316.79 214.868 339.932 228.94C364.586 243.299 391.108 249.229 419.5 246.731C424.816 244.085 429.496 244.865 433.541 249.072C417.681 261.779 399.582 266.617 379.248 263.585C362.612 260.632 346.075 257.198 329.635 253.285C289.901 244.644 271.023 260.717 273.001 301.507C274.036 311.264 276.532 320.627 280.49 329.597C285.501 339.011 290.961 348.063 296.872 356.751Z" fill="#656565"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M196.71 87.0847C188.449 82.7977 180.024 78.7402 171.436 74.9123C171.124 75.2244 170.811 75.5365 170.5 75.8486C174.6 82.3323 178.344 89.0428 181.733 95.98C178.363 95.004 175.243 93.2874 172.372 90.8301C172.06 91.1422 171.747 91.4544 171.436 91.7665C172.803 97.9843 174.052 104.227 175.18 110.493C164.477 95.9365 157.3 79.7065 153.65 61.8035C170.36 66.374 184.714 74.8011 196.71 87.0847Z" fill="#656565"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M137.94 117.597C98.5802 150.932 73.6684 200.623 73.6684 256.161C73.6684 356.395 154.924 437.65 255.158 437.65C292.62 437.65 327.376 426.327 356.267 406.904V308.015H412.939V435.092L402.098 443.601C361.629 475.365 310.568 494.322 255.158 494.322C123.625 494.322 16.9966 387.694 16.9966 256.161C16.9966 183.263 49.7834 117.993 101.314 74.3508L137.94 117.597Z" fill="#57CB6A"/>
<path d="M298.832 173.943V157.86C298.411 158.251 297.894 158.641 297.28 159.032C296.682 159.407 296.052 159.765 295.389 160.106C294.726 160.432 294.071 160.733 293.425 161.01C292.778 161.27 292.213 161.474 291.728 161.62V156.81C292.277 156.582 292.908 156.24 293.619 155.785C294.346 155.329 295.049 154.849 295.728 154.344C296.407 153.823 297.021 153.326 297.571 152.854C298.12 152.382 298.492 152.016 298.686 151.756H303.899V173.943H298.832Z" fill="#57CB6A"/>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

8
docs/_static/Glances Logo.svg vendored Normal file
View File

@ -0,0 +1,8 @@
<svg width="466" height="513" viewBox="0 0 466 513" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M254.919 74.6719C210.209 74.6719 169.338 90.8033 137.702 117.597L101.076 74.351C142.563 39.2144 196.3 18 254.919 18C313.539 18 367.276 39.2144 408.763 74.351L372.137 117.597C340.501 90.8033 299.63 74.6719 254.919 74.6719Z" fill="#57CB6A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M69.4858 269.786C78.6202 239.798 93.4465 213.11 113.963 189.72C108.977 190.339 104.136 191.744 99.4465 193.934C99.2124 193.778 98.9797 193.622 98.7469 193.466C98.5141 193.31 98.2814 193.153 98.0473 192.997C115.432 167.026 137.272 145.644 163.583 128.851C147.826 102.5 139.711 73.9389 139.237 43.1663C175.13 48.9377 205.406 65.0133 230.063 91.3932C273.815 98.9935 313.452 115.849 348.979 141.961C357.746 148.228 364.456 156.188 369.111 165.841C371.183 173.282 373.052 180.773 374.725 188.315C377.822 195.163 382.36 200.939 388.315 205.639C395.978 212.36 404.397 217.979 413.588 222.496C425.19 226.146 437.061 228.487 449.181 229.519C449.798 238.808 447.449 247.236 442.15 254.803C422.323 269.701 400.004 275.475 375.197 272.127C354.721 268.606 334.288 265.016 313.877 261.358C298.135 261.798 289.075 269.913 286.714 285.706C285.24 298.85 288.053 311.024 295.145 322.227C298.66 327.698 302.398 333.004 306.373 338.146C317.338 350.517 329.049 362.067 341.494 372.795C335.112 374.599 328.562 375.692 321.835 376.072C328.8 380.163 337.036 385.383 345.639 390.837C360.281 400.118 375.988 410.074 388.315 416.286C337.531 445.709 282.649 477.418 169.198 434.6C120.511 416.226 82.8511 382.995 69.4857 348.786C57.9354 319.223 60.3512 299.774 69.4858 269.786ZM293.333 177.683C316.383 190.99 343.053 187.948 343.053 187.948C343.053 187.948 333.614 161.145 310.564 147.837C287.514 134.529 259.583 139.756 259.583 139.756C259.583 139.756 270.283 164.375 293.333 177.683Z" fill="#EBEBEB"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M296.633 356.751C291.258 356.475 285.954 356.007 280.72 355.347C300.141 370.178 315.118 388.594 325.652 410.591C321.168 409.082 316.488 407.989 311.611 407.314C315.338 416.3 319.083 425.351 322.844 434.468C261.255 452.42 203.997 443.369 151.071 407.314C150.447 402.008 150.447 396.702 151.071 391.396C152.281 380.056 153.841 368.82 155.751 357.688C146.539 368.801 139.675 381.286 135.157 395.141C133.129 393.112 131.101 391.084 129.073 389.055C131.746 368.86 137.986 349.821 147.795 331.938C145.664 332.304 143.48 332.304 141.242 331.938C142.376 332.774 142.376 333.554 141.242 334.279C136.846 337.409 132.477 340.53 128.137 343.643C140.46 316.793 158.246 294.164 181.494 275.758C187.975 271.424 194.84 267.834 202.088 264.99C204.05 277.522 207.326 289.694 211.917 301.507C212.493 303.02 213.429 304.268 214.725 305.252C223.803 288.216 234.879 272.61 247.956 258.435C247.645 258.123 247.332 257.811 247.02 257.499C236.271 263.412 226.754 270.903 218.47 279.971C214.728 269.684 212.543 259.072 211.917 248.135C211.554 247.267 210.929 246.642 210.045 246.263C195.401 251.401 181.673 258.268 168.857 266.862C174.059 249.902 182.015 234.297 192.727 220.045C190.929 218.977 189.057 218.82 187.111 219.577C181.193 221.394 175.264 223.112 169.325 224.727C169.325 224.415 169.325 224.102 169.325 223.791C186.607 203.591 208.45 191.107 234.851 186.337C227.864 183.226 220.687 180.573 213.321 178.378C232.513 178.16 250.922 181.905 268.551 189.614C292.837 201.759 316.551 214.868 339.693 228.94C364.347 243.299 390.87 249.229 419.261 246.731C424.577 244.085 429.258 244.865 433.303 249.072C417.442 261.779 399.344 266.617 379.009 263.585C362.374 260.632 345.837 257.198 329.396 253.285C289.663 244.644 270.785 260.717 272.763 301.507C273.797 311.264 276.294 320.627 280.252 329.597C285.263 339.011 290.723 348.063 296.633 356.751Z" fill="#C1C1C1"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M196.472 87.0847C188.211 82.7977 179.786 78.7402 171.197 74.9123C170.886 75.2244 170.573 75.5365 170.261 75.8486C174.361 82.3323 178.106 89.0428 181.494 95.98C178.124 95.004 175.004 93.2874 172.133 90.8301C171.822 91.1422 171.509 91.4544 171.197 91.7665C172.565 97.9843 173.814 104.227 174.942 110.493C164.238 95.9365 157.061 79.7065 153.412 61.8035C170.122 66.374 184.476 74.8011 196.472 87.0847Z" fill="#C1C1C1"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M137.702 117.597C98.3419 150.932 73.4302 200.623 73.4302 256.161C73.4302 356.395 154.686 437.65 254.92 437.65C292.382 437.65 327.138 426.327 356.029 406.904V308.015H412.701V435.092L401.86 443.601C361.391 475.365 310.33 494.322 254.92 494.322C123.387 494.322 16.7583 387.694 16.7583 256.161C16.7583 183.263 49.5451 117.993 101.076 74.3508L137.702 117.597Z" fill="#57CB6A"/>
<path d="M298.593 173.943V157.86C298.173 158.251 297.656 158.641 297.041 159.032C296.443 159.407 295.813 159.765 295.15 160.106C294.488 160.432 293.833 160.733 293.186 161.01C292.54 161.27 291.974 161.474 291.489 161.62V156.81C292.039 156.582 292.669 156.24 293.38 155.785C294.108 155.329 294.811 154.849 295.49 154.344C296.169 153.823 296.783 153.326 297.332 152.854C297.882 152.382 298.254 152.016 298.448 151.756H303.66V173.943H298.593Z" fill="#57CB6A"/>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

15
docs/_static/Glances Text Logo dark.svg vendored Normal file
View File

@ -0,0 +1,15 @@
<svg width="680" height="728" viewBox="0 0 680 728" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M119.501 582.227C117.131 587.757 115.551 592.496 113.181 598.026C104.492 593.286 95.012 590.916 85.5325 590.126C62.6238 588.546 46.0347 598.816 39.715 620.935C34.9753 637.524 34.9753 654.113 42.0849 669.912C48.4045 684.131 58.674 692.031 74.4731 693.611C83.9526 694.401 92.6421 693.611 102.122 692.031C102.122 684.131 102.122 675.442 102.122 667.542C102.122 659.643 102.122 651.743 102.122 643.843C108.441 643.843 113.971 643.843 119.501 643.843C119.501 664.382 119.501 684.131 119.501 705.46C113.971 706.25 108.441 707.83 102.912 708.62C94.2221 709.41 85.5325 710.99 76.843 710.99C42.8748 710.99 20.756 688.871 16.8062 656.483C15.2263 643.054 15.2263 628.834 19.9661 615.405C28.6556 589.336 50.7744 573.537 78.4229 572.747C89.4823 572.747 99.7518 574.327 109.231 577.487C113.181 579.067 116.341 580.647 119.501 582.227Z" fill="#494949"/>
<path d="M576.096 663.595C553.187 663.595 531.068 663.595 508.159 663.595C509.739 668.335 509.739 673.074 511.319 677.814C515.269 688.084 523.169 692.823 533.438 694.403C543.707 695.983 553.977 695.193 564.246 691.243C565.036 691.243 566.616 690.453 567.406 690.453C568.196 695.193 568.986 699.933 569.776 705.463C562.666 707.043 556.347 708.622 550.027 709.412C537.388 710.992 524.748 710.202 512.899 703.883C502.63 698.353 495.52 690.453 492.36 679.394C487.62 662.805 487.62 646.216 495.52 630.417C504.999 611.458 525.538 602.768 546.077 607.508C561.086 611.458 568.986 620.937 572.936 635.946C576.096 644.636 576.886 653.325 576.096 663.595ZM508.949 648.586C525.538 648.586 541.338 648.586 557.927 648.586C557.927 632.787 550.027 622.517 536.598 621.727C521.589 620.937 510.529 632.787 508.949 648.586Z" fill="#494949"/>
<path d="M268.802 706.25C249.843 708.62 231.674 712.569 213.505 707.04C200.076 703.09 193.756 692.82 193.756 678.601C193.756 665.172 200.866 654.903 213.505 650.953C224.565 647.003 236.414 647.003 248.263 649.373C249.843 649.373 250.633 650.163 252.213 650.163C253.793 634.364 248.263 624.094 234.044 622.514C224.565 621.724 215.875 623.304 206.396 625.674C205.606 620.934 204.816 616.195 204.026 611.455C209.556 608.295 215.875 608.295 222.195 607.505C232.464 606.715 241.944 606.715 251.423 610.665C259.323 613.825 264.853 620.144 267.222 628.044C268.012 631.204 269.592 635.154 269.592 638.313C268.802 660.432 268.802 683.341 268.802 706.25ZM251.423 663.592C241.154 661.222 230.094 660.432 220.615 664.382C214.295 666.752 211.135 672.282 211.135 678.601C211.135 686.501 215.085 690.451 222.195 692.82C231.674 695.98 241.944 694.4 251.423 693.61C251.423 683.341 251.423 673.861 251.423 663.592Z" fill="#494949"/>
<path d="M298.826 612.249C304.356 611.459 309.886 609.879 316.205 609.089C326.475 608.299 337.534 607.509 347.804 608.299C364.393 609.879 374.662 620.938 377.032 638.317C377.822 643.847 377.822 648.587 377.822 654.116C377.822 670.706 377.822 686.505 377.822 703.094C377.822 704.674 377.822 706.254 377.822 707.834C371.502 707.834 365.973 707.834 359.653 707.834C359.653 706.254 359.653 704.674 359.653 703.094C359.653 688.085 359.653 673.075 359.653 658.066C359.653 650.957 358.863 643.847 357.283 636.737C355.703 628.838 350.173 624.888 343.064 624.098C334.374 622.518 325.685 624.098 316.995 625.678C316.995 653.326 316.995 680.975 316.995 708.623C310.676 708.623 305.146 708.623 299.616 708.623C298.826 676.235 298.826 644.637 298.826 612.249Z" fill="#494949"/>
<path d="M657.454 610.664C656.664 616.193 655.084 620.933 654.294 624.883C647.184 623.303 640.865 621.723 633.755 621.723C629.805 621.723 625.066 622.513 621.116 623.303C613.216 626.463 610.846 635.152 617.166 641.472C619.536 643.842 623.486 646.212 627.436 647.792C633.755 650.952 640.075 652.531 646.394 655.691C653.504 658.851 659.824 663.591 662.194 672.28C666.143 688.869 660.614 703.879 639.285 707.828C625.066 710.988 610.846 710.198 597.417 704.669C596.627 704.669 595.837 703.879 595.047 703.879L594.257 703.089C595.047 698.349 596.627 693.609 597.417 688.869C604.527 690.449 610.846 692.819 617.956 693.609C624.276 694.399 631.385 693.609 637.705 692.029C646.395 689.659 648.764 680.18 642.445 673.86C640.075 671.49 636.915 669.121 633.755 668.331C627.436 665.171 621.906 662.801 615.586 660.431C608.477 657.271 602.157 653.321 598.997 645.422C592.677 629.623 601.367 613.034 618.746 608.294C628.225 605.134 645.605 605.924 657.454 610.664Z" fill="#494949"/>
<path d="M474.178 690.45C474.968 695.19 475.758 699.929 476.548 704.669C474.968 705.459 474.178 706.249 473.388 706.249C459.958 710.199 446.529 710.989 433.1 707.039C418.881 702.299 408.611 692.82 404.661 678.6C399.922 662.801 399.922 647.002 407.821 631.203C414.931 616.194 427.57 607.504 444.159 605.924C454.429 605.134 464.698 605.924 474.968 610.664C473.388 615.404 472.598 620.144 471.018 624.883C465.488 624.093 460.748 622.513 456.009 621.723C446.529 620.934 436.26 621.723 429.15 629.623C425.99 632.783 423.62 637.523 422.04 641.472C418.881 653.322 418.881 665.171 422.83 676.231C426.78 686.5 433.89 691.24 444.159 692.82C452.849 694.4 462.328 693.61 471.018 690.45C471.808 691.24 472.598 691.24 474.178 690.45Z" fill="#494949"/>
<path d="M181.11 694.401C180.32 699.141 179.53 703.88 178.74 708.62C162.151 711.78 147.932 701.511 147.932 684.132C147.932 646.214 147.932 608.296 147.932 571.168C147.932 568.798 147.932 566.428 147.932 564.058C154.252 563.268 159.781 561.688 166.101 560.898C166.101 563.268 166.101 564.848 166.101 566.428C166.101 602.766 166.101 639.104 166.101 675.442C166.101 677.812 166.101 680.182 166.101 681.762C166.891 688.871 169.261 692.031 177.161 693.611C177.95 693.611 178.74 694.401 181.11 694.401Z" fill="#494949"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M363.176 77.9551C315.086 77.9551 271.127 95.3057 237.099 124.124L197.705 77.6099C242.328 39.8177 300.127 17 363.176 17C426.226 17 484.025 39.8177 528.647 77.6099L489.253 124.124C455.226 95.3057 411.266 77.9551 363.176 77.9551Z" fill="#57CB6A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M163.728 287.816C173.553 255.562 189.499 226.856 211.567 201.698C206.204 202.364 200.997 203.875 195.953 206.231C195.701 206.063 195.451 205.895 195.2 205.727C194.95 205.559 194.7 205.391 194.448 205.224C213.147 177.289 236.637 154.292 264.937 136.229C247.989 107.887 239.26 77.1667 238.751 44.0684C277.357 50.276 309.921 67.5666 336.442 95.9402C383.5 104.115 426.133 122.245 464.345 150.33C473.774 157.07 480.992 165.632 485.998 176.014C488.227 184.018 490.237 192.075 492.037 200.188C495.367 207.553 500.249 213.765 506.654 218.821C514.896 226.05 523.951 232.093 533.837 236.951C546.316 240.877 559.084 243.395 572.12 244.505C572.784 254.497 570.257 263.562 564.558 271.7C543.233 287.724 519.227 293.935 492.545 290.334C470.521 286.547 448.544 282.685 426.589 278.751C409.658 279.224 399.913 287.953 397.374 304.939C395.789 319.077 398.814 332.171 406.442 344.22C410.222 350.104 414.243 355.812 418.519 361.343C430.312 374.648 442.909 387.071 456.294 398.61C449.43 400.551 442.385 401.726 435.149 402.135C442.641 406.535 451.499 412.15 460.753 418.015C476.501 427.998 493.395 438.707 506.654 445.388C452.031 477.035 393.002 511.14 270.976 465.087C218.61 445.323 178.103 409.581 163.728 372.787C151.304 340.989 153.903 320.07 163.728 287.816ZM404.493 188.751C429.285 203.065 457.971 199.792 457.971 199.792C457.971 199.792 447.819 170.964 423.027 156.65C398.235 142.336 368.192 147.958 368.192 147.958C368.192 147.958 379.701 174.438 404.493 188.751Z" fill="#494949"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M408.043 381.354C402.262 381.057 396.557 380.553 390.927 379.843C411.816 395.796 427.925 415.603 439.255 439.263C434.432 437.639 429.398 436.464 424.152 435.738C428.162 445.403 432.189 455.138 436.234 464.944C369.99 484.253 308.405 474.518 251.479 435.738C250.808 430.031 250.808 424.324 251.479 418.617C252.781 406.42 254.458 394.335 256.513 382.361C246.605 394.314 239.222 407.743 234.363 422.645C232.181 420.463 230 418.282 227.818 416.099C230.694 394.378 237.406 373.9 247.955 354.665C245.664 355.059 243.315 355.059 240.907 354.665C242.127 355.565 242.127 356.404 240.907 357.183C236.179 360.55 231.48 363.907 226.812 367.254C240.067 338.375 259.197 314.037 284.201 294.239C291.172 289.578 298.556 285.717 306.352 282.657C308.462 296.136 311.986 309.229 316.924 321.934C317.543 323.562 318.55 324.904 319.944 325.963C329.708 307.638 341.622 290.853 355.687 275.607C355.352 275.272 355.016 274.935 354.68 274.6C343.119 280.96 332.882 289.017 323.972 298.771C319.947 287.706 317.597 276.292 316.924 264.529C316.533 263.594 315.862 262.923 314.91 262.515C299.16 268.042 284.394 275.427 270.609 284.671C276.204 266.429 284.762 249.645 296.284 234.316C294.349 233.167 292.336 232.998 290.242 233.812C283.877 235.767 277.501 237.614 271.113 239.351C271.113 239.016 271.113 238.679 271.113 238.344C289.701 216.618 313.194 203.19 341.591 198.06C334.076 194.714 326.357 191.86 318.434 189.499C339.076 189.265 358.877 193.293 377.838 201.585C403.96 214.648 429.466 228.747 454.358 243.883C480.875 259.327 509.402 265.705 539.939 263.018C545.657 260.172 550.691 261.011 555.042 265.536C537.983 279.204 518.516 284.407 496.645 281.146C478.752 277.97 460.965 274.277 443.282 270.068C400.546 260.773 380.241 278.062 382.368 321.934C383.481 332.428 386.166 342.5 390.423 352.148C395.813 362.273 401.686 372.009 408.043 381.354Z" fill="#666666"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M300.311 91.306C291.426 86.695 282.364 82.3308 273.127 78.2136C272.791 78.5492 272.455 78.885 272.12 79.2207C276.53 86.1944 280.557 93.4121 284.202 100.874C280.577 99.8239 277.221 97.9775 274.133 95.3345C273.798 95.6701 273.462 96.0059 273.127 96.3416C274.598 103.029 275.941 109.744 277.154 116.484C265.642 100.827 257.922 83.3702 253.997 64.114C271.97 69.03 287.409 78.094 300.311 91.306Z" fill="#666666"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M237.1 124.124C194.765 159.979 167.97 213.426 167.97 273.161C167.97 380.971 255.367 468.367 363.176 468.367C403.47 468.367 440.853 456.188 471.927 435.297V328.934H532.882V465.615L521.222 474.767C477.695 508.932 422.774 529.322 363.176 529.322C221.702 529.322 107.015 414.635 107.015 273.161C107.015 194.753 142.28 124.551 197.705 77.6099L237.1 124.124Z" fill="#57CB6A"/>
<path d="M410.151 184.729V167.431C409.699 167.851 409.143 168.271 408.482 168.691C407.839 169.094 407.161 169.479 406.448 169.847C405.735 170.197 405.031 170.521 404.336 170.819C403.64 171.099 403.032 171.318 402.51 171.475V166.301C403.101 166.056 403.779 165.688 404.544 165.198C405.327 164.708 406.083 164.191 406.813 163.649C407.543 163.088 408.204 162.554 408.795 162.047C409.386 161.539 409.786 161.145 409.995 160.865H415.601V184.729H410.151Z" fill="#57CB6A"/>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

15
docs/_static/Glances Text Logo.svg vendored Normal file
View File

@ -0,0 +1,15 @@
<svg width="680" height="728" viewBox="0 0 680 728" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M120.262 582.227C117.893 587.757 116.313 592.496 113.943 598.026C105.253 593.286 95.7737 590.916 86.2942 590.126C63.3855 588.546 46.7964 598.816 40.4767 620.935C35.737 637.524 35.737 654.113 42.8466 669.912C49.1663 684.131 59.4357 692.031 75.2348 693.611C84.7143 694.401 93.4039 693.611 102.883 692.031C102.883 684.131 102.883 675.442 102.883 667.542C102.883 659.643 102.883 651.743 102.883 643.843C109.203 643.843 114.733 643.843 120.262 643.843C120.262 664.382 120.262 684.131 120.262 705.46C114.733 706.25 109.203 707.83 103.673 708.62C94.9838 709.41 86.2943 710.99 77.6047 710.99C43.6366 710.99 21.5177 688.871 17.568 656.483C15.988 643.054 15.988 628.834 20.7278 615.405C29.4173 589.336 51.5361 573.537 79.1846 572.747C90.244 572.747 100.513 574.327 109.993 577.487C113.943 579.067 117.103 580.647 120.262 582.227Z" fill="#C8C8C8"/>
<path d="M576.857 663.595C553.949 663.595 531.83 663.595 508.921 663.595C510.501 668.335 510.501 673.075 512.081 677.814C516.031 688.084 523.93 692.824 534.2 694.403C544.469 695.983 554.739 695.193 565.008 691.244C565.798 691.244 567.378 690.454 568.168 690.454C568.958 695.193 569.748 699.933 570.538 705.463C563.428 707.043 557.108 708.623 550.789 709.413C538.149 710.993 525.51 710.203 513.661 703.883C503.391 698.353 496.282 690.454 493.122 679.394C488.382 662.805 488.382 646.216 496.282 630.417C505.761 611.458 526.3 602.768 546.839 607.508C561.848 611.458 569.748 620.937 573.698 635.947C576.857 644.636 577.647 653.326 576.857 663.595ZM509.711 648.586C526.3 648.586 542.099 648.586 558.688 648.586C558.688 632.787 550.789 622.517 537.36 621.727C522.35 620.937 511.291 632.787 509.711 648.586Z" fill="#C8C8C8"/>
<path d="M269.564 706.25C250.605 708.62 232.436 712.569 214.267 707.04C200.838 703.09 194.518 692.82 194.518 678.601C194.518 665.172 201.628 654.903 214.267 650.953C225.326 647.003 237.176 647.003 249.025 649.373C250.605 649.373 251.395 650.163 252.975 650.163C254.555 634.364 249.025 624.094 234.806 622.514C225.326 621.724 216.637 623.304 207.157 625.674C206.367 620.934 205.577 616.195 204.788 611.455C210.317 608.295 216.637 608.295 222.957 607.505C233.226 606.715 242.705 606.715 252.185 610.665C260.085 613.825 265.614 620.144 267.984 628.044C268.774 631.204 270.354 635.154 270.354 638.313C269.564 660.432 269.564 683.341 269.564 706.25ZM252.185 663.592C241.916 661.222 230.856 660.432 221.377 664.382C215.057 666.752 211.897 672.282 211.897 678.601C211.897 686.501 215.847 690.451 222.957 692.82C232.436 695.98 242.705 694.4 252.185 693.61C252.185 683.341 252.185 673.861 252.185 663.592Z" fill="#C8C8C8"/>
<path d="M299.588 612.249C305.118 611.459 310.648 609.879 316.967 609.089C327.237 608.299 338.296 607.509 348.566 608.299C365.155 609.879 375.424 620.938 377.794 638.317C378.584 643.847 378.584 648.587 378.584 654.116C378.584 670.706 378.584 686.505 378.584 703.094C378.584 704.674 378.584 706.254 378.584 707.834C372.264 707.834 366.735 707.834 360.415 707.834C360.415 706.254 360.415 704.674 360.415 703.094C360.415 688.085 360.415 673.075 360.415 658.066C360.415 650.957 359.625 643.847 358.045 636.737C356.465 628.838 350.936 624.888 343.826 624.098C335.136 622.518 326.447 624.098 317.757 625.678C317.757 653.326 317.757 680.975 317.757 708.623C311.438 708.623 305.908 708.623 300.378 708.623C299.588 676.235 299.588 644.637 299.588 612.249Z" fill="#C8C8C8"/>
<path d="M658.216 610.664C657.426 616.193 655.846 620.933 655.056 624.883C647.947 623.303 641.627 621.723 634.517 621.723C630.568 621.723 625.828 622.513 621.878 623.303C613.979 626.463 611.609 635.152 617.928 641.472C620.298 643.842 624.248 646.212 628.198 647.792C634.517 650.952 640.837 652.531 647.157 655.691C654.266 658.851 660.586 663.591 662.956 672.28C666.906 688.869 661.376 703.879 640.047 707.828C625.828 710.988 611.609 710.198 598.179 704.669C597.389 704.669 596.599 703.879 595.809 703.879L595.02 703.089C595.809 698.349 597.389 693.609 598.179 688.869C605.289 690.449 611.609 692.819 618.718 693.609C625.038 694.399 632.148 693.609 638.467 692.029C647.157 689.659 649.527 680.18 643.207 673.86C640.837 671.49 637.677 669.121 634.517 668.331C628.198 665.171 622.668 662.801 616.348 660.431C609.239 657.271 602.919 653.321 599.759 645.422C593.44 629.623 602.129 613.034 619.508 608.294C628.988 605.134 646.367 605.924 658.216 610.664Z" fill="#C8C8C8"/>
<path d="M474.939 690.45C475.729 695.19 476.519 699.929 477.309 704.669C475.729 705.459 474.939 706.249 474.149 706.249C460.72 710.199 447.291 710.989 433.862 707.039C419.642 702.299 409.373 692.82 405.423 678.6C400.683 662.801 400.683 647.002 408.583 631.203C415.693 616.194 428.332 607.504 444.921 605.924C455.19 605.134 465.46 605.924 475.729 610.664C474.149 615.404 473.359 620.144 471.78 624.883C466.25 624.093 461.51 622.513 456.77 621.723C447.291 620.934 437.021 621.723 429.912 629.623C426.752 632.783 424.382 637.523 422.802 641.472C419.642 653.322 419.642 665.171 423.592 676.231C427.542 686.5 434.652 691.24 444.921 692.82C453.611 694.4 463.09 693.61 471.78 690.45C472.57 691.24 473.36 691.24 474.939 690.45Z" fill="#C8C8C8"/>
<path d="M181.872 694.401C181.082 699.141 180.292 703.88 179.502 708.62C162.913 711.78 148.694 701.511 148.694 684.132C148.694 646.214 148.694 608.296 148.694 571.168C148.694 568.798 148.694 566.428 148.694 564.058C155.014 563.268 160.543 561.688 166.863 560.898C166.863 563.268 166.863 564.848 166.863 566.428C166.863 602.766 166.863 639.104 166.863 675.442C166.863 677.812 166.863 680.182 166.863 681.762C167.653 688.871 170.023 692.031 177.922 693.611C178.712 693.611 179.502 694.401 181.872 694.401Z" fill="#C8C8C8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M363.938 77.9551C315.848 77.9551 271.889 95.3057 237.861 124.124L198.467 77.6099C243.09 39.8177 300.888 17 363.938 17C426.988 17 484.786 39.8177 529.409 77.6099L490.015 124.124C455.987 95.3057 412.028 77.9551 363.938 77.9551Z" fill="#57CB6A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M164.49 287.816C174.314 255.562 190.261 226.856 212.329 201.698C206.966 202.364 201.759 203.875 196.715 206.231C196.463 206.063 196.213 205.895 195.962 205.727C195.712 205.559 195.461 205.391 195.21 205.224C213.909 177.289 237.398 154.292 265.699 136.229C248.751 107.887 240.022 77.1667 239.512 44.0684C278.118 50.276 310.683 67.5666 337.204 95.9402C384.261 104.115 426.895 122.245 465.107 150.33C474.536 157.07 481.753 165.632 486.76 176.014C488.989 184.018 490.999 192.075 492.799 200.188C496.129 207.553 501.01 213.765 507.416 218.821C515.658 226.05 524.713 232.093 534.599 236.951C547.077 240.877 559.845 243.395 572.882 244.505C573.545 254.497 571.019 263.562 565.319 271.7C543.994 287.724 519.988 293.935 493.306 290.334C471.283 286.547 449.305 282.685 427.351 278.751C410.419 279.224 400.675 287.953 398.136 304.939C396.551 319.077 399.575 332.171 407.203 344.22C410.984 350.104 415.005 355.812 419.281 361.343C431.074 374.648 443.671 387.071 457.055 398.61C450.192 400.551 443.147 401.726 435.911 402.135C443.403 406.535 452.261 412.15 461.515 418.015C477.263 427.998 494.157 438.707 507.416 445.388C452.793 477.035 393.764 511.14 271.737 465.087C219.371 445.323 178.865 409.581 164.49 372.787C152.066 340.989 154.665 320.07 164.49 287.816ZM405.255 188.751C430.047 203.065 458.733 199.792 458.733 199.792C458.733 199.792 448.58 170.964 423.788 156.65C398.997 142.336 368.954 147.958 368.954 147.958C368.954 147.958 380.463 174.438 405.255 188.751Z" fill="#EBEBEB"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M408.805 381.354C403.023 381.057 397.319 380.553 391.688 379.843C412.577 395.796 428.687 415.603 440.017 439.263C435.194 437.639 430.16 436.464 424.914 435.738C428.923 445.403 432.951 455.138 436.996 464.944C370.752 484.253 309.167 474.518 252.241 435.738C251.569 430.031 251.569 424.324 252.241 418.617C253.543 406.42 255.22 394.335 257.275 382.361C247.367 394.314 239.984 407.743 235.125 422.645C232.943 420.463 230.762 418.282 228.58 416.099C231.456 394.378 238.167 373.9 248.717 354.665C246.425 355.059 244.076 355.059 241.669 354.665C242.888 355.565 242.888 356.404 241.669 357.183C236.941 360.55 232.242 363.907 227.573 367.254C240.828 338.375 259.958 314.037 284.963 294.239C291.934 289.578 299.318 285.717 307.114 282.657C309.224 296.136 312.748 309.229 317.685 321.934C318.305 323.562 319.312 324.904 320.706 325.963C330.469 307.638 342.383 290.853 356.449 275.607C356.114 275.272 355.777 274.935 355.442 274.6C343.88 280.96 333.644 289.017 324.733 298.771C320.709 287.706 318.359 276.292 317.685 264.529C317.295 263.594 316.623 262.923 315.672 262.515C299.922 268.042 285.155 275.427 271.371 284.671C276.966 266.429 285.524 249.645 297.045 234.316C295.111 233.167 293.097 232.998 291.004 233.812C284.639 235.767 278.263 237.614 271.874 239.351C271.874 239.016 271.874 238.679 271.874 238.344C290.463 216.618 313.956 203.19 342.353 198.06C334.838 194.714 327.119 191.86 319.196 189.499C339.838 189.265 359.639 193.293 378.599 201.585C404.722 214.648 430.228 228.747 455.119 243.883C481.636 259.327 510.163 265.705 540.701 263.018C546.419 260.172 551.453 261.011 555.803 265.536C538.744 279.204 519.278 284.407 497.407 281.146C479.514 277.97 461.727 274.277 444.044 270.068C401.308 260.773 381.003 278.062 383.13 321.934C384.243 332.428 386.928 342.5 391.185 352.148C396.574 362.273 402.447 372.009 408.805 381.354Z" fill="#C1C1C1"/>
<path opacity="0.976" fill-rule="evenodd" clip-rule="evenodd" d="M301.073 91.306C292.188 86.695 283.126 82.3308 273.888 78.2136C273.553 78.5492 273.217 78.885 272.881 79.2207C277.291 86.1944 281.319 93.4121 284.964 100.874C281.339 99.8239 277.983 97.9775 274.895 95.3345C274.56 95.6701 274.224 96.0059 273.888 96.3416C275.359 103.029 276.702 109.744 277.916 116.484C266.403 100.827 258.684 83.3702 254.758 64.114C272.731 69.03 288.17 78.094 301.073 91.306Z" fill="#C1C1C1"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M237.861 124.124C195.527 159.979 168.732 213.426 168.732 273.161C168.732 380.971 256.129 468.367 363.938 468.367C404.232 468.367 441.614 456.188 472.689 435.297V328.934H533.644V465.615L521.984 474.767C478.457 508.932 423.536 529.322 363.938 529.322C222.464 529.322 107.777 414.635 107.777 273.161C107.777 194.753 143.042 124.551 198.467 77.6099L237.861 124.124Z" fill="#57CB6A"/>
<path d="M410.913 184.729V167.431C410.461 167.851 409.904 168.271 409.244 168.691C408.601 169.094 407.922 169.479 407.21 169.847C406.497 170.197 405.793 170.521 405.097 170.819C404.402 171.099 403.794 171.318 403.272 171.475V166.301C403.863 166.056 404.541 165.688 405.306 165.198C406.088 164.708 406.845 164.191 407.575 163.649C408.305 163.088 408.966 162.554 409.557 162.047C410.148 161.539 410.548 161.145 410.756 160.865H416.363V184.729H410.913Z" fill="#57CB6A"/>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 12 KiB

1220
docs/_static/glances-cgraph.svg vendored Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 76 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 33 KiB

33
docs/_static/glances-pyinstrument.html vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 KiB

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 KiB

After

Width:  |  Height:  |  Size: 425 KiB

BIN
docs/_static/screenshot-fetch.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
docs/_static/wifi.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -3,7 +3,7 @@
Actions
=======
Glances can trigger actions on events.
Glances can trigger actions on events for warning and critical thresholds.
By ``action``, we mean all shell command line. For example, if you want
to execute the ``foo.py`` script if the last 5 minutes load are critical
@ -18,6 +18,13 @@ then add the ``_action`` line to the Glances configuration file:
All the stats are available in the command line through the use of the
`Mustache`_ syntax. `Chevron`_ is required to render the mustache's template syntax.
Additionaly to the stats of the current plugin, the following variables are
also available:
- ``{{time}}``: current time in ISO format
- ``{{critical}}``: critical threshold value
- ``{{warning}}``: warning threshold value
- ``{{careful}}``: careful threshold value
Another example would be to create a log file
containing used vs total disk space if a space trigger warning is
reached:
@ -26,7 +33,7 @@ reached:
[fs]
warning=70
warning_action=echo {{mnt_point}} {{used}}/{{size}} > /tmp/fs.alert
warning_action=echo "{{time}} {{mnt_point}} {{used}}/{{size}}" > /tmp/fs.alert
A last example would be to create a log file containing the total user disk
space usage for a device and notify by email each time a space trigger
@ -36,13 +43,11 @@ critical is reached:
[fs]
critical=90
critical_action_repeat=echo {{device_name}} {{percent}} > /tmp/fs.alert && python /etc/glances/actions.d/fs-critical.py
critical_action_repeat=echo "{{time}} {{device_name}} {{percent}}" > /tmp/fs.alert && python /etc/glances/actions.d/fs-critical.py
.. note::
Use && as separator for multiple commands
Within ``/etc/glances/actions.d/fs-critical.py``:
.. code-block:: python
@ -63,7 +68,7 @@ Within ``/etc/glances/actions.d/fs-critical.py``:
.. note::
You can use all the stats for the current plugin. See
https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API
https://github.com/nicolargo/glances/wiki/The-Glances-RESTFUL-JSON-API
for the stats list.
It is also possible to repeat action until the end of the alert.

View File

@ -61,9 +61,11 @@ For example:
enable=false
refresh=30
one_line=false
command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max
command=sysctl net.netfilter.nf_conntrack_count && sysctl net.netfilter.nf_conntrack_max
For security reason, pipe is not directly allowed in a AMP command but you create a sheel
Note: for multiple command, please use the '&&'' separator.
For security reason, pipe is not directly allowed in a AMP command but you create a shell
script with your command:
.. code-block:: ini

View File

@ -3,7 +3,7 @@
CLOUD
=====
This plugin diplays information about the cloud provider if your host is running on OpenStack.
This plugin displays information about the cloud provider if your host is running on OpenStack.
The plugin use the standard OpenStack `metadata`_ service to retrieve the information.

View File

@ -14,6 +14,8 @@ You can install this dependency using:
.. image:: ../_static/containers.png
Note: Memory usage is compute as following "display memory usage = memory usage - inactive_file"
It is possible to define limits and actions from the configuration file
under the ``[containers]`` section:
@ -21,14 +23,17 @@ under the ``[containers]`` section:
[containers]
disable=False
# Only show specific containers (comma separated list of container name or regular expression)
# Only show specific containers (comma-separated list of container name or regular expression)
show=thiscontainer,andthisone,andthoseones.*
# Hide some containers (comma separated list of container name or regular expression)
# Hide some containers (comma-separated list of container name or regular expression)
hide=donotshowthisone,andthose.*
# Show only specific containers (comma separated list of container name or regular expression)
# Show only specific containers (comma-separated list of container name or regular expression)
#show=showthisone,andthose.*
# Define the maximum containers size name (default is 20 chars)
max_name_size=20
# List of stats to disable (not display)
# Following stats can be disabled: name,status,uptime,cpu,mem,diskio,networkio,ports,command
disable_stats=command
# Global containers' thresholds for CPU and MEM (in %)
cpu_careful=50
cpu_warning=70

View File

@ -15,17 +15,6 @@ displayed.
.. image:: ../_static/cpu-wide.png
A character is also displayed just after the CPU header and shows the
trend value:
======== ==============================================================
Trend Status
======== ==============================================================
``-`` CPU value is equal to the mean of the six latests refreshes
``\`` CPU value is lower than the mean of the six latests refreshes
``/`` CPU value is higher than the mean of the six latests refreshes
======== ==============================================================
CPU stats description:
- **user**: percent time spent in user space. User CPU time is the time
@ -46,6 +35,8 @@ CPU stats description:
operations to complete.
- **steal** *(Linux)*: percentage of time a virtual CPU waits for a real
CPU while the hypervisor is servicing another virtual processor.
- **guest** *(Linux)*: percentage of time a virtual CPU spends
servicing another virtual CPU under the control of the Linux kernel.
- **ctx_sw**: number of context switches (voluntary + involuntary) per
second. A context switch is a procedure that a computer's CPU (central
processing unit) follows to change from one task (or process) to
@ -62,6 +53,19 @@ To switch to per-CPU stats, just hit the ``1`` key:
.. image:: ../_static/per-cpu.png
In this case, Glances will show on line per logical CPU on the system.
If you have multiple core, it is possible to define the maximum number
of CPU to display. The top 'max_cpu_display' will be display and an
extra line with the mean of all others CPU will be added.
.. code-block:: ini
[percpu]
# Define the maximum number of CPU display at a time
# If the number of CPU is higher than:
# - display the top 'max_cpu_display' (sorted by CPU consumption)
# - a last line will be added with the sum of all other CPUs
max_cpu_display=4
Logical cores means the number of physical cores multiplied by the number
of threads that can run on each core (this is known as Hyper Threading).

View File

@ -5,21 +5,16 @@ Disk I/O
.. image:: ../_static/diskio.png
Glances displays the disk I/O throughput. The unit is adapted
dynamically.
You can display:
Glances displays the disk I/O throughput, count and mean latency:
- bytes per second (default behavior / Bytes/s, KBytes/s, MBytes/s, etc)
- requests per second (using --diskio-iops option or *B* hotkey)
- mean latency (using --diskio-latency option or *L* hotkey)
There is no alert on this information.
It's possible to define:
It's also possible to define:
- a list of disk to show (white list)
- a list of disks to hide
- aliases for disk name
- aliases for disk name (use \ to espace special characters)
under the ``[diskio]`` section in the configuration file.
@ -42,4 +37,38 @@ Filtering is based on regular expression. Please be sure that your regular
expression works as expected. You can use an online tool like `regex101`_ in
order to test your regular expression.
It is also possible to define thesholds for latency and bytes read and write per second:
.. code-block:: ini
[diskio]
# Alias for sda1 and sdb1
#alias=sda1:SystemDisk,sdb1:DataDisk
# Default latency thresholds (in ms) (rx = read / tx = write)
rx_latency_careful=10
rx_latency_warning=20
rx_latency_critical=50
tx_latency_careful=10
tx_latency_warning=20
tx_latency_critical=50
# Set thresholds (in bytes per second) for a given disk name (rx = read / tx = write)
dm-0_rx_careful=4000000000
dm-0_rx_warning=5000000000
dm-0_rx_critical=6000000000
dm-0_rx_log=True
dm-0_tx_careful=700000000
dm-0_tx_warning=900000000
dm-0_tx_critical=1000000000
dm-0_tx_log=True
You also can automatically hide disk with no read or write using the
``hide_zero`` configuration key. The optional ``hide_threshold_bytes`` option
can also be used to set a threshold higher than zero.
.. code-block:: ini
[diskio]
hide_zero=True
hide_threshold_bytes=0
.. _regex101: https://regex101.com/

View File

@ -18,3 +18,20 @@ Each event message displays the following information:
3. alert name
4. {min,avg,max} values or number of running processes for monitored
processes list alerts
The configuration should be done in the ``[alert]`` section of the
Glances configuration file:
.. code-block:: ini
[alert]
disable=False
# Maximum number of events to display (default is 10 events)
max_events=10
# Minimum duration for an event to be taken into account (default is 6 seconds)
min_duration=6
# Minimum time between two events of the same type (default is 6 seconds)
# This is used to avoid too many alerts for the same event
# Events will be merged
min_interval=6

View File

@ -35,6 +35,9 @@ the following definition should do the job:
In client/server mode, the list is defined on the ``server`` side.
.. warning::
Symbolic links are not followed.
.. warning::
Do **NOT** define folders containing lot of files and subfolders or use an
huge refresh time...

View File

@ -35,6 +35,11 @@ system:
[fs]
allow=shm
With the above configuration key, it is also possible to monitor NFS
mount points (allow=nfs). Be aware that this can slow down the
performance of the plugin if the NFS server is not reachable. In this
case, the plugin will wait for a 2 seconds timeout.
Also, you can hide mount points using regular expressions.
To hide all mount points starting with /boot and /snap:

View File

@ -3,16 +3,16 @@
GPU
===
.. note::
You need to install the `py3nvml`_ library on your system.
Or `nvidia-ml-py3`_ for Glances 3.1.3 or lower.
For the moment, only following GPU are supported:
- NVidia (thanks to the `nvidia-ml-py`_ library)
- AMD (only on Linux Operating system with kernel 5.14 or higher)
The GPU stats are shown as a percentage of value and for the configured
refresh time. It displays:
- total GPU usage
- memory consumption
- temperature (Glances 3.1.4 or higher)
- temperature
.. image:: ../_static/gpu.png
@ -28,15 +28,19 @@ You can change the threshold limits in the configuration file:
.. code-block:: ini
[gpu]
# Default processor values if not defined: 50/70/90
proc_careful=50
proc_warning=70
proc_critical=90
# Default memory values if not defined: 50/70/90
mem_careful=50
mem_warning=70
mem_critical=90
[gpu]
# Default processor values if not defined: 50/70/90
proc_careful=50
proc_warning=70
proc_critical=90
# Default memory values if not defined: 50/70/90
mem_careful=50
mem_warning=70
mem_critical=90
# Temperature
temperature_careful=60
temperature_warning=70
temperature_critical=80
Legend:
@ -49,5 +53,4 @@ GPU (PROC/MEM) Status
``>90%`` ``CRITICAL``
============== ============
.. _py3nvml: https://pypi.org/project/py3nvml/
.. _nvidia-ml-py3: https://pypi.org/project/nvidia-ml-py3/
.. _nvidia-ml-py: https://pypi.org/project/nvidia-ml-py/

View File

@ -11,36 +11,55 @@ Additionally, on GNU/Linux, it also shows the kernel version.
In client mode, the server connection status is also displayed.
It is possible to disable or define time interval to be used for refreshing the
public IP address (default is 300 seconds) from the configuration
file under the ``[ip]`` section:
The system information message can be configured in the configuration file
(for the moment, it only work for the Curses interface):
.. code-block:: ini
[ip]
public_refresh_interval=300
public_ip_disabled=True
[system]
# System information to display (a string where {key} will be replaced by the value) in the Curses interface
# Available dynamics information are: hostname, os_name, os_version, os_arch, linux_distro, platform
system_info_msg= | My {os_name} system |
The header IP message can be configured from the ip ``[ip]`` section, it allows to display private and
public IP information.
In the default configuration file, public IP address information is disable. Set public_disabled, to False
in order to enable the feature.
Example:
.. code-block:: ini
[ip]
# Disable display of private IP address
disable=False
# Configure the online service where public IP address information will be downloaded
# - public_disabled: Disable public IP address information (set to True for offline platform)
# - public_refresh_interval: Refresh interval between to calls to the online service
# - public_api: URL of the API (the API should return an JSON object)
# - public_username: Login for the online service (if needed)
# - public_password: Password for the online service (if needed)
# - public_field: Field name of the public IP address in onlibe service JSON message
# - public_template: Template to build the public message
#
# Example for IPLeak service:
# public_api=https://ipv4.ipleak.net/json/
# public_field=ip
# public_template={ip} {continent_name}/{country_name}/{city_name}
#
public_disabled=False
public_refresh_interval=300
public_api=https://ipv4.ipleak.net/json/
#public_username=<myname>
#public_password=<mysecret>
public_field=ip
public_template={continent_name}/{country_name}/{city_name}
**NOTE:** Setting low values for `public_refresh_interval` will result in frequent
HTTP requests to the IP detection servers. Recommended range: 120-600 seconds.
Glances uses online services in order to get the IP addresses. Your IP address could be
blocked if too many requests are done.
HTTP requests to the onlive service defined in public_api. Recommended range: 120-600 seconds.
Glances uses online services in order to get the IP addresses and the additional information.
Your IP address could be blocked if too many requests are done.
If the Censys options are configured, the public IP address is also analysed (with the same interval)
and additional information is displayed.
.. code-block:: ini
[ip]
public_refresh_interval=300
public_ip_disabled=True
censys_url=https://search.censys.io/api
# Get your own credential here: https://search.censys.io/account/api
censys_username=CENSYS_API_ID
censys_password=CENSYS_API_SECRET
# List of fields to be displayed in user interface (comma separated)
censys_fields=location:continent,location:country,autonomous_system:name
**Note:** Access to the Censys Search API need an account (https://censys.io/login).
Example:

View File

@ -41,6 +41,7 @@ Legend:
hddtemp
ps
containers
vms
amps
events
actions

View File

@ -31,6 +31,17 @@ percentage.
.. image:: ../_static/loadpercent.png
A character is also displayed just after the LOAD header and shows the
trend value (for the 1 minute load stat):
======== ==============================================================
Trend Status
======== ==============================================================
``-`` Mean 15 lasts values equal mean 15 previous values
```` Mean 15 lasts values is lower mean 15 previous values
```` Mean 15 lasts values is higher mean 15 previous values
======== ==============================================================
Legend:
============= ============

View File

@ -27,7 +27,7 @@ Stats description:
is in RAM.
- **inactive**: (UNIX): memory that is marked as not used.
- **buffers**: (Linux, BSD): cache for things like file system metadata.
- **cached**: (Linux, BSD): cache for various things.
- **cached**: (Linux, BSD): cache for various things (including ZFS cache).
Additional stats available in through the API:
@ -41,15 +41,19 @@ Additional stats available in through the API:
- **shared**: (BSD): memory that may be simultaneously accessed by multiple
processes.
It is possible to display the available memory instead of the used memory
by setting the ``available`` option to ``True`` in the configuration file
under the ``[mem]`` section.
A character is also displayed just after the MEM header and shows the
trend value:
======== ==============================================================
Trend Status
======== ==============================================================
``-`` MEM value is equal to the mean of the six latests refreshes
``\`` MEM value is lower than the mean of the six latests refreshes
``/`` MEM value is higher than the mean of the six latests refreshes
``-`` Mean 15 lasts values equal mean 15 previous values
```` Mean 15 lasts values is lower mean 15 previous values
```` Mean 15 lasts values is higher mean 15 previous values
======== ==============================================================
Alerts are only set for used memory and used swap.

View File

@ -17,8 +17,10 @@ In this case thresholds values are define in bps.
Additionally, you can define:
- a list of network interfaces to hide
- automatically hide interfaces not up
- automatically hide interfaces without IP address
- per-interface limit values
- aliases for interface name
- aliases for interface name (use \ to espace special characters)
The configuration should be done in the ``[network]`` section of the
Glances configuration file.
@ -41,8 +43,14 @@ virtual docker interface (docker0, docker1, ...):
hide=docker.*,lo
# Define the list of network interfaces to show (comma-separated regexp)
#show=eth0,eth1
# Automatically hide interface not up (default is False)
hide_no_up=True
# Automatically hide interface with no IP address (default is False)
hide_no_ip=True
# Set hide_zero to True to automatically hide interface with no traffic
hide_zero=False
# WLAN 0 alias
wlan0_alias=Wireless IF
alias=wlan0:Wireless IF
# It is possible to overwrite the bitrate thresholds per interface
# WLAN 0 Default limits (in bits per second aka bps) for interface bitrate
wlan0_rx_careful=4000000
@ -58,4 +66,14 @@ Filtering is based on regular expression. Please be sure that your regular
expression works as expected. You can use an online tool like `regex101`_ in
order to test your regular expression.
.. _regex101: https://regex101.com/
You also can automatically hide interface with no traffic using the
``hide_zero`` configuration key. The optional ``hide_threshold_bytes`` option
can also be used to set a threshold higher than zero.
.. code-block:: ini
[network]
hide_zero=True
hide_threshold_bytes=0
.. _regex101: https://regex101.com/

View File

@ -102,7 +102,8 @@ Columns display
``CPU%`` % of CPU used by the process
If Irix/Solaris mode is off ('0' key), the value
is divided by logical core number
is divided by logical core number (the column
name became CPUi)
``MEM%`` % of MEM used by the process (RES divided by
the total RAM you have)
``VIRT`` Virtual Memory Size
@ -123,6 +124,7 @@ Columns display
The non-swapped physical memory a process is
using (what's currently in the physical memory).
``PID`` Process ID (column is replaced by NPROCS in accumulated mode)
``NPROCS`` Number of process + childs (only in accumulated mode)
``USER`` User ID
``THR`` Threads number of the process
``TIME+`` Cumulative CPU time used by the process
@ -147,12 +149,24 @@ Columns display
pressing on the ``'/'`` key
========================= ==============================================
Disable display of virtual memory
---------------------------------
It's possible to disable the display of the VIRT column (virtual memory) by adding the
``disable_virtual_memory=True`` option in the ``[processlist]`` section of the configuration
file (glances.conf):
.. code-block:: ini
[processlist]
disable_virtual_memory=True
Process filtering
-----------------
It's possible to filter the processes list using the ``ENTER`` key.
Filter syntax is the following (examples):
Glances filter syntax is the following (examples):
- ``python``: Filter processes name or command line starting with
*python* (regexp)
@ -161,6 +175,25 @@ Filter syntax is the following (examples):
- ``username:nicolargo``: Processes of nicolargo user (key:regexp)
- ``cmdline:\/usr\/bin.*``: Processes starting by */usr/bin*
Process focus
-------------
It's also possible to select a processes list to focus on.
A list of Glances filters (see upper) can be define from the command line:
.. code-block:: bash
glances --process-focus .*python.*,.*firefox.*
or the glances.conf file:
.. code-block:: ini
[processlist]
focus=.*python.*,.*firefox.*
Extended info
-------------
@ -190,7 +223,7 @@ In curses/standalone mode, you can select a process using ``UP`` and ``DOWN`` an
.. note::
Limit for CPU and MEM percent values can be overwritten in the
configuration file under the ``[processlist]`` section. It is also
possible to define limit for Nice values (comma separated list).
possible to define limit for Nice values (comma-separated list).
For example: nice_warning=-20,-19,-18
Accumulated per program — key 'j'
@ -199,4 +232,67 @@ Accumulated per program — key 'j'
When activated ('j' hotkey or --programs option in the command line), processes are merged
to display which programs are active. The columns show the accumulated cpu consumption, the
accumulated virtual and resident memory consumption, the accumulated transferred data I/O.
The PID columns is replaced by a NPROCS column which is the number of processes.
The PID columns is replaced by a NPROCS column which is the number of processes.
Export process
--------------
Glances version 4 introduces a new feature to export specifics processes. In order to use this
feature, you need to use the export option in the processlist section of the Glances configuration
file or the --export-process-filter option in the command line.
The export option is a list of Glances filters.
Example number one, export all processes named 'python' (or with a command line containing 'python'):
.. code-block:: ini
[processlist]
export=.*python.*
Note: or the --export-process-filter ".*python.*" option in the command line.
Example number two, export all processes with the name 'python' or 'bash':
.. code-block:: ini
[processlist]
export=.*python.*,.*bash.*
Note: or the --export-process-filter ".*python.*,.*bash.*" option in the command line.
Example number three, export all processes belong to 'nicolargo' user:
.. code-block:: ini
[processlist]
export=username:nicolargo
Note: or the --export-process-filter "username:nicolargo" option in the command line.
The output of the export use the PID as the key (for example if you want to export firefox process
to a CSV file):
Configuration file (glances.conf):
.. code-block:: ini
[processlist]
export=.*firefox.*
Note: or the --export-process-filter ".*firefox.*" option in the command line.
Command line example:
.. code-block:: bash
glances -C ./conf/glances.conf --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin processlist --quiet
the result will be:
.. code-block:: csv
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

View File

@ -4,7 +4,7 @@ Quick Look
==========
The ``quicklook`` plugin is only displayed on wide screen and proposes a
bar view for CPU and memory (virtual and swap).
bar view for cpu, memory, swap and load (this list is configurable).
In the terminal interface, click on ``3`` to enable/disable it.
@ -27,10 +27,14 @@ client/server mode (see issue ).
Limit values can be overwritten in the configuration file under
the ``[quicklook]`` section.
You can also configure the percentage char used in the terminal user interface.
You can also configure the stats list and the bat character used in the
user interface.
.. code-block:: ini
[quicklook]
# Stats list (default is cpu,mem,load)
# Available stats are: cpu,mem,load,swap
list=cpu,mem,load
# Graphical percentage char used in the terminal user interface (default is |)
percentage_char=@
bar_char=|

View File

@ -8,7 +8,14 @@ RAID
*Dependency: this plugin uses the optional pymdstat Python lib*
This plugin is disable by default, please use the --enable-plugin raid option
to enable it.
to enable it or enable it in the glances.conf file:
.. code-block:: ini
[raid]
# Documentation: https://glances.readthedocs.io/en/latest/aoa/raid.html
# This plugin is disabled by default
disable=False
In the terminal interface, click on ``R`` to enable/disable it.

View File

@ -13,30 +13,45 @@ Glances can display the sensors information using ``psutil``,
- hard disk temperature
- battery capacity
There is no alert on this information.
Limit values and sensors alias names can be defined in the configuration
file under the ``[sensors]`` section.
Limit can be defined for a specific sensor, a type of sensor or defineby the system
thresholds (default behavor).
.. code-block:: ini
[sensors]
# Sensors core thresholds (in Celsius...)
# By default values are grabbed from the system
# Overwrite thresholds for a specific sensor
temperature_core_Ambient_careful=45
temperature_core_Ambient_warning=65
temperature_core_Ambient_critical=80
temperature_core_Ambient_log=False
# Overwrite thresholds for a specific type of sensor
#temperature_core_careful=45
#temperature_core_warning=65
#temperature_core_critical=80
#alias=temp1:Motherboard 0,core 0:CPU Core 0
.. note 1::
Limit values and sensors alias names can be defined in the
configuration file under the ``[sensors]`` section.
.. note 2::
The support for multiple batteries is only available if
you have the batinfo Python lib installed on your system
because for the moment PSUtil only support one battery.
.. note 3::
.. note 2::
If a sensors has temperature and fan speed with the same name unit,
it is possible to alias it using:
unitname_temperature_core_alias=Alias for temp
unitname_fan_speed_alias=Alias for fan speed
alias=unitname_temperature_core_alias:Alias for temp,unitname_fan_speed_alias:Alias for fan speed
.. note 4::
.. note 3::
If a sensors has multiple identical features names (see #2280), then
Glances will add a suffix to the feature name.
For example, if you have one sensor with two Composite features, the
second one will be named Composite_1.
.. note 5::
.. note 4::
The plugin could crash on some operating system (FreeBSD) with the
TCP or UDP blackhole option > 0 (see issue #2106). In this case, you
should disable the sensors (--disable-plugin sensors or from the

View File

@ -22,3 +22,33 @@ How to read the information:
.. warning::
This plugin needs administrator rights. Please run Glances as root/admin.
Also, you can hide driver using regular expressions.
To hide device you should use the hide option:
.. code-block:: ini
[smart]
hide=.*Hide_this_device.*
It is also possible to configure a white list of devices to display.
Example to show only the specified drive:
.. code-block:: ini
[smart]
show=.*Show_this_device.*
Filtering is based on regular expression. Please be sure that your regular
expression works as expected. You can use an online tool like `regex101`_ in
order to test your regular expression.
.. _regex101: https://regex101.com/
You can also hide attributes, for example Self-tests, Errors, etc. Use a comma separated list.
.. code-block:: ini
[smart]
hide_attributes=attribute_name1,attribute_name2

36
docs/aoa/vms.rst Normal file
View File

@ -0,0 +1,36 @@
.. _vms:
VMs
===
Glances ``vms`` plugin is designed to display stats about VMs ran on the host.
It's actually support two engines: `Multipass` and `Virsh`.
No Python dependency is needed but Multipass and Virsh binary should be available:
- multipass should be executable from /snap/bin/multipass
- virsh should be executable from /usr/bin/virsh
Note: CPU information is not availble for Multipass VM. Load is not available for Virsh VM.
Configuration file options:
.. code-block:: ini
[vms]
disable=True
# Define the maximum VMs size name (default is 20 chars)
max_name_size=20
# By default, Glances only display running VMs with states:
# 'Running', 'Paused', 'Starting' or 'Restarting'
# Set the following key to True to display all VMs regarding their states
all=False
You can use all the variables ({{foo}}) available in the containers plugin.
Filtering (for hide or show) is based on regular expression. Please be sure that your regular
expression works as expected. You can use an online tool like `regex101`_ in
order to test your regular expression.
.. _Multipass: https://canonical.com/multipass
.. _Virsh: https://www.libvirt.org/manpages/virsh.html

View File

@ -3,32 +3,22 @@
Wi-Fi
=====
*Availability: Linux*
*Availability: Linux (with an /proc/net/wireless file) only*
.. image:: ../_static/wifi.png
Glances displays the Wi-Fi hotspot names and signal quality. If Glances
is ran as root, then all the available hotspots are displayed.
.. note::
You need to install the ``wireless-tools`` package on your system.
In the configuration file, you can define signal quality thresholds:
- ``"Poor"`` quality is between -100 and -85dBm
- ``"Good"`` quality between -85 and -60dBm
- ``"Excellent"`` between -60 and -40dBm
It's also possible to disable the scan on a specific interface from the
configuration file (``[wifi]`` section). For example, if you want to
hide the loopback interface (lo) and all the virtual docker interfaces:
Thresholds for the signal quality can be defined in the configuration file:
.. code-block:: ini
[wifi]
hide=lo,docker.*
#show=wlp2s0
# Define SIGNAL thresholds in dBm (lower is better...)
disable=False
careful=-65
warning=-75
critical=-85

File diff suppressed because it is too large Load Diff

1
docs/api/openapi.json Normal file

File diff suppressed because one or more lines are too long

1570
docs/api/python.rst Normal file

File diff suppressed because it is too large Load Diff

1781
docs/api/restful.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,5 @@
#!/bin/sh
make clean
make html
LC_ALL=C make man

View File

@ -12,35 +12,43 @@ Command-Line Options
.. option:: -V, --version
show program's version number and exit
show the program's version number and exit
.. option:: -d, --debug
enable debug mode
.. option:: --print-completion
generate shell tab completion scripts for Glances CLI
.. option:: -C CONF_FILE, --config CONF_FILE
path to the configuration file
.. option:: -P PLUGIN_DIRECTORY, --plugins PLUGIN_DIRECTORY
path to a directory containing additional plugins
.. option:: --modules-list
display modules (plugins & exports) list and exit
.. option:: --disable-plugin PLUGIN
disable PLUGIN (comma separated list)
disable PLUGIN (comma-separated list)
.. option:: --enable-plugin PLUGIN
enable PLUGIN (comma separated list)
enable PLUGIN (comma-separated list)
.. option:: --stdout PLUGINS_STATS
display stats to stdout (comma separated list of plugins/plugins.attribute)
display stats to stdout (comma-separated list of plugins/plugins.attribute)
.. option:: --export EXPORT
enable EXPORT module (comma separated list)
enable EXPORT module (comma-separated list)
.. option:: --export-csv-file EXPORT_CSV_FILE
@ -60,7 +68,7 @@ Command-Line Options
.. option:: --light, --enable-light
light mode for Curses UI (disable all but top menu)
light mode for Curses UI (disable all but the top menu)
.. option:: -0, --disable-irix
@ -84,7 +92,7 @@ Command-Line Options
.. option:: -5, --disable-top
disable top menu (QuickLook, CPU, MEM, SWAP and LOAD)
disable top menu (QuickLook, CPU, MEM, SWAP, and LOAD)
.. option:: -6, --meangpu
@ -116,7 +124,8 @@ Command-Line Options
.. option:: --browser
start the client browser (list of servers)
start TUI Central Glances Browser
use --browser -w to start WebUI Central Glances Browser
.. option:: --disable-autodiscover
@ -168,7 +177,7 @@ Command-Line Options
.. option:: -w, --webserver
run Glances in web server mode (bottle lib needed)
run Glances in web server mode (FastAPI lib needed)
.. option:: --cached-time CACHED_TIME
@ -192,11 +201,11 @@ Command-Line Options
.. option:: --hide-kernel-threads
hide kernel threads in process list (not available on Windows)
hide kernel threads in the process list (not available on Windows)
.. option:: -b, --byte
display network rate in byte per second
display network rate in bytes per second
.. option:: --diskio-show-ramfs
@ -216,11 +225,11 @@ Command-Line Options
.. option:: --theme-white
optimize display colors for white background
optimize display colors for a white background
.. option:: --disable-check-update
disable online Glances version ckeck
disable online Glances version check
Interactive Commands
--------------------
@ -232,7 +241,7 @@ The following commands (key pressed) are supported while in Glances:
.. note:: On macOS please use ``CTRL-H`` to delete filter.
Filter is a regular expression pattern:
The filter is a regular expression pattern:
- ``gnome``: matches all processes starting with the ``gnome``
string
@ -250,7 +259,7 @@ The following commands (key pressed) are supported while in Glances:
- If CPU iowait ``>60%``, sort processes by I/O read and write
``A``
Enable/disable Application Monitoring Process
Enable/disable the Application Monitoring Process
``b``
Switch between bit/s or Byte/s for network I/O
@ -274,7 +283,7 @@ The following commands (key pressed) are supported while in Glances:
Enable/disable top extended stats
``E``
Erase current process filter
Erase the current process filter
``f``
Show/hide file system and folder monitoring stats
@ -301,7 +310,7 @@ The following commands (key pressed) are supported while in Glances:
Increase selected process nice level / Lower the priority (need right) - Only in standalone mode.
``-``
Decrease selected process nice level / Higher the priority (need right) - Only in standalone mode.
Decrease selected process nice level / Higher the priority (need right) - Only in standalone mode.
``k``
Kill selected process (need right) - Only in standalone mode.
@ -343,7 +352,7 @@ The following commands (key pressed) are supported while in Glances:
Show/hide RAID plugin
``s``
Show/hide sensors stats
Show/hide sensors plugin
``S``
Enable/disable spark lines
@ -352,7 +361,7 @@ The following commands (key pressed) are supported while in Glances:
Sort process by CPU times (TIME+)
``T``
View network I/O as combination
View network I/O as a combination
``u``
Sort processes by USER
@ -360,6 +369,9 @@ The following commands (key pressed) are supported while in Glances:
``U``
View cumulative network I/O
``V``
Show/hide VMS plugin
``w``
Delete finished warning log messages
@ -375,13 +387,13 @@ The following commands (key pressed) are supported while in Glances:
``0``
Enable/disable Irix/Solaris mode
Task's CPU usage will be divided by the total number of CPUs
The task's CPU usage will be divided by the total number of CPUs
``1``
Switch between global CPU and per-CPU stats
``2``
Enable/disable left sidebar
Enable/disable the left sidebar
``3``
Enable/disable the quick look module
@ -390,7 +402,7 @@ The following commands (key pressed) are supported while in Glances:
Enable/disable all but quick look and load module
``5``
Enable/disable top menu (QuickLook, CPU, MEM, SWAP and LOAD)
Enable/disable the top menu (QuickLook, CPU, MEM, SWAP, and LOAD)
``6``
Enable/disable mean GPU mode
@ -401,14 +413,20 @@ The following commands (key pressed) are supported while in Glances:
``/``
Switch between process command line or command name
``F5``
Refresh stats in curses user interface
``F5`` or ``CTRL-R``
Refresh user interface
``SHIFT-LEFT``
Navigation left through the process sort
``SHIFT-RIGHT``
Navigation right through the process sort
``LEFT``
Navigation leff through process sort
Navigation left through the process name
``RIGHT``
Navigation right through process sort
Navigation right through the process name
``UP``
Up in the processes list

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
#
# Glances documentation build configuration file, created by
# sphinx-quickstart on Tue Mar 1 10:53:59 2016.
@ -12,8 +11,8 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import sys
from datetime import datetime
# If extensions (or modules to document with autodoc) are in another directory,
@ -27,7 +26,6 @@ sys.path.insert(0, os.path.abspath('..'))
# WARNING: Do not move this import before the sys.path.insert() call.
from glances import __version__
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
@ -60,7 +58,7 @@ try:
year = datetime.utcfromtimestamp(int(os.environ['SOURCE_DATE_EPOCH'])).year
except (KeyError, ValueError):
year = datetime.now().year
copyright = '%d, %s' % (year, author)
copyright = f'{year}, {author}'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@ -125,8 +123,7 @@ html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
}
html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
@ -166,14 +163,7 @@ html_static_path = ['_static']
# html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': [
'about.html',
'navigation.html',
'links.html',
'searchbox.html'
]
}
html_sidebars = {'**': ['about.html', 'navigation.html', 'links.html', 'searchbox.html']}
# Additional templates that should be rendered to pages, maps page names to
# template names.
@ -227,13 +217,10 @@ htmlhelp_basename = 'Glancesdoc'
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
# 'preamble': '',
# Latex figure (float) alignment
# 'figure_align': 'htbp',
}
@ -242,8 +229,7 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'Glances.tex', 'Glances Documentation',
'Nicolas Hennion', 'manual'),
(master_doc, 'Glances.tex', 'Glances Documentation', 'Nicolas Hennion', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@ -271,10 +257,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('glances', 'glances', 'An eye on your system',
'', 1)
]
man_pages = [('glances', 'glances', 'An eye on your system', '', 1)]
# If true, show URL addresses after external links.
# man_show_urls = False
@ -286,9 +269,15 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'Glances', 'Glances Documentation',
author, 'Glances', 'One line description of project.',
'Miscellaneous'),
(
master_doc,
'Glances',
'Glances Documentation',
author,
'Glances',
'One line description of project.',
'Miscellaneous',
),
]
# Documents to append as an appendix to all manuals.

View File

@ -5,7 +5,7 @@ Configuration
No configuration file is mandatory to use Glances.
Furthermore a configuration file is needed to access more settings.
Furthermore, a configuration file is needed to access more settings.
Location
--------
@ -14,25 +14,26 @@ Location
A template is available in the ``/usr{,/local}/share/doc/glances``
(Unix-like) directory or directly on `GitHub`_.
You can put your own ``glances.conf`` file in the following locations:
You can place your ``glances.conf`` file in the following locations:
==================== =============================================================
``Linux``, ``SunOS`` ~/.config/glances/, /etc/glances/, /usr/share/docs/glances/
``*BSD`` ~/.config/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/
``macOS`` ~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/
``Linux``, ``SunOS`` ~/.config/glances/, /etc/glances/, /usr/share/doc/glances/
``*BSD`` ~/.config/glances/, /usr/local/etc/glances/, /usr/share/doc/glances/
``macOS`` ~/.config/glances/, ~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/doc/glances/
``Windows`` %APPDATA%\\glances\\glances.conf
``All`` + <venv_root_folder>/share/doc/glances/
==================== =============================================================
- On Windows XP, ``%APPDATA%`` is: ``C:\Documents and Settings\<USERNAME>\Application Data``.
- On Windows Vista and later: ``C:\Users\<USERNAME>\AppData\Roaming``.
User-specific options override system-wide options and options given on
the command line override either.
User-specific options override system-wide options, and options given on
the command line overrides both.
Syntax
------
Glances reads configuration files in the *ini* syntax.
Glances read configuration files in the *ini* syntax.
A first section (called global) is available:
@ -40,17 +41,67 @@ A first section (called global) is available:
[global]
# Refresh rate (default is a minimum of 2 seconds)
# Can be overwrite by the -t <sec> option
# It is also possible to overwrite it in each plugin sections
# Can be overwritten by the -t <sec> option
# It is also possible to overwrite it in each plugin section
refresh=2
# Does Glances should check if a newer version is available on PyPI ?
check_update=false
# Should Glances check if a newer version is available on PyPI ?
check_update=true
# History size (maximum number of values)
# Default is 28800: 1 day with 1 point every 3 seconds
history_size=28800
# Default is 1200 values (~1h with the default refresh rate)
history_size=1200
# Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z)
#strftime_format="%Y-%m-%d %H:%M:%S %Z"
# Define external directory for loading additional plugins
# The layout follows the glances standard for plugin definitions
#plugin_dir=/home/user/dev/plugins
Each plugin, export module and application monitoring process (AMP) can
have a section. Below an example for the CPU plugin:
than a second one concerning the user interface:
.. code-block:: ini
[outputs]
# Options for all UIs
#--------------------
# Separator in the Curses and WebUI interface (between top and others plugins)
separator=True
# Set the the Curses and WebUI interface left menu plugin list (comma-separated)
#left_menu=network,wifi,connections,ports,diskio,fs,irq,folders,raid,smart,sensors,now
# Limit the number of processes to display (in the WebUI)
max_processes_display=25
# Options for WebUI
#------------------
# Set URL prefix for the WebUI and the API
# Example: url_prefix=/glances/ => http://localhost/glances/
# Note: The final / is mandatory
# Default is no prefix (/)
#url_prefix=/glances/
# Set root path for WebUI statics files
# Why ? On Debian system, WebUI statics files are not provided.
# You can download it in a specific folder
# thanks to https://github.com/nicolargo/glances/issues/2021
# then configure this folder with the webui_root_path key
# Default is folder where glances_restful_api.py is hosted
#webui_root_path=
# CORS options
# Comma separated list of origins that should be permitted to make cross-origin requests.
# Default is *
#cors_origins=*
# Indicate that cookies should be supported for cross-origin requests.
# Default is True
#cors_credentials=True
# Comma separated list of HTTP methods that should be allowed for cross-origin requests.
# Default is *
#cors_methods=*
# Comma separated list of HTTP request headers that should be supported for cross-origin requests.
# Default is *
#cors_headers=*
# Define SSL files (keyfile_password is optional)
#ssl_keyfile=./glances.local+3-key.pem
#ssl_keyfile_password=kfp
#ssl_certfile=./glances.local+3.pem
Each plugin, export module, and application monitoring process (AMP) can
have a section. Below is an example for the CPU plugin:
.. code-block:: ini
@ -90,16 +141,16 @@ or a Nginx AMP:
.. code-block:: ini
[amp_nginx]
# Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/)
# Nginx status page should be enabled (https://easyengine.io/tutorials/nginx/status-page/)
enable=true
regex=\/usr\/sbin\/nginx
refresh=60
one_line=false
status_url=http://localhost/nginx_status
With Glances 3.0 or higher it is also possible to use dynamic configuration
value using system command. For example, if you to set the prefix of an
InfluxDB export to the current hostname, use:
With Glances 3.0 or higher, you can use dynamic configuration values
by utilizing system commands. For example, if you want to set the prefix
of an InfluxDB export to the current hostname, use:
.. code-block:: ini
@ -120,16 +171,17 @@ Logging
Glances logs all of its internal messages to a log file.
``DEBUG`` messages can been logged using the ``-d`` option on the command
``DEBUG`` messages can be logged using the ``-d`` option on the command
line.
The location of the Glances depends of your operating system. You could
displayed the Glances log file full path using the``glances -V`` command line.
The location of the Glances log file depends on your operating system. You can
display the full path of the Glances log file using the ``glances -V``
command line.
The file is automatically rotate when the size is higher than 1 MB.
The file is automatically rotated when its size exceeds 1 MB.
If you want to use another system path or change the log message, you
can use your own logger configuration. First of all, you have to create
can use your logger configuration. First of all, you have to create
a ``glances.json`` file with, for example, the following content (JSON
format):
@ -201,7 +253,7 @@ and start Glances using the following command line:
LOG_CFG=<path>/glances.json glances
.. note::
Replace ``<path>`` by the folder where your ``glances.json`` file
Replace ``<path>`` with the directory where your ``glances.json`` file
is hosted.
.. _GitHub: https://raw.githubusercontent.com/nicolargo/glances/master/conf/glances.conf

View File

@ -3,26 +3,59 @@
Docker
======
Glances can be installed through Docker, allowing you to run it without installing all the python dependencies directly on your system. Once you have [docker installed](https://docs.docker.com/install/), you can
Glances can be installed through Docker, allowing you to run it without
installing all the Python dependencies directly on your system. Once you
have `docker installed <https://docs.docker.com/install/>`_, you can
Get the Glances container:
.. code-block:: console
docker pull nicolargo/glances:<version>
docker pull nicolargo/glances:<version or tag>
Available tags (all images are based on both Alpine and Ubuntu Operating System):
Available tags (all images are based on both Alpine and Ubuntu Operating Systems):
- *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)
.. list-table::
:widths: 25 15 25 35
:header-rows: 1
* - Image Tag
- OS
- Target
- Installed Dependencies
* - `latest-full`
- Alpine
- Latest Release
- Full
* - `latest`
- Alpine
- Latest Release
- Minimal + (FastAPI & Docker)
* - `dev`
- Alpine
- develop
- Full
* - `ubuntu-latest-full`
- Ubuntu
- Latest Release
- Full
* - `ubuntu-latest`
- Ubuntu
- Latest Release
- Minimal + (FastAPI & Docker)
* - `ubuntu-dev`
- Ubuntu
- develop
- Full
.. warning::
Tags containing `dev` directly target the `develop` branch and could be unstable.
For example, if you want a full Alpine Glances image (latest release) with all dependencies, go for `latest-full`.
You can also specify a version (example: 3.4.0). All available versions can be found on `DockerHub`_.
An Example to pull the `latest` tag:
An example of how to pull the `latest` tag:
.. code-block:: console
@ -32,7 +65,7 @@ Run the container in *console mode*:
.. code-block:: console
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it docker.io/nicolargo/glances
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it docker.io/nicolargo/glances
Additionally, if you want to use your own glances.conf file, you can create your own Dockerfile:
@ -46,19 +79,27 @@ Alternatively, you can specify something along the same lines with docker run op
.. code-block:: console
docker run -v `pwd`/glances.conf:/glances/conf/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -it docker.io/nicolargo/glances
docker run -v `pwd`/glances.conf:/etc/glances/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -it docker.io/nicolargo/glances
Where \`pwd\`/glances.conf is a local directory containing your glances.conf file.
Glances by default uses the container's OS information in the UI. If you want to display the host's OS info, you can do that by mounting `/etc/os-release` into the container.
Here is a simple docker run example for that:
.. code-block:: console
docker run -v /etc/os-release:/etc/os-release:ro docker.io/nicolargo/glances
Run the container in *Web server mode* (notice the `GLANCES_OPT` environment variable setting parameters for the glances startup command):
.. code-block:: console
docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host docker.io/nicolargo/glances
docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host docker.io/nicolargo/glances
Note: if you want to see the network interface stats within the container, add --net=host --privileged
You can also include Glances container in you own `docker-compose.yml`. Here's a realistic example including a "traefik" reverse proxy serving an "whoami" app container plus a Glances container, providing a simple and efficient monitoring webui.
You can also include Glances container in you own `docker-compose.yml`. A realistic example includes a "traefik" reverse proxy serving an "whoami" app container plus a Glances container, providing a simple and efficient monitoring webui.
.. code-block:: console
@ -80,11 +121,13 @@ You can also include Glances container in you own `docker-compose.yml`. Here's a
- "traefik.frontend.rule=Host:whoami.docker.localhost"
monitoring:
image: nicolargo/glances:latest-alpine
image: nicolargo/glances:latest
restart: always
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# Uncomment the below line if you want glances to display host OS detail instead of container's
# - /etc/os-release:/etc/os-release:ro
environment:
- "GLANCES_OPT=-w"
labels:
@ -111,6 +154,8 @@ and generate the password file (the default login is ``glances``, add the ``--us
glances -s --password
Note: or ``glances -w --password`` for the web server mode.
which will prompt you to answer the following questions:
.. code-block:: console
@ -142,9 +187,11 @@ and make it visible to your container by adding it to ``docker-compose.yml`` as
image: nicolargo/glances:latest
restart: always
environment:
- GLANCES_OPT="-w --password"
- "GLANCES_OPT=-w --password"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# Uncomment the below line if you want glances to display host OS detail instead of container's
# - /etc/os-release:/etc/os-release:ro
pid: host
secrets:
- source: glances_password
@ -204,6 +251,8 @@ Include the `deploy` section in compose file as specified below in the example s
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# Uncomment the below line if you want glances to display host OS detail instead of container's
# - /etc/os-release:/etc/os-release:ro
environment:
- "GLANCES_OPT=-w"
# For nvidia GPUs

View File

@ -3,8 +3,51 @@
F.A.Q
=====
*Any encoding issue ?*
Any encoding issue ?
--------------------
Try to run Glances with the following command line:
LANG=en_US.UTF-8 LC_ALL= glances
Container memory stats not displayed ?
--------------------------------------
On ARM64, Docker needs to be configured to allow access to the memory stats.
Edit the /boot/firmware/cmdline.txt and add the following configuration key:
cgroup_enable=memory
Netifaces issue ?
-----------------
Previously, Glances uses Netifaces to get network interfaces information.
Now, Glances uses Netifaces2.
Please uninstall Netifaces and install Netifaces2 instead.
Extra note: Glances 4.5 or higher do not use Netifaces/Netifaces2 anymore.
On Debian/Ubuntu Operating Systems, Webserver display a blank screen ?
----------------------------------------------------------------------
For some reason, the Glances Debian/Ubuntu packages do not include the Web UI static files.
Please read: https://github.com/nicolargo/glances/issues/2021 for workaround and more information.
Glances said that my computer has no free memory, is it normal ?
----------------------------------------------------------------
On Linux, Glances shows by default the free memory.
Free memory can be low, it's a "normal" behavior because Linux uses free memory for disk caching
to improve performance. More information can be found here: https://linuxatemyram.com/.
If you want to display the "available" memory instead of the "free" memory, you can uses the
the following configuration key in the Glances configuration file:
[mem]
# Display available memory instead of used memory
available=True

46
docs/fetch.rst Normal file
View File

@ -0,0 +1,46 @@
.. _fetch:
Fetch
=====
The fetch mode is used to get and share a quick look of a machine using the
``fetch`` option. In this mode, current stats are displayed on the console in
a fancy way.
.. code-block:: console
$ glances --fetch
Results look like this:
.. image:: _static/screenshot-fetch.png
It is also possible to use a custom template with the ``--fetch-template </path/to/template.jinja>`` option.
Some examples are provided in the ``conf/fetch-templates/`` directory. Please feel free to
customize them or create your own template (contribution via PR are welcome).
The format of the template is based on the Jinja2 templating engine and can use all the stats
available in Glances through the ``gl`` variable (an instance of the :ref:`Glances Python API<api>`).
For example, the default template is define as:
.. code-block:: jinja
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ {{ gl.system['hostname'] }}{{ ' - ' + gl.ip['address'] if gl.ip['address'] else '' }}
⚙️ {{ gl.system['hr_name'] }} | Uptime: {{ gl.uptime }}
💡 LOAD {{ '%0.2f'| format(gl.load['min1']) }} {{ '%0.2f'| format(gl.load['min5']) }} {{ '%0.2f'| format(gl.load['min15']) }}
⚡ CPU {{ gl.bar(gl.cpu['total']) }} {{ gl.cpu['total'] }}% of {{ gl.core['log'] }} cores
🧠 MEM {{ gl.bar(gl.mem['percent']) }} {{ gl.mem['percent'] }}% ({{ gl.auto_unit(gl.mem['used']) }} {{ gl.auto_unit(gl.mem['total']) }})
{% for fs in gl.fs.keys() %}💾 {% if loop.index == 1 %}DISK{% else %} {% endif %} {{ gl.bar(gl.fs[fs]['percent']) }} {{ gl.fs[fs]['percent'] }}% ({{ gl.auto_unit(gl.fs[fs]['used']) }} {{ gl.auto_unit(gl.fs[fs]['size']) }}) for {{ fs }}
{% endfor %}{% for net in gl.network.keys() %}📡 {% if loop.index == 1 %}NET{% else %} {% endif %} ↓ {{ gl.auto_unit(gl.network[net]['bytes_recv_rate_per_sec']) }}b/s ↑ {{ gl.auto_unit(gl.network[net]['bytes_sent_rate_per_sec']) }}b/s for {{ net }}
{% endfor %}
🔥 TOP PROCESS by CPU
{% for process in gl.top_process() %}{{ loop.index }}️⃣ {{ process['name'][:20] }}{{ ' ' * (20 - process['name'][:20] | length) }} ⚡ {{ process['cpu_percent'] }}% CPU{{ ' ' * (8 - (gl.auto_unit(process['cpu_percent']) | length)) }} 🧠 {{ gl.auto_unit(process['memory_info']['rss']) }}B MEM
{% endfor %}
🔥 TOP PROCESS by MEM
{% for process in gl.top_process(sorted_by='memory_percent', sorted_by_secondary='cpu_percent') %}{{ loop.index }}️⃣ {{ process['name'][:20] }}{{ ' ' * (20 - process['name'][:20] | length) }} 🧠 {{ gl.auto_unit(process['memory_info']['rss']) }}B MEM{{ ' ' * (7 - (gl.auto_unit(process['memory_info']['rss']) | length)) }} ⚡ {{ process['cpu_percent'] }}% CPU
{% endfor %}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

View File

@ -11,12 +11,12 @@ SYNOPSIS
DESCRIPTION
-----------
**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. It can adapt dynamically the displayed information
depending on the terminal size. It can also work in client/server mode.
Remote monitoring could be done via terminal or web interface.
**glances** is a cross-platform curses-based monitoring tool that aims
to present a maximum of information in a minimum of space, ideally fitting
in a classic 80x24 terminal or larger for more details. It can adapt
dynamically to the displayed information depending on the terminal size.
It can also work in client/server mode.
Remote monitoring can be performed via a terminal or web interface.
**glances** is written in Python and uses the *psutil* library to get
information from your system.
@ -34,23 +34,25 @@ CONFIGURATION
EXAMPLES
--------
Monitor local machine (standalone mode):
Monitor local machine, also called standalone mode,
with the Text-based user interface (TUI):
$ glances
Monitor local machine with the web interface (Web UI), run the following command line:
To monitor the local machine with the Web user interface (WebUI),
, run the following command line:
$ glances -w
and open a Web browser with the returned URL
then, open a Web Browser to the provided URL.
Monitor local machine and export stats to a CSV file:
$ glances --export csv --export-csv-file /tmp/glances.csv
Monitor local machine and export stats to a InfluxDB server with 5s
Monitor local machine and export stats to an InfluxDB server with 5s
refresh time (also possible to export to OpenTSDB, Cassandra, Statsd,
ElasticSearch, RabbitMQ and Riemann):
ElasticSearch, RabbitMQ, and Riemann):
$ glances -t 5 --export influxdb
@ -70,10 +72,16 @@ Connect to a Glances server and export stats to a StatsD server:
$ glances -c <ip_server> --export statsd
Start the client browser (browser mode):
Start the TUI Central Glances Browser:
$ glances --browser
Start the WebUI Central Glances Browser (new in Glances 4.3 or higher):
$ glances --browser -w
If you do not want to see the local Glances Web Server in the browser list please use --disable-autodiscover option.
AUTHOR
------

View File

@ -9,9 +9,9 @@ following:
.. code-block:: ini
[mongodb]
[couchdb]
host=localhost
port=27017
port=5984
db=glances
user=root
password=example
@ -20,24 +20,31 @@ and run Glances with:
.. code-block:: console
$ glances --export mongodb
$ glances --export couchdb
Documents are stored in native the configured database (glances by default)
with one collection per plugin.
Documents are stored in native ``JSON`` format. Glances adds ``"type"``
and ``"time"`` entries:
Example of MongoDB Document for the load stats:
- ``type``: plugin name
- ``time``: timestamp (format: "2016-09-24T16:39:08.524Z")
Example of Couch Document for the load stats:
.. code-block:: json
{
_id: ObjectId('63d78ffee5528e543ce5af3a'),
min1: 1.46337890625,
min5: 1.09619140625,
min15: 1.07275390625,
cpucore: 4,
history_size: 1200,
load_disable: 'False',
load_careful: 0.7,
load_warning: 1,
load_critical: 5
"_id": "36cbbad81453c53ef08804cb2612d5b6",
"_rev": "1-382400899bec5615cabb99aa34df49fb",
"min15": 0.33,
"time": "2016-09-24T16:39:08.524Z",
"min5": 0.4,
"cpucore": 4,
"load_warning": 1,
"min1": 0.5,
"history_size": 28800,
"load_critical": 5,
"type": "load",
"load_careful": 0.7
}
You can view the result using the CouchDB utils URL: http://127.0.0.1:5984/_utils/database.html?glances.

110
docs/gw/duckdb.rst Normal file
View File

@ -0,0 +1,110 @@
.. _duckdb:
DuckDB
===========
DuckDB is an in-process SQL OLAP database management system.
You can export statistics to a ``DuckDB`` server.
The connection should be defined in the Glances configuration file as
following:
.. code-block:: ini
[duckdb]
# database defines where data are stored, can be one of:
# /path/to/glances.db (see https://duckdb.org/docs/stable/clients/python/dbapi#file-based-connection)
# :memory:glances (see https://duckdb.org/docs/stable/clients/python/dbapi#in-memory-connection)
# Or anyone else supported by the API (see https://duckdb.org/docs/stable/clients/python/dbapi)
database=/tmp/glances.db
and run Glances with:
.. code-block:: console
$ glances --export duckdb
Data model
-----------
The data model is composed of one table per Glances plugin.
Example:
.. code-block:: python
>>> import duckdb
>>> db = duckdb.connect(database='/tmp/glances.db', read_only=True)
>>> db.sql("SELECT * from cpu")
┌─────────────────────┬─────────────────┬────────┬────────┬────────┬───┬────────────────────┬─────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┐
│ time │ hostname_id │ total │ user │ nice │ … │ cpu_iowait_warning │ cpu_iowait_critical │ cpu_ctx_switches_c… │ cpu_ctx_switches_w… │ cpu_ctx_switches_c… │
│ time with time zone │ varchar │ double │ double │ double │ │ double │ double │ double │ double │ double │
├─────────────────────┼─────────────────┼────────┼────────┼────────┼───┼────────────────────┼─────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┤
│ 11:50:25+00 │ nicolargo-xps15 │ 8.0 │ 5.6 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:27+00 │ nicolargo-xps15 │ 4.3 │ 3.2 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:29+00 │ nicolargo-xps15 │ 4.3 │ 3.2 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:31+00 │ nicolargo-xps15 │ 14.9 │ 15.7 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:33+00 │ nicolargo-xps15 │ 14.9 │ 15.7 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:35+00 │ nicolargo-xps15 │ 8.2 │ 7.8 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:37+00 │ nicolargo-xps15 │ 8.2 │ 7.8 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:39+00 │ nicolargo-xps15 │ 12.7 │ 10.3 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:41+00 │ nicolargo-xps15 │ 12.7 │ 10.3 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:50:43+00 │ nicolargo-xps15 │ 12.2 │ 10.3 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ 11:51:29+00 │ nicolargo-xps15 │ 10.1 │ 7.4 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:32+00 │ nicolargo-xps15 │ 10.1 │ 7.4 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:34+00 │ nicolargo-xps15 │ 6.6 │ 4.9 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:36+00 │ nicolargo-xps15 │ 6.6 │ 4.9 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:38+00 │ nicolargo-xps15 │ 9.9 │ 7.5 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:40+00 │ nicolargo-xps15 │ 9.9 │ 7.5 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:42+00 │ nicolargo-xps15 │ 4.0 │ 3.1 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:44+00 │ nicolargo-xps15 │ 4.0 │ 3.1 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:46+00 │ nicolargo-xps15 │ 11.1 │ 8.8 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
│ 11:51:48+00 │ nicolargo-xps15 │ 11.1 │ 8.8 │ 0.0 │ … │ 5.625 │ 6.25 │ 640000.0 │ 720000.0 │ 800000.0 │
├─────────────────────┴─────────────────┴────────┴────────┴────────┴───┴────────────────────┴─────────────────────┴──────────────────────┴──────────────────────┴──────────────────────┤
│ 41 rows (20 shown) 47 columns (10 shown) │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
>>> db.sql("SELECT * from cpu").fetchall()[0]
(datetime.time(11, 50, 25, tzinfo=datetime.timezone.utc), 'nicolargo-xps15', 8.0, 5.6, 0.0, 2.3, 91.9, 0.1, 0.0, 0.0, 0.0, 0, 0, 0, 0, 16, 2.4103684425354004, 90724823, 0, 63323797, 0, 30704572, 0, 0, 0, 1200.0, 65.0, 75.0, 85.0, True, 50.0, 70.0, 90.0, True, 50.0, 70.0, 90.0, True, 50.0, 70.0, 90.0, 5.0, 5.625, 6.25, 640000.0, 720000.0, 800000.0)
>>> db.sql("SELECT * from network")
┌─────────────────────┬─────────────────┬────────────────┬────────────┬────────────┬───┬─────────────────────┬────────────────┬────────────────────┬────────────────────┬───────────────────┐
│ time │ hostname_id │ key_id │ bytes_sent │ bytes_recv │ … │ network_tx_critical │ network_hide │ network_hide_no_up │ network_hide_no_ip │ network_hide_zero │
│ time with time zone │ varchar │ varchar │ int64 │ int64 │ │ double │ varchar │ boolean │ boolean │ boolean │
├─────────────────────┼─────────────────┼────────────────┼────────────┼────────────┼───┼─────────────────────┼────────────────┼────────────────────┼────────────────────┼───────────────────┤
│ 11:50:25+00 │ nicolargo-xps15 │ interface_name │ 407761 │ 32730 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:27+00 │ nicolargo-xps15 │ interface_name │ 2877 │ 4857 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:29+00 │ nicolargo-xps15 │ interface_name │ 44504 │ 32555 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:31+00 │ nicolargo-xps15 │ interface_name │ 1092285 │ 48600 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:33+00 │ nicolargo-xps15 │ interface_name │ 150119 │ 43805 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:35+00 │ nicolargo-xps15 │ interface_name │ 34424 │ 14825 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:37+00 │ nicolargo-xps15 │ interface_name │ 19382 │ 33614 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:39+00 │ nicolargo-xps15 │ interface_name │ 53060 │ 39780 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:41+00 │ nicolargo-xps15 │ interface_name │ 371914 │ 78626 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:50:43+00 │ nicolargo-xps15 │ interface_name │ 82356 │ 60612 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │ · │
│ 11:51:29+00 │ nicolargo-xps15 │ interface_name │ 3766 │ 9977 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:32+00 │ nicolargo-xps15 │ interface_name │ 188036 │ 18668 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:34+00 │ nicolargo-xps15 │ interface_name │ 543 │ 2451 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:36+00 │ nicolargo-xps15 │ interface_name │ 8247 │ 7275 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:38+00 │ nicolargo-xps15 │ interface_name │ 7252 │ 986 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:40+00 │ nicolargo-xps15 │ interface_name │ 172 │ 132 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:42+00 │ nicolargo-xps15 │ interface_name │ 8080 │ 6640 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:44+00 │ nicolargo-xps15 │ interface_name │ 19660 │ 17830 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:46+00 │ nicolargo-xps15 │ interface_name │ 1007030 │ 84170 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
│ 11:51:48+00 │ nicolargo-xps15 │ interface_name │ 128947 │ 18087 │ … │ 90.0 │ [docker.*, lo] │ true │ true │ true │
├─────────────────────┴─────────────────┴────────────────┴────────────┴────────────┴───┴─────────────────────┴────────────────┴────────────────────┴────────────────────┴───────────────────┤
│ 41 rows (20 shown) 28 columns (10 shown) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
.. _duckdb: https://duckdb.org/

View File

@ -3,8 +3,24 @@
Gateway To Other Services
=========================
Glances can exports stats to a CSV file. Also, it can act as a gateway
to providing stats to multiple services (see list below).
Glances can exports stats in files or to other services like databases, message queues, etc.
Each exporter has its own configuration options, which can be set in the Glances
configuration file (`glances.conf`).
A common options section is also available:
is the `exclude_fields` option, which allows you to specify
.. code-block:: ini
[export]
# Common section for all exporters
# Do not export following fields (comma separated list of regex)
exclude_fields=.*_critical,.*_careful,.*_warning,.*\.key$
This section describes the available exporters and how to configure them:
.. toctree::
:maxdepth: 2
@ -14,15 +30,18 @@ to providing stats to multiple services (see list below).
couchdb
elastic
graph
graphite
influxdb
json
kafka
mqtt
mongodb
nats
opentsdb
prometheus
rabbitmq
restful
riemann
statsd
timescaledb
zeromq

View File

@ -17,19 +17,19 @@ Glances InfluxDB data model:
+---------------+-----------------------+-----------------------+
| Measurement | Fields | Tags |
+===============+=======================+=======================+
| cpu | user | hostname |
| cpu | user | hostname |
| | system | |
| | iowait... | |
+---------------+-----------------------+-----------------------+
| network | read_bytes | hostname |
| | write_bytes | disk_name |
| | time_since_update... | |
|  | | |
| | | |
+---------------+-----------------------+-----------------------+
| diskio | rx | hostname |
| | tx | interface_name |
| | time_since_update... | |
|  | | |
| | | |
+---------------+-----------------------+-----------------------+
| docker | cpu_percent | hostname |
| | memory_usage... | name |
@ -78,7 +78,7 @@ configuration file (no limit on columns number).
Note: if you want to use SSL, please set 'protocol=https'.
InfluxDB v2 (from InfluxDB v1.8.x/Flux and InfluxDB v2.x)
InfluxDB v2 (from InfluxDB v1.8.x/Flux and InfluxDB <v3.x)
---------------------------------------------------------
Note: The InfluxDB v2 client (https://pypi.org/project/influxdb-client/)
@ -90,12 +90,14 @@ following:
.. code-block:: ini
[influxdb2]
# Configuration for the --export influxdb2 option
# https://influxdb.com/
host=localhost
port=8086
protocol=http
org=nicolargo
bucket=glances
token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA==
token=PUT_YOUR_INFLUXDB2_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
@ -107,7 +109,7 @@ following:
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname is always added as a tag
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
and run Glances with:
@ -118,6 +120,46 @@ and run Glances with:
Note: if you want to use SSL, please set 'protocol=https'.
InfluxDB v3 (for InfluxDB 3.x)
------------------------------
Note: The InfluxDB v3 client (https://pypi.org/project/influxdb3-python/)
is only available for Python 3.8 or higher.
The connection should be defined in the Glances configuration file as
following:
.. code-block:: ini
[influxdb3]
# Configuration for the --export influxdb3 option
# https://influxdb.com/
host=http://localhost:8181
org=nicolargo
database=glances
token=PUT_YOUR_INFLUXDB3_TOKEN_HERE
# Set the interval between two exports (in seconds)
# If the interval is set to 0, the Glances refresh time is used (default behavor)
#interval=0
# Prefix will be added for all measurement name
# Ex: prefix=foo
# => foo.cpu
# => foo.mem
# You can also use dynamic values
#prefix=foo
# Following tags will be added for all measurements
# You can also use dynamic values.
# Note: hostname and name (for process) are always added as a tag
#tags=foo:bar,spam:eggs,domain:`domainname`
and run Glances with:
.. code-block:: console
$ glances --export influxdb3
Note: if you want to use SSL, please set host with 'https' scheme instead of 'http'.
Grafana
-------

View File

@ -9,42 +9,35 @@ following:
.. code-block:: ini
[couchdb]
[mongodb]
host=localhost
port=
port=27017
db=glances
user=root
password=example
db=glances
and run Glances with:
.. code-block:: console
$ glances --export couchdb
$ glances --export mongodb
Documents are stored in native ``JSON`` format. Glances adds ``"type"``
and ``"time"`` entries:
Documents are stored in native the configured database (glances by default)
with one collection per plugin.
- ``type``: plugin name
- ``time``: timestamp (format: "2016-09-24T16:39:08.524828Z")
Example of Couch Document for the load stats:
Example of MongoDB Document for the load stats:
.. code-block:: json
{
"_id": "36cbbad81453c53ef08804cb2612d5b6",
"_rev": "1-382400899bec5615cabb99aa34df49fb",
"min15": 0.33,
"time": "2016-09-24T16:39:08.524828Z",
"min5": 0.4,
"cpucore": 4,
"load_warning": 1,
"min1": 0.5,
"history_size": 28800,
"load_critical": 5,
"type": "load",
"load_careful": 0.7
_id: ObjectId('63d78ffee5528e543ce5af3a'),
min1: 1.46337890625,
min5: 1.09619140625,
min15: 1.07275390625,
cpucore: 4,
history_size: 1200,
load_disable: 'False',
load_careful: 0.7,
load_warning: 1,
load_critical: 5
}
You can view the result using the CouchDB utils URL: http://127.0.0.1:5984/_utils/database.html?glances.

View File

@ -11,12 +11,15 @@ following:
[mqtt]
host=localhost
# Overwrite device name in the topic (see detail in PR#2701)
#devicename=localhost
port=883
tls=true
user=glances
password=glances
topic=glances
topic_structure=per-metric
callback_api_version=2
and run Glances with:

68
docs/gw/nats.rst Normal file
View File

@ -0,0 +1,68 @@
.. _nats:
NATS
====
NATS is a message broker.
You can export statistics to a ``NATS`` server.
The connection should be defined in the Glances configuration file as
following:
.. code-block:: ini
[nats]
host=nats://localhost:4222
prefix=glances
and run Glances with:
.. code-block:: console
$ glances --export nats
Data model
-----------
Glances stats are published as JSON messagesto the following subjects:
<prefix>.<plugin>
Example:
CPU stats are published to glances.cpu
So a simple Python client will subscribe to this subject with:
import asyncio
import nats
async def main():
nc = nats.NATS()
await nc.connect(servers=["nats://localhost:4222"])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
await nc.subscribe("glances.cpu", cb=cb)
# Wait for message to come in
print("Waiting (max 30 seconds) for a message on 'glances' subject...")
msg = await asyncio.wait_for(future, 30)
print(msg.subject, msg.data)
if __name__ == '__main__':
asyncio.run(main())
To subscribe to all Glannces stats use wildcard:
await nc.subscribe("glances.*", cb=cb)

View File

@ -4,8 +4,8 @@ Prometheus
==========
You can export statistics to a ``Prometheus`` server through an exporter.
When the *--export-prometheus* is used, Glances creates a Prometheus exporter
listening on <host:port> (define in the Glances configuration file).
When the *--export prometheus* is used, Glances creates a Prometheus exporter
listening on <host:port> (defined in the Glances configuration file).
.. code-block:: ini

Some files were not shown because too many files have changed in this diff Show More