diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ddd66c67..f5e4565d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,16 +44,16 @@ jobs: --outdir dist/ - name: Publish distribution package to Test PyPI - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/legacy/ - skip_existing: true + repository-url: https://test.pypi.org/legacy/ + skip-existing: true - name: Publish distribution package to PyPI if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/Makefile b/Makefile index 18c0958b..1963c931 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ test-restful-api: ## Run unit tests of the RESTful API ./venv/bin/python ./unitest-restful.py # =================================================================== -# Linters and profilers +# Linters, profilers and cyber security # =================================================================== format: ## Format the code @@ -126,6 +126,10 @@ memory-profiling: ## Profile memory usage ./venv-dev/bin/mprof plot --output ./docs/_static/glances-memory-profiling-without-history.png rm -f mprofile_*.dat +# Trivy installation: https://aquasecurity.github.io/trivy/latest/getting-started/installation/ +trivy: ## Run Trivy to find vulnerabilities in container images + trivy fs . + # =================================================================== # Docs # =================================================================== diff --git a/NEWS.rst b/NEWS.rst index e40a63c1..3b7ef9ed 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -899,7 +899,7 @@ Processes list Nice value: [processlist] # 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 diff --git a/conf/glances.conf b/conf/glances.conf index 1a59587a..2ab073e2 100644 --- a/conf/glances.conf +++ b/conf/glances.conf @@ -336,7 +336,7 @@ 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 @@ -394,10 +394,10 @@ port_default_gateway=True [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) +# Hide some containers (comma-separated list of container name or regular expression) # Comment this line to display all containers (default configuration) ; hide=telegraf # Define the maximum docker size name (default is 20 chars) diff --git a/docker-compose/glances.conf b/docker-compose/glances.conf index ed44d51b..9f91be17 100644 --- a/docker-compose/glances.conf +++ b/docker-compose/glances.conf @@ -340,7 +340,7 @@ 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 @@ -398,10 +398,10 @@ port_default_gateway=True [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) +# Hide some containers (comma-separated list of container name or regular expression) # Comment this line to display all containers (default configuration) ; hide=telegraf # Define the maximum docker size name (default is 20 chars) diff --git a/docker-requirements.txt b/docker-requirements.txt index 0792572a..c93beffe 100644 --- a/docker-requirements.txt +++ b/docker-requirements.txt @@ -6,5 +6,5 @@ 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 +urllib3<2.0 # See issue https://github.com/nicolargo/glances/issues/2617 +requests diff --git a/docs/aoa/containers.rst b/docs/aoa/containers.rst index c969b1e8..3750d3cf 100644 --- a/docs/aoa/containers.rst +++ b/docs/aoa/containers.rst @@ -21,11 +21,11 @@ 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 diff --git a/docs/aoa/ps.rst b/docs/aoa/ps.rst index 310c8cd5..7b5d8cf8 100644 --- a/docs/aoa/ps.rst +++ b/docs/aoa/ps.rst @@ -190,7 +190,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' diff --git a/docs/api.rst b/docs/api.rst index b4b1523b..2889f469 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -78,6 +78,25 @@ Get the plugins list:: "uptime", "wifi"] +GET alert +--------- + +Get plugin stats:: + + # curl http://localhost:61208/api/3/alert + [[1702235377.0, + -1, + "WARNING", + "MEM", + 80.7320208056836, + 80.7320208056836, + 80.7320208056836, + 80.7320208056836, + 1, + [], + "", + "memory_percent"]] + GET amps -------- @@ -92,7 +111,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.16420912742614746}, + "timer": 0.39360761642456055}, {"count": 0, "countmax": 20.0, "countmin": None, @@ -101,7 +120,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.16410183906555176}] + "timer": 0.39345741271972656}] Get a specific field:: @@ -119,7 +138,7 @@ Get a specific item when field matches the given value:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.16420912742614746}]} + "timer": 0.39360761642456055}]} GET connections --------------- @@ -140,12 +159,54 @@ GET containers Get plugin stats:: # curl http://localhost:61208/api/3/containers - {"containers": [{"Command": ["/portainer"], + {"containers": [{"Command": ["top"], + "Created": "2023-12-09T10:45:34.339489876+01:00", + "Id": "481d6ffb7eef284d062628cf350bdd9ce0a803db8a2a505d75565ed24322b714", + "Image": "["docker.io/library/ubuntu:latest"]", + "Status": "running", + "Uptime": "yesterday", + "cpu": {"total": 2.756671645021486e-07}, + "cpu_percent": 2.756671645021486e-07, + "engine": "podman", + "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, + "io_r": 0.0, + "io_w": 0.0, + "key": "name", + "memory": {"limit": 7823585280.0, "usage": 1974272.0}, + "memory_usage": 1974272.0, + "name": "sad_darwin", + "network": {"rx": 0.0, "time_since_update": 1, "tx": 0.0}, + "network_rx": 0.0, + "network_tx": 0.0, + "pod_id": "8d0f1c783def", + "pod_name": "sad_darwin"}, + {"Command": [], + "Created": "2022-10-22T14:23:03.120912374+02:00", + "Id": "9491515251edcd5bb5dc17205d7ee573c0be96fe0b08b0a12a7e2cea874565ea", + "Image": "["k8s.gcr.io/pause:3.5"]", + "Status": "running", + "Uptime": "yesterday", + "cpu": {"total": 3.1294144561318065e-10}, + "cpu_percent": 3.1294144561318065e-10, + "engine": "podman", + "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, + "io_r": 0.0, + "io_w": 0.0, + "key": "name", + "memory": {"limit": 7823585280.0, "usage": 692224.0}, + "memory_usage": 692224.0, + "name": "8d0f1c783def-infra", + "network": {"rx": 0.0, "time_since_update": 1, "tx": 0.0}, + "network_rx": 0.0, + "network_tx": 0.0, + "pod_id": "8d0f1c783def", + "pod_name": "8d0f1c783def-infra"}, + {"Command": ["/portainer"], "Created": "2022-10-29T14:59:10.266701439Z", "Id": "3abd51c615968482d9ccff5afc629f267f6dda113ed68b75b432615fae3b49fb", "Image": ["portainer/portainer-ce:2.9.3"], "Status": "running", - "Uptime": "6 mins", + "Uptime": "2 weeks", "cpu": {"total": 0.0}, "cpu_percent": 0.0, "engine": "docker", @@ -190,19 +251,19 @@ Get plugin stats:: "ctx_switches": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 73.9, + "idle": 55.5, "interrupts": 0, - "iowait": 0.9, + "iowait": 1.2, "irq": 0.0, "nice": 0.0, "soft_interrupts": 0, - "softirq": 0.0, + "softirq": 0.4, "steal": 0.0, "syscalls": 0, - "system": 4.5, + "system": 6.5, "time_since_update": 1, - "total": 25.2, - "user": 20.7} + "total": 43.0, + "user": 36.3} Fields descriptions: @@ -225,7 +286,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/3/cpu/total - {"total": 25.2} + {"total": 43.0} GET diskio ---------- @@ -251,7 +312,7 @@ Get plugin stats:: Get a specific field:: # curl http://localhost:61208/api/3/diskio/disk_name - {"disk_name": ["sda", "sda1", "sda2", "sda5", "dm-0", "dm-1", "sdb", "sdb1"]} + {"disk_name": ["sda", "sda1", "sda2", "sda5", "dm-0", "dm-1"]} Get a specific item when field matches the given value:: @@ -271,13 +332,13 @@ Get plugin stats:: # curl http://localhost:61208/api/3/fs [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", - "free": 30865014784, + "free": 24783605760, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", - "percent": 86.6, + "percent": 89.3, "size": 243334156288, - "used": 200081686528}, + "used": 206163095552}, {"device_name": "zsfpool", "free": 41811968, "fs_type": "zfs", @@ -296,13 +357,13 @@ Get a specific item when field matches the given value:: # curl http://localhost:61208/api/3/fs/mnt_point// {"/": [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", - "free": 30865014784, + "free": 24783605760, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", - "percent": 86.6, + "percent": 89.3, "size": 243334156288, - "used": 200081686528}]} + "used": 206163095552}]} GET ip ------ @@ -310,17 +371,17 @@ GET ip Get plugin stats:: # curl http://localhost:61208/api/3/ip - {"address": "192.168.1.14", - "gateway": "192.168.1.1", + {"address": "192.168.0.32", + "gateway": "192.168.0.254", "mask": "255.255.255.0", "mask_cidr": 24, - "public_address": "92.151.148.66", + "public_address": "91.166.228.228", "public_info_human": ""} Get a specific field:: # curl http://localhost:61208/api/3/ip/gateway - {"gateway": "192.168.1.1"} + {"gateway": "192.168.0.254"} GET load -------- @@ -329,9 +390,9 @@ Get plugin stats:: # curl http://localhost:61208/api/3/load {"cpucore": 4, - "min1": 1.16650390625, - "min15": 1.2255859375, - "min5": 1.3173828125} + "min1": 1.86572265625, + "min15": 1.49169921875, + "min5": 1.7294921875} Fields descriptions: @@ -343,7 +404,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/3/load/min1 - {"min1": 1.16650390625} + {"min1": 1.86572265625} GET mem ------- @@ -351,16 +412,16 @@ GET mem Get plugin stats:: # curl http://localhost:61208/api/3/mem - {"active": 2796564480, - "available": 2493652992, - "buffers": 401641472, - "cached": 2819747840, - "free": 2493652992, - "inactive": 3942461440, - "percent": 68.1, - "shared": 551772160, + {"active": 2548203520, + "available": 1507446784, + "buffers": 83345408, + "cached": 1794064384, + "free": 1507446784, + "inactive": 3827736576, + "percent": 80.7, + "shared": 454299648, "total": 7823585280, - "used": 5329932288} + "used": 6316138496} Fields descriptions: @@ -387,13 +448,13 @@ GET memswap Get plugin stats:: # curl http://localhost:61208/api/3/memswap - {"free": 5963968512, - "percent": 26.2, - "sin": 513867776, - "sout": 2566475776, + {"free": 5210046464, + "percent": 35.5, + "sin": 2560524288, + "sout": 5443428352, "time_since_update": 1, "total": 8082419712, - "used": 2118451200} + "used": 2872373248} Fields descriptions: @@ -417,26 +478,26 @@ Get plugin stats:: # curl http://localhost:61208/api/3/network [{"alias": None, - "cumulative_cx": 31635408, - "cumulative_rx": 15817704, - "cumulative_tx": 15817704, - "cx": 0, + "cumulative_cx": 355930708, + "cumulative_rx": 177965354, + "cumulative_tx": 177965354, + "cx": 16048, "interface_name": "lo", "is_up": True, "key": "interface_name", - "rx": 0, + "rx": 8024, "speed": 0, "time_since_update": 1, - "tx": 0}, + "tx": 8024}, {"alias": None, - "cumulative_cx": 23666156944, - "cumulative_rx": 23525021295, - "cumulative_tx": 141135649, - "cx": 126, + "cumulative_cx": 4299682624, + "cumulative_rx": 4046511475, + "cumulative_tx": 253171149, + "cx": 224, "interface_name": "wlp2s0", "is_up": True, "key": "interface_name", - "rx": 0, + "rx": 98, "speed": 0, "time_since_update": 1, "tx": 126}] @@ -460,27 +521,27 @@ Get a specific field:: # curl http://localhost:61208/api/3/network/interface_name {"interface_name": ["lo", "wlp2s0", - "br_grafana", "br-40875d2e2716", "docker0", - "mpqemubr0", - "vethe1b1351"]} + "br_grafana", + "veth55598fc", + "mpqemubr0"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/3/network/interface_name/lo {"lo": [{"alias": None, - "cumulative_cx": 31635408, - "cumulative_rx": 15817704, - "cumulative_tx": 15817704, - "cx": 0, + "cumulative_cx": 355930708, + "cumulative_rx": 177965354, + "cumulative_tx": 177965354, + "cx": 16048, "interface_name": "lo", "is_up": True, "key": "interface_name", - "rx": 0, + "rx": 8024, "speed": 0, "time_since_update": 1, - "tx": 0}]} + "tx": 8024}]} GET now ------- @@ -488,7 +549,7 @@ GET now Get plugin stats:: # curl http://localhost:61208/api/3/now - "2023-11-01 08:51:27 CET" + "2023-12-10 20:09:37 CET" GET percpu ---------- @@ -499,29 +560,29 @@ Get plugin stats:: [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 16.0, + "idle": 41.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 2.0, - "total": 84.0, - "user": 9.0}, + "system": 4.0, + "total": 59.0, + "user": 15.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, - "idle": 15.0, + "idle": 41.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 1.0, - "total": 85.0, - "user": 13.0}] + "system": 4.0, + "total": 59.0, + "user": 19.0}] Get a specific field:: @@ -535,30 +596,30 @@ Get plugin stats:: # curl http://localhost:61208/api/3/ports [{"description": "DefaultGateway", - "host": "192.168.1.1", + "host": "192.168.0.254", "indice": "port_0", "port": 0, "refresh": 30, "rtt_warning": None, - "status": 0.01277, + "status": 0.003594, "timeout": 3}] Get a specific field:: # curl http://localhost:61208/api/3/ports/host - {"host": ["192.168.1.1"]} + {"host": ["192.168.0.254"]} Get a specific item when field matches the given value:: - # curl http://localhost:61208/api/3/ports/host/192.168.1.1 - {"192.168.1.1": [{"description": "DefaultGateway", - "host": "192.168.1.1", - "indice": "port_0", - "port": 0, - "refresh": 30, - "rtt_warning": None, - "status": 0.01277, - "timeout": 3}]} + # curl http://localhost:61208/api/3/ports/host/192.168.0.254 + {"192.168.0.254": [{"description": "DefaultGateway", + "host": "192.168.0.254", + "indice": "port_0", + "port": 0, + "refresh": 30, + "rtt_warning": None, + "status": 0.003594, + "timeout": 3}]} GET processcount ---------------- @@ -566,12 +627,12 @@ GET processcount Get plugin stats:: # curl http://localhost:61208/api/3/processcount - {"pid_max": 0, "running": 1, "sleeping": 314, "thread": 1662, "total": 386} + {"pid_max": 0, "running": 1, "sleeping": 319, "thread": 1720, "total": 385} Get a specific field:: # curl http://localhost:61208/api/3/processcount/total - {"total": 386} + {"total": 385} GET psutilversion ----------------- @@ -579,7 +640,7 @@ GET psutilversion Get plugin stats:: # curl http://localhost:61208/api/3/psutilversion - [5, 9, 5] + [5, 9, 6] GET quicklook ------------- @@ -587,69 +648,69 @@ GET quicklook Get plugin stats:: # curl http://localhost:61208/api/3/quicklook - {"cpu": 25.2, - "cpu_hz": 3000000000.0, - "cpu_hz_current": 2844080000.0, + {"cpu": 43.0, + "cpu_hz": 2025000000.0, + "cpu_hz_current": 1747868750.0, "cpu_name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz", - "mem": 68.1, + "mem": 80.7, "percpu": [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 16.0, + "idle": 41.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 2.0, - "total": 84.0, - "user": 9.0}, + "system": 4.0, + "total": 59.0, + "user": 15.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, - "idle": 15.0, + "idle": 41.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 1.0, - "total": 85.0, - "user": 13.0}, + "system": 4.0, + "total": 59.0, + "user": 19.0}, {"cpu_number": 2, "guest": 0.0, "guest_nice": 0.0, - "idle": 26.0, - "iowait": 0.0, + "idle": 33.0, + "iowait": 1.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, - "softirq": 0.0, + "softirq": 1.0, "steal": 0.0, - "system": 1.0, - "total": 74.0, - "user": 1.0}, + "system": 5.0, + "total": 67.0, + "user": 22.0}, {"cpu_number": 3, "guest": 0.0, "guest_nice": 0.0, - "idle": 26.0, - "iowait": 0.0, + "idle": 21.0, + "iowait": 1.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 1.0, - "total": 74.0, - "user": 1.0}], - "swap": 26.2} + "system": 3.0, + "total": 79.0, + "user": 35.0}], + "swap": 35.5} Get a specific field:: # curl http://localhost:61208/api/3/quicklook/cpu - {"cpu": 25.2} + {"cpu": 43.0} GET sensors ----------- @@ -706,7 +767,7 @@ Get plugin stats:: "hr_name": "Ubuntu 22.04 64bit", "linux_distro": "Ubuntu 22.04", "os_name": "Linux", - "os_version": "5.15.0-86-generic", + "os_version": "5.15.0-88-generic", "platform": "64bit"} Get a specific field:: @@ -720,7 +781,7 @@ GET uptime Get plugin stats:: # curl http://localhost:61208/api/3/uptime - "10 days, 23:38:54" + "15 days, 11:11:48" GET all stats ------------- @@ -736,15 +797,30 @@ GET top n items of a specific plugin Get top 2 processes of the processlist plugin:: # curl http://localhost:61208/api/3/processlist/top/2 - [{"cmdline": ["/snap/firefox/3206/usr/lib/firefox/firefox", + [{"cmdline": ["/snap/firefox/3206/usr/lib/firefox/firefox"], + "cpu_percent": 0.0, + "cpu_times": pcputimes(user=5861.59, system=1737.38, children_user=4938.06, children_system=709.56, iowait=0.0), + "gids": pgids(real=1000, effective=1000, saved=1000), + "io_counters": [3402736640, 6576906240, 0, 0, 0], + "key": "pid", + "memory_info": pmem(rss=584544256, vms=14091272192, shared=108994560, text=643072, lib=0, data=1779023872, dirty=0), + "memory_percent": 7.471564954935853, + "name": "firefox", + "nice": 0, + "num_threads": 177, + "pid": 7195, + "status": "S", + "time_since_update": 1, + "username": "nicolargo"}, + {"cmdline": ["/snap/firefox/3206/usr/lib/firefox/firefox", "-contentproc", "-childID", - "2", + "3", "-isForBrowser", "-prefsLen", - "35837", + "41102", "-prefMapSize", - "231968", + "234514", "-jsInitLen", "234236", "-parentBuildID", @@ -755,36 +831,21 @@ Get top 2 processes of the processlist plugin:: "/snap/firefox/3206/usr/lib/firefox/browser/omni.ja", "-appDir", "/snap/firefox/3206/usr/lib/firefox/browser", - "{e8cdf5ea-b126-4cf3-8a2c-4ecf8bfa42cb}", - "6779", + "{912ef42c-455b-4ef1-acbb-dbd1bb6d42d4}", + "7195", "true", "tab"], "cpu_percent": 0.0, - "cpu_times": pcputimes(user=223.59, system=25.59, children_user=0.0, children_system=0.0, iowait=0.0), + "cpu_times": pcputimes(user=2650.06, system=226.04, children_user=0.0, children_system=0.0, iowait=0.0), "gids": pgids(real=1000, effective=1000, saved=1000), - "io_counters": [159959040, 0, 0, 0, 0], + "io_counters": [230234112, 0, 0, 0, 0], "key": "pid", - "memory_info": pmem(rss=512262144, vms=3362086912, shared=29282304, text=643072, lib=0, data=803278848, dirty=0), - "memory_percent": 6.547664857818231, + "memory_info": pmem(rss=502042624, vms=3629031424, shared=67194880, text=643072, lib=0, data=1036189696, dirty=0), + "memory_percent": 6.417040347005715, "name": "WebExtensions", "nice": 0, "num_threads": 20, - "pid": 7049, - "status": "S", - "time_since_update": 1, - "username": "nicolargo"}, - {"cmdline": ["/snap/firefox/3206/usr/lib/firefox/firefox"], - "cpu_percent": 0.0, - "cpu_times": pcputimes(user=2099.05, system=541.02, children_user=748.27, children_system=70.57, iowait=0.0), - "gids": pgids(real=1000, effective=1000, saved=1000), - "io_counters": [19097014272, 22883790848, 0, 0, 0], - "key": "pid", - "memory_info": pmem(rss=428056576, vms=13759758336, shared=111906816, text=643072, lib=0, data=1674182656, dirty=0), - "memory_percent": 5.471360772333781, - "name": "firefox", - "nice": 0, - "num_threads": 183, - "pid": 6779, + "pid": 7586, "status": "S", "time_since_update": 1, "username": "nicolargo"}] @@ -797,34 +858,34 @@ GET stats history History of a plugin:: # curl http://localhost:61208/api/3/cpu/history - {"system": [["2023-11-01T08:51:29.392317", 4.5], - ["2023-11-01T08:51:30.420589", 1.6], - ["2023-11-01T08:51:31.542866", 1.6]], - "user": [["2023-11-01T08:51:29.392306", 20.7], - ["2023-11-01T08:51:30.420582", 9.5], - ["2023-11-01T08:51:31.542854", 9.5]]} + {"system": [["2023-12-10T20:09:39.183444", 6.5], + ["2023-12-10T20:09:40.208974", 2.6], + ["2023-12-10T20:09:41.513593", 2.6]], + "user": [["2023-12-10T20:09:39.183433", 36.3], + ["2023-12-10T20:09:40.208960", 11.7], + ["2023-12-10T20:09:41.513579", 11.7]]} Limit history to last 2 values:: # curl http://localhost:61208/api/3/cpu/history/2 - {"system": [["2023-11-01T08:51:30.420589", 1.6], - ["2023-11-01T08:51:31.542866", 1.6]], - "user": [["2023-11-01T08:51:30.420582", 9.5], - ["2023-11-01T08:51:31.542854", 9.5]]} + {"system": [["2023-12-10T20:09:40.208974", 2.6], + ["2023-12-10T20:09:41.513593", 2.6]], + "user": [["2023-12-10T20:09:40.208960", 11.7], + ["2023-12-10T20:09:41.513579", 11.7]]} History for a specific field:: # curl http://localhost:61208/api/3/cpu/system/history - {"system": [["2023-11-01T08:51:27.776605", 4.5], - ["2023-11-01T08:51:29.392317", 4.5], - ["2023-11-01T08:51:30.420589", 1.6], - ["2023-11-01T08:51:31.542866", 1.6]]} + {"system": [["2023-12-10T20:09:37.349510", 6.5], + ["2023-12-10T20:09:39.183444", 6.5], + ["2023-12-10T20:09:40.208974", 2.6], + ["2023-12-10T20:09:41.513593", 2.6]]} Limit history for a specific field to last 2 values:: # curl http://localhost:61208/api/3/cpu/system/history - {"system": [["2023-11-01T08:51:30.420589", 1.6], - ["2023-11-01T08:51:31.542866", 1.6]]} + {"system": [["2023-12-10T20:09:40.208974", 2.6], + ["2023-12-10T20:09:41.513593", 2.6]]} GET limits (used for thresholds) -------------------------------- diff --git a/docs/cmds.rst b/docs/cmds.rst index 91a8ed53..c23670f5 100644 --- a/docs/cmds.rst +++ b/docs/cmds.rst @@ -12,7 +12,7 @@ Command-Line Options .. option:: -V, --version - show program's version number and exit + show the program's version number and exit .. option:: -d, --debug @@ -22,7 +22,7 @@ Command-Line Options path to the configuration file -.. option:: -P plugin directory, --plugins plugin directory +.. option:: -P PLUGIN_DIRECTORY, --plugins PLUGIN_DIRECTORY path to a directory containing additional plugins @@ -32,19 +32,19 @@ Command-Line Options .. 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 @@ -64,7 +64,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 @@ -88,7 +88,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 @@ -196,11 +196,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 @@ -220,11 +220,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 -------------------- @@ -236,7 +236,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 @@ -254,7 +254,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 @@ -278,7 +278,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 @@ -305,7 +305,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. @@ -356,7 +356,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 @@ -379,13 +379,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 @@ -394,7 +394,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 @@ -409,10 +409,10 @@ The following commands (key pressed) are supported while in Glances: Refresh user interface ``LEFT`` - Navigation left through process sort + Navigation left through the process sort ``RIGHT`` - Navigation right through process sort + Navigation right through the process sort ``UP`` Up in the processes list diff --git a/docs/config.rst b/docs/config.rst index f1c76e16..4bc30ac2 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -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,7 +14,7 @@ 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/ @@ -26,13 +26,13 @@ You can put your own ``glances.conf`` file in the following locations: - On Windows XP, ``%APPDATA%`` is: ``C:\Documents and Settings\\Application Data``. - On Windows Vista and later: ``C:\Users\\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,10 +40,10 @@ A first section (called global) is available: [global] # Refresh rate (default is a minimum of 2 seconds) - # Can be overwrite by the -t option - # It is also possible to overwrite it in each plugin sections + # Can be overwritten by the -t 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 ? + # Should Glances check if a newer version is available on PyPI ? check_update=false # History size (maximum number of values) # Default is 28800: 1 day with 1 point every 3 seconds @@ -53,8 +53,8 @@ A first section (called global) is available: # (see glances/plugins for details) # 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: +Each plugin, export module, and application monitoring process (AMP) can +have a section. Below is an example for the CPU plugin: .. code-block:: ini @@ -94,16 +94,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 @@ -124,16 +124,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): @@ -205,7 +206,7 @@ and start Glances using the following command line: LOG_CFG=/glances.json glances .. note:: - Replace ```` by the folder where your ``glances.json`` file + Replace ```` with the directory where your ``glances.json`` file is hosted. .. _GitHub: https://raw.githubusercontent.com/nicolargo/glances/master/conf/glances.conf diff --git a/docs/docker.rst b/docs/docker.rst index 9f4aa63e..76620807 100644 --- a/docs/docker.rst +++ b/docs/docker.rst @@ -3,7 +3,9 @@ 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 `_, 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 `_, you can Get the Glances container: @@ -11,7 +13,7 @@ Get the Glances container: docker pull nicolargo/glances: -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): .. list-table:: :widths: 25 15 25 35 @@ -47,13 +49,13 @@ Available tags (all images are based on both Alpine and Ubuntu Operating System) - Full .. warning:: - Tags containing `dev` target the `develop` branch directly and could be unstable. + 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 @@ -81,7 +83,7 @@ Alternatively, you can specify something along the same lines with docker run op 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. +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: @@ -97,7 +99,7 @@ Run the container in *Web server mode* (notice the `GLANCES_OPT` environment var 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 diff --git a/docs/glances.rst b/docs/glances.rst index 0d1bde4e..3f3a8a5b 100644 --- a/docs/glances.rst +++ b/docs/glances.rst @@ -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. @@ -38,19 +38,20 @@ Monitor local machine (standalone mode): $ glances -Monitor local machine with the web interface (Web UI), run the following command line: +To monitor the local machine with the web interface (Web UI), +, 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 diff --git a/docs/index.rst b/docs/index.rst index f0fcfeb8..61e92a65 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,13 +3,13 @@ Glances .. image:: _static/screenshot-wide.png -Glances is a cross-platform monitoring tool which aims to present a -maximum of information in a minimum of space through a curses or Web -based interface. It can adapt dynamically the displayed information -depending on the terminal size. +Glances is a cross-platform monitoring tool that aims to present +maximum information in minimal space through either a curses-based +or Web-based interface. It can dynamically adapt the displayed +information depending on the terminal size. -It can also work in client/server mode. Remote monitoring could be -done via terminal, Web interface or API (XMLRPC and RESTful). +It can also work in client/server mode. Remote monitoring can be +done via terminal, Web interface, or API (XMLRPC and RESTful). Glances is written in Python and uses the `psutil`_ library to get information from your system. diff --git a/docs/install.rst b/docs/install.rst index 5306db31..a56d69e2 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -3,8 +3,8 @@ Install ======= -Glances is on ``PyPI``. By using PyPI, you are sure to have the latest -stable version. +Glances is available on ``PyPI``. By using PyPI, you are sure to have the +latest stable version. To install, simply use ``pip``: @@ -12,13 +12,13 @@ To install, simply use ``pip``: pip install glances -*Note*: Python headers are required to install `psutil`_. For example, -on Debian/Ubuntu you need to install first the *python-dev* package. -For Fedora/CentOS/RHEL install first *python-devel* package. For Windows, -just install psutil from the binary installation file. +*Note*: Python headers are required to install `psutil`_. For instance, +on Debian/Ubuntu, you must first install the *python-dev* package. +On Fedora/CentOS/RHEL, first, install the *python-devel* package. For Windows, +psutil can be installed from the binary installation file. -You can also install the following libraries in order to use optional -features (like the Web interface, export modules...): +You can also install the following libraries to use the optional +features (such as the web interface, export modules, etc.): .. code-block:: console diff --git a/docs/man/glances.1 b/docs/man/glances.1 index b2888dd8..04a2f4ed 100644 --- a/docs/man/glances.1 +++ b/docs/man/glances.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GLANCES" "1" "Nov 01, 2023" "4.0.0_beta01" "Glances" +.TH "GLANCES" "1" "Dec 10, 2023" "4.0.0_beta01" "Glances" .SH NAME glances \- An eye on your system .SH SYNOPSIS @@ -35,12 +35,12 @@ glances \- An eye on your system \fBglances\fP [OPTIONS] .SH DESCRIPTION .sp -\fBglances\fP 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. +\fBglances\fP 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. .sp \fBglances\fP is written in Python and uses the \fIpsutil\fP library to get information from your system. @@ -54,7 +54,7 @@ show this help message and exit .INDENT 0.0 .TP .B \-V, \-\-version -show program’s version number and exit +show the program’s version number and exit .UNINDENT .INDENT 0.0 .TP @@ -68,7 +68,7 @@ path to the configuration file .UNINDENT .INDENT 0.0 .TP -.B \-P plugin directory, \-\-plugins plugin directory +.B \-P PLUGIN_DIRECTORY, \-\-plugins PLUGIN_DIRECTORY path to a directory containing additional plugins .UNINDENT .INDENT 0.0 @@ -79,22 +79,22 @@ display modules (plugins & exports) list and exit .INDENT 0.0 .TP .B \-\-disable\-plugin PLUGIN -disable PLUGIN (comma separated list) +disable PLUGIN (comma\-separated list) .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-plugin PLUGIN -enable PLUGIN (comma separated list) +enable PLUGIN (comma\-separated list) .UNINDENT .INDENT 0.0 .TP .B \-\-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) .UNINDENT .INDENT 0.0 .TP .B \-\-export EXPORT -enable EXPORT module (comma separated list) +enable EXPORT module (comma\-separated list) .UNINDENT .INDENT 0.0 .TP @@ -119,7 +119,7 @@ disable the Web UI (only the RESTful API will respond) .INDENT 0.0 .TP .B \-\-light, \-\-enable\-light -light mode for Curses UI (disable all but top menu) +light mode for Curses UI (disable all but the top menu) .UNINDENT .INDENT 0.0 .TP @@ -149,7 +149,7 @@ disable all but quick look and load .INDENT 0.0 .TP .B \-5, \-\-disable\-top -disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) +disable top menu (QuickLook, CPU, MEM, SWAP, and LOAD) .UNINDENT .INDENT 0.0 .TP @@ -284,12 +284,12 @@ force short name for processes name .INDENT 0.0 .TP .B \-\-hide\-kernel\-threads -hide kernel threads in process list (not available on Windows) +hide kernel threads in the process list (not available on Windows) .UNINDENT .INDENT 0.0 .TP .B \-b, \-\-byte -display network rate in byte per second +display network rate in bytes per second .UNINDENT .INDENT 0.0 .TP @@ -314,12 +314,12 @@ display FS free space instead of used .INDENT 0.0 .TP .B \-\-theme\-white -optimize display colors for white background +optimize display colors for a white background .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-check\-update -disable online Glances version ckeck +disable online Glances version check .UNINDENT .SH INTERACTIVE COMMANDS .sp @@ -336,7 +336,7 @@ On macOS please use \fBCTRL\-H\fP to delete filter. .UNINDENT .UNINDENT .sp -Filter is a regular expression pattern: +The filter is a regular expression pattern: .INDENT 7.0 .IP \(bu 2 \fBgnome\fP: matches all processes starting with the \fBgnome\fP @@ -358,7 +358,7 @@ If CPU iowait \fB>60%\fP, sort processes by I/O read and write .UNINDENT .TP .B \fBA\fP -Enable/disable Application Monitoring Process +Enable/disable the Application Monitoring Process .TP .B \fBb\fP Switch between bit/s or Byte/s for network I/O @@ -382,7 +382,7 @@ Enable/disable Docker stats Enable/disable top extended stats .TP .B \fBE\fP -Erase current process filter +Erase the current process filter .TP .B \fBf\fP Show/hide file system and folder monitoring stats @@ -409,7 +409,7 @@ Show/hide IP module Increase selected process nice level / Lower the priority (need right) \- Only in standalone mode. .TP .B \fB\-\fP -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. .TP .B \fBk\fP Kill selected process (need right) \- Only in standalone mode. @@ -460,7 +460,7 @@ Enable/disable spark lines Sort process by CPU times (TIME+) .TP .B \fBT\fP -View network I/O as combination +View network I/O as a combination .TP .B \fBu\fP Sort processes by USER @@ -483,13 +483,13 @@ Show/hide processes stats .B \fB0\fP Enable/disable Irix/Solaris mode .sp -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 .TP .B \fB1\fP Switch between global CPU and per\-CPU stats .TP .B \fB2\fP -Enable/disable left sidebar +Enable/disable the left sidebar .TP .B \fB3\fP Enable/disable the quick look module @@ -498,7 +498,7 @@ Enable/disable the quick look module Enable/disable all but quick look and load module .TP .B \fB5\fP -Enable/disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) +Enable/disable the top menu (QuickLook, CPU, MEM, SWAP, and LOAD) .TP .B \fB6\fP Enable/disable mean GPU mode @@ -513,10 +513,10 @@ Switch between process command line or command name Refresh user interface .TP .B \fBLEFT\fP -Navigation left through process sort +Navigation left through the process sort .TP .B \fBRIGHT\fP -Navigation right through process sort +Navigation right through the process sort .TP .B \fBUP\fP Up in the processes list @@ -545,7 +545,7 @@ Quit Glances .sp No configuration file is mandatory to use Glances. .sp -Furthermore a configuration file is needed to access more settings. +Furthermore, a configuration file is needed to access more settings. .SH LOCATION .sp \fBNOTE:\fP @@ -556,7 +556,7 @@ A template is available in the \fB/usr{,/local}/share/doc/glances\fP .UNINDENT .UNINDENT .sp -You can put your own \fBglances.conf\fP file in the following locations: +You can place your \fBglances.conf\fP file in the following locations: .TS center; |l|l|. @@ -593,11 +593,11 @@ On Windows XP, \fB%APPDATA%\fP is: \fBC:\eDocuments and Settings\e\eAp On Windows Vista and later: \fBC:\eUsers\e\eAppData\eRoaming\fP\&. .UNINDENT .sp -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. .SH SYNTAX .sp -Glances reads configuration files in the \fIini\fP syntax. +Glances read configuration files in the \fIini\fP syntax. .sp A first section (called global) is available: .INDENT 0.0 @@ -607,10 +607,10 @@ A first section (called global) is available: .ft C [global] # Refresh rate (default is a minimum of 2 seconds) -# Can be overwrite by the \-t option -# It is also possible to overwrite it in each plugin sections +# Can be overwritten by the \-t 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 ? +# Should Glances check if a newer version is available on PyPI ? check_update=false # History size (maximum number of values) # Default is 28800: 1 day with 1 point every 3 seconds @@ -624,8 +624,8 @@ history_size=28800 .UNINDENT .UNINDENT .sp -Each plugin, export module and application monitoring process (AMP) can -have a section. Below an example for the CPU plugin: +Each plugin, export module, and application monitoring process (AMP) can +have a section. Below is an example for the CPU plugin: .INDENT 0.0 .INDENT 3.5 .sp @@ -679,7 +679,7 @@ or a Nginx AMP: .nf .ft C [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=\e/usr\e/sbin\e/nginx refresh=60 @@ -690,9 +690,9 @@ status_url=http://localhost/nginx_status .UNINDENT .UNINDENT .sp -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: .INDENT 0.0 .INDENT 3.5 .sp @@ -723,16 +723,17 @@ tags=system:\(gauname \-a\(ga .sp Glances logs all of its internal messages to a log file. .sp -\fBDEBUG\fP messages can been logged using the \fB\-d\fP option on the command +\fBDEBUG\fP messages can be logged using the \fB\-d\fP option on the command line. .sp -The location of the Glances depends of your operating system. You could -displayed the Glances log file full path using the\(ga\(gaglances \-V\(ga\(ga 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 \fBglances \-V\fP +command line. .sp -The file is automatically rotate when the size is higher than 1 MB. +The file is automatically rotated when its size exceeds 1 MB. .sp 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 \fBglances.json\fP file with, for example, the following content (JSON format): .INDENT 0.0 @@ -818,7 +819,7 @@ LOG_CFG=/glances.json glances \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 -Replace \fB\fP by the folder where your \fBglances.json\fP file +Replace \fB\fP with the directory where your \fBglances.json\fP file is hosted. .UNINDENT .UNINDENT @@ -831,14 +832,15 @@ $ glances .UNINDENT .UNINDENT .sp -Monitor local machine with the web interface (Web UI), run the following command line: +To monitor the local machine with the web interface (Web UI), +, run the following command line: .INDENT 0.0 .INDENT 3.5 $ glances \-w .UNINDENT .UNINDENT .sp -and open a Web browser with the returned URL +then, open a web browser to the provided URL. .sp Monitor local machine and export stats to a CSV file: .INDENT 0.0 @@ -847,9 +849,9 @@ $ glances –export csv –export\-csv\-file /tmp/glances.csv .UNINDENT .UNINDENT .sp -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): .INDENT 0.0 .INDENT 3.5 $ glances \-t 5 –export influxdb diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 1d4ec024..70b047a9 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -3,8 +3,8 @@ Quickstart ========== -This page gives a good introduction in how to get started with Glances. -Glances offers 3 modes: +This page gives a good introduction to how to get started with Glances. +Glances offers three modes: - Standalone - Client/Server @@ -61,7 +61,7 @@ Note: It will display one line per stat per refresh. Client/Server Mode ------------------ -If you want to remotely monitor a machine, called ``server``, from +If you want to remotely monitor a machine called ``server``, from another one, called ``client``, just run on the server: .. code-block:: console @@ -118,7 +118,7 @@ To start the central client, use the following option: .. note:: - Use ``--disable-autodiscover`` to disable the auto discovery mode. + Use ``--disable-autodiscover`` to disable the auto-discovery mode. When the list is displayed, you can navigate through the Glances servers with up/down keys. It is also possible to sort the server using: @@ -137,7 +137,7 @@ client, the latter will try to grab stats using the ``SNMP`` protocol: client$ glances -c @snmpserver .. note:: - Stats grabbed by SNMP request are limited and OS dependent. + Stats grabbed by SNMP request are limited and OS-dependent. A SNMP server should be installed and configured... @@ -152,14 +152,14 @@ Web Server Mode .. image:: _static/screenshot-web.png -If you want to remotely monitor a machine, called ``server``, from any +If you want to remotely monitor a machine called ``server``, from any device with a web browser, just run the server with the ``-w`` option: .. code-block:: console server$ glances -w -then on the client enter the following URL in your favorite web browser: +then, on the client, enter the following URL in your favorite web browser: :: @@ -167,7 +167,7 @@ then on the client enter the following URL in your favorite web browser: where ``@server`` is the IP address or hostname of the server. -To change the refresh rate of the page, just add the period in seconds +To change the refresh rate of the page, add the period in seconds at the end of the URL. For example, to refresh the page every ``10`` seconds: @@ -181,10 +181,10 @@ Here's a screenshot from Chrome on Android: .. image:: _static/screenshot-web2.png -How to protect your server (or Web server) with a login/password ? +How do you protect your server (or Web server) with a login/password ? ------------------------------------------------------------------ -You can set a password to access to the server using the ``--password``. +You can set a password to access the server using the ``--password``. By default, the login is ``glances`` but you can change it with ``--username``. @@ -192,8 +192,8 @@ If you want, the SHA password will be stored in ``.pwd`` file (in the same folder where the Glances configuration file is stored, so ~/.config/glances/ on GNU Linux operating system). -Next time your run the server/client, password will not be asked. To set a -specific username you can use the -u option. +Next time you run the server/client, password will not be asked. To set a +specific username, you can use the -u option. It is also possible to set the default password in the Glances configuration file: diff --git a/docs/support.rst b/docs/support.rst index 086951a0..4de5e4bb 100644 --- a/docs/support.rst +++ b/docs/support.rst @@ -7,7 +7,7 @@ To post a question about Glances use cases, please post it to the official Q&A `forum `_. -To report a bug or a feature request use the GitHub `issue +To report a bug or a feature request, use the GitHub `issue `_ tracker. Feel free to contribute! diff --git a/glances/exports/export.py b/glances/exports/export.py index 23873748..288a5b23 100644 --- a/glances/exports/export.py +++ b/glances/exports/export.py @@ -115,7 +115,7 @@ class GlancesExport(object): def parse_tags(self, tags): """Parse tags into a dict. - :param tags: a comma separated list of 'key:value' pairs. Example: foo:bar,spam:eggs + :param tags: a comma-separated list of 'key:value' pairs. Example: foo:bar,spam:eggs :return: a dict of tags. Example: {'foo': 'bar', 'spam': 'eggs'} """ d_tags = {} diff --git a/glances/main.py b/glances/main.py index 52c9439f..6a449aa5 100644 --- a/glances/main.py +++ b/glances/main.py @@ -83,13 +83,13 @@ Examples of use: Display CSV stats to stdout (all stats in one line): $ glances --stdout-csv now,cpu.user,mem.used,load - Enable some plugins disabled by default (comma separated list): + Enable some plugins disabled by default (comma-separated list): $ glances --enable-plugin sensors - Disable some plugins (comma separated list): + Disable some plugins (comma-separated list): $ glances --disable-plugin network,ports - Disable all plugins except some (comma separated list): + Disable all plugins except some (comma-separated list): $ glances --disable-plugin all --enable-plugin cpu,mem,load """ @@ -126,7 +126,7 @@ Examples of use: '--disable-plugins', '--disable', dest='disable_plugin', - help='disable plugin (comma separated list or all). If all is used, \ + help='disable plugin (comma-separated list or all). If all is used, \ then you need to configure --enable-plugin.', ) parser.add_argument( @@ -134,7 +134,7 @@ Examples of use: '--enable-plugins', '--enable', dest='enable_plugin', - help='enable plugin (comma separated list)' + help='enable plugin (comma-separated list)' ) parser.add_argument( '--disable-process', @@ -157,7 +157,7 @@ Examples of use: action='store_true', default=False, dest='enable_light', - help='light mode for Curses UI (disable all but top menu)', + help='light mode for Curses UI (disable all but the top menu)', ) parser.add_argument( '-0', @@ -268,7 +268,7 @@ Examples of use: help='Accumulate processes by program', ) # Export modules feature - parser.add_argument('--export', dest='export', help='enable export module (comma separated list)') + parser.add_argument('--export', dest='export', help='enable export module (comma-separated list)') parser.add_argument( '--export-csv-file', default='./glances.csv', dest='export_csv_file', help='file path for CSV exporter' ) @@ -421,19 +421,19 @@ Examples of use: '--stdout', default=None, dest='stdout', - help='display stats to stdout, one stat per line (comma separated list of plugins/plugins.attribute)', + help='display stats to stdout, one stat per line (comma-separated list of plugins/plugins.attribute)', ) parser.add_argument( '--stdout-json', default=None, dest='stdout_json', - help='display stats to stdout, JSON format (comma separated list of plugins/plugins.attribute)', + help='display stats to stdout, JSON format (comma-separated list of plugins/plugins.attribute)', ) parser.add_argument( '--stdout-csv', default=None, dest='stdout_csv', - help='display stats to stdout, CSV format (comma separated list of plugins/plugins.attribute)', + help='display stats to stdout, CSV format (comma-separated list of plugins/plugins.attribute)', ) parser.add_argument( '--issue', @@ -465,7 +465,7 @@ Examples of use: action='store_true', default=False, dest='no_kernel_threads', - help='hide kernel threads in process list (not available on Windows)', + help='hide kernel threads in the process list (not available on Windows)', ) parser.add_argument( '-b', @@ -473,7 +473,7 @@ Examples of use: action='store_true', default=False, dest='byte', - help='display network rate in byte per second', + help='display network rate in bytes per second', ) parser.add_argument( '--diskio-show-ramfs', @@ -522,7 +522,7 @@ Examples of use: action='store_true', default=False, dest='theme_white', - help='optimize display colors for white background', + help='optimize display colors for a white background', ) # Globals options parser.add_argument( diff --git a/glances/plugins/plugin/model.py b/glances/plugins/plugin/model.py index b25c2174..4da75f34 100644 --- a/glances/plugins/plugin/model.py +++ b/glances/plugins/plugin/model.py @@ -846,7 +846,7 @@ class GlancesPluginModel(object): If the show value is empty, return True (show by default) The show configuration list is defined in the glances.conf file. - It is a comma separated list of regexp. + It is a comma-separated list of regexp. Example for diskio: show=sda.* """ @@ -859,7 +859,7 @@ class GlancesPluginModel(object): """Return True if the value is in the hide configuration list. The hide configuration list is defined in the glances.conf file. - It is a comma separated list of regexp. + It is a comma-separated list of regexp. Example for diskio: hide=sda2,sda5,loop.* """