From 08a600ff4a3b24b6a73f3ee6de0ed8128048beff Mon Sep 17 00:00:00 2001 From: nicolargo Date: Sat, 14 Mar 2026 11:00:48 +0100 Subject: [PATCH] Update documentation --- all-requirements.txt | 9 +- dev-requirements.txt | 21 +- docker-requirements.txt | 3 +- docs/api/python.rst | 538 ++++++---- docs/api/restful.rst | 982 ++++++++++-------- docs/man/glances.1 | 2 +- .../outputs/glances_stdout_api_restful_doc.py | 43 + 7 files changed, 952 insertions(+), 646 deletions(-) diff --git a/all-requirements.txt b/all-requirements.txt index ba176bed..bef94d7a 100644 --- a/all-requirements.txt +++ b/all-requirements.txt @@ -31,7 +31,7 @@ cffi==2.0.0 ; implementation_name == 'pypy' or platform_python_implementation != # via # cryptography # pyzmq -chardet==7.0.1 +chardet==7.1.0 # via pysmart charset-normalizer==3.4.5 # via requests @@ -52,6 +52,8 @@ dnspython==2.8.0 # via pymongo docker==7.1.0 # via glances +duckdb==1.5.0 + # via glances ecdsa==0.19.1 # via python-jose elastic-transport==9.2.1 @@ -161,7 +163,7 @@ pygal==3.1.0 # via glances pyinstrument==5.1.2 # via glances -pyjwt==2.11.0 +pyjwt==2.12.1 # via # ibm-cloud-sdk-core # ibmcloudant @@ -226,7 +228,7 @@ rpds-py==0.30.0 # referencing rsa==4.9.1 # via python-jose -setuptools==82.0.0 +setuptools==82.0.1 # via wifi shtab==1.8.0 ; sys_platform != 'win32' # via glances @@ -265,6 +267,7 @@ typing-extensions==4.15.0 # psycopg # pydantic # pydantic-core + # pyjwt # reactivex # referencing # starlette diff --git a/dev-requirements.txt b/dev-requirements.txt index 919848dd..83fadfc3 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -93,11 +93,11 @@ exceptiongroup==1.2.2 # trio-websocket face==26.0.0 # via glom -filelock==3.25.0 +filelock==3.25.2 # via # python-discovery # virtualenv -fonttools==4.61.1 +fonttools==4.62.1 # via matplotlib glom==25.12.0 # via semgrep @@ -139,7 +139,7 @@ jsonschema==4.25.1 # semgrep jsonschema-specifications==2025.9.1 # via jsonschema -kiwisolver==1.4.9 +kiwisolver==1.5.0 # via matplotlib license-expression==30.4.4 # via reuse @@ -161,7 +161,7 @@ numpy==2.2.6 ; python_full_version < '3.11' # via # contourpy # matplotlib -numpy==2.4.2 ; python_full_version >= '3.11' +numpy==2.4.3 ; python_full_version >= '3.11' # via # contourpy # matplotlib @@ -249,7 +249,7 @@ pygments==2.19.2 # rich # sphinx pyinstrument==5.1.2 -pyjwt==2.11.0 +pyjwt==2.12.1 # via # mcp # semgrep @@ -263,7 +263,7 @@ python-dateutil==2.9.0.post0 # via matplotlib python-debian==1.1.0 # via reuse -python-discovery==1.1.1 +python-discovery==1.1.3 # via virtualenv python-dotenv==1.2.2 # via @@ -308,12 +308,12 @@ ruamel-yaml==0.19.1 # via semgrep ruamel-yaml-clib==0.2.14 # via semgrep -ruff==0.15.5 +ruff==0.15.6 selenium==4.41.0 semantic-version==2.10.0 # via semgrep -semgrep==1.154.0 -setuptools==82.0.0 +semgrep==1.155.0 +setuptools==82.0.1 shellingham==1.5.4 # via typer six==1.17.0 @@ -383,6 +383,7 @@ typing-extensions==4.15.0 # opentelemetry-semantic-conventions # pydantic # pydantic-core + # pyjwt # pyright # referencing # selenium @@ -403,7 +404,7 @@ urllib3==2.6.3 # semgrep uvicorn==0.41.0 ; sys_platform != 'emscripten' # via mcp -virtualenv==21.1.0 +virtualenv==21.2.0 # via pre-commit wcmatch==8.5.2 # via semgrep diff --git a/docker-requirements.txt b/docker-requirements.txt index 2929fef6..d08b0a08 100644 --- a/docker-requirements.txt +++ b/docker-requirements.txt @@ -89,7 +89,7 @@ pydantic-settings==2.13.1 # via mcp pyinstrument==5.1.2 # via glances -pyjwt==2.11.0 +pyjwt==2.12.1 # via mcp python-dateutil==2.9.0.post0 # via glances @@ -142,6 +142,7 @@ typing-extensions==4.15.0 # mcp # pydantic # pydantic-core + # pyjwt # referencing # starlette # typing-inspection diff --git a/docs/api/python.rst b/docs/api/python.rst index bfd23be7..8c314b56 100644 --- a/docs/api/python.rst +++ b/docs/api/python.rst @@ -22,25 +22,25 @@ use the following code: >>> gl = api.GlancesAPI() >>> gl.cpu {'cpucore': 16, - 'ctx_switches': 400275193, + 'ctx_switches': 950211632, 'guest': 0.0, - 'idle': 93.4, - 'interrupts': 279831071, - 'iowait': 0.3, + 'idle': 93.3, + 'interrupts': 619970751, + 'iowait': 0.4, 'irq': 0.0, 'nice': 0.0, - 'soft_interrupts': 112210940, + 'soft_interrupts': 262362166, 'steal': 0.0, 'syscalls': 0, - 'system': 4.4, - 'total': 5.7, - 'user': 1.9} + 'system': 4.6, + 'total': 7.9, + 'user': 1.6} >>> gl.cpu.get("total") - 5.7 + 7.9 >>> gl.mem.get("used") - 11610404872 + 14060857352 >>> gl.auto_unit(gl.mem.get("used")) - 10.8G + 13.1G If the stats return a list of items (like network interfaces or processes), you can access them by their name: @@ -48,22 +48,22 @@ access them by their name: .. code-block:: python >>> gl.network.keys() - ['wlp0s20f3'] + ['wlp0s20f3', 'veth65928bd', 'vethd29cb30'] >>> gl.network["wlp0s20f3"] {'alias': None, - 'bytes_all': 144, - 'bytes_all_gauge': 7642237288, - 'bytes_all_rate_per_sec': 562.0, - 'bytes_recv': 144, - 'bytes_recv_gauge': 7236972362, - 'bytes_recv_rate_per_sec': 562.0, - 'bytes_sent': 0, - 'bytes_sent_gauge': 405264926, - 'bytes_sent_rate_per_sec': 0.0, + 'bytes_all': 213, + 'bytes_all_gauge': 10622983170, + 'bytes_all_rate_per_sec': 777.0, + 'bytes_recv': 127, + 'bytes_recv_gauge': 9720022882, + 'bytes_recv_rate_per_sec': 463.0, + 'bytes_sent': 86, + 'bytes_sent_gauge': 902960288, + 'bytes_sent_rate_per_sec': 313.0, 'interface_name': 'wlp0s20f3', 'key': 'interface_name', 'speed': 0, - 'time_since_update': 0.2560842037200928} + 'time_since_update': 0.27402782440185547} Init Glances Python API ----------------------- @@ -95,30 +95,30 @@ Alert stats: >>> type(gl.alert) >>> gl.alert - [{'avg': 84.95920654221204, - 'begin': 1772894442, + [{'avg': 99.99694823927712, + 'begin': 1773482386, 'count': 2, 'desc': '', 'end': -1, 'global_msg': 'High swap (paging) usage', - 'max': 84.95920654221204, - 'min': 84.95920654221204, + 'max': 99.99694823927712, + 'min': 99.99694823927712, 'sort': 'memory_percent', - 'state': 'WARNING', - 'sum': 169.9184130844241, - 'top': [], + 'state': 'CRITICAL', + 'sum': 199.99389647855423, + 'top': ['code', 'code', 'firefox'], 'type': 'MEMSWAP'}, - {'avg': 70.64898040310717, - 'begin': 1772894442, + {'avg': 85.57934238808679, + 'begin': 1773482386, 'count': 2, 'desc': '', 'end': -1, 'global_msg': 'High swap (paging) usage', - 'max': 70.70363122278216, - 'min': 70.59432958343217, + 'max': 85.62609864617934, + 'min': 85.53258612999424, 'sort': 'memory_percent', 'state': 'WARNING', - 'sum': 141.29796080621435, + 'sum': 171.15868477617357, 'top': [], 'type': 'MEM'}] @@ -156,12 +156,12 @@ Ports stats: >>> gl.ports [{'description': 'DefaultGateway', - 'host': '192.168.0.254', + 'host': '192.168.1.1', 'indice': 'port_0', 'port': 0, 'refresh': 30, 'rtt_warning': None, - 'status': 0.014996, + 'status': 0.005703, 'timeout': 3}] Ports fields description: @@ -202,14 +202,14 @@ Diskio stats: >>> gl.diskio.get("nvme0n1") {'disk_name': 'nvme0n1', 'key': 'disk_name', - 'read_bytes': 21177210368, - 'read_count': 832513, + 'read_bytes': 41583127040, + 'read_count': 1684393, 'read_latency': 0, - 'read_time': 241031, - 'write_bytes': 147585041408, - 'write_count': 3553571, + 'read_time': 620868, + 'write_bytes': 176842413056, + 'write_count': 5687544, 'write_latency': 0, - 'write_time': 6937742} + 'write_time': 9476140} Diskio fields description: @@ -249,7 +249,33 @@ Containers stats: >>> type(gl.containers) >>> gl.containers - [] + Return a dict of dict with key= + >>> gl.containers.keys() + ['nats-for-glances', 'timescaledb-for-glances'] + >>> gl.containers.get("nats-for-glances") + {'command': '/nats-server --config nats-server.conf', + 'cpu': {'total': 0.0}, + 'cpu_percent': 0.0, + 'created': '2026-03-12T20:14:41.833733458Z', + 'engine': 'docker', + 'id': '5a46c40efc1cf41d855e35617b5b34ba146b78b9f8fd2a07dcfab9cd2a9d673b', + 'image': ('nats:latest',), + 'io': {}, + 'io_rx': None, + 'io_wx': None, + 'key': 'name', + 'memory': {}, + 'memory_inactive_file': None, + 'memory_limit': None, + 'memory_percent': None, + 'memory_usage': None, + 'name': 'nats-for-glances', + 'network': {}, + 'network_rx': None, + 'network_tx': None, + 'ports': '4222->4222/tcp,6222->6222/tcp,8222->8222/tcp', + 'status': 'running', + 'uptime': 'yesterday'} Containers fields description: @@ -294,11 +320,11 @@ Processcount stats: >>> type(gl.processcount) >>> gl.processcount - {'pid_max': 0, 'running': 1, 'sleeping': 441, 'thread': 2347, 'total': 588} + {'pid_max': 0, 'running': 2, 'sleeping': 470, 'thread': 2694, 'total': 610} >>> gl.processcount.keys() ['total', 'running', 'sleeping', 'thread', 'pid_max'] >>> gl.processcount.get("total") - 588 + 610 Processcount fields description: @@ -383,13 +409,13 @@ Percpu stats: 'guest_nice': 0.0, 'idle': 28.0, 'interrupt': None, - 'iowait': 0.0, + 'iowait': 1.0, 'irq': 0.0, 'key': 'cpu_number', 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 10.0, + 'system': 12.0, 'total': 72.0, 'user': 0.0} @@ -477,22 +503,22 @@ Network stats: >>> gl.network Return a dict of dict with key= >>> gl.network.keys() - ['wlp0s20f3'] + ['wlp0s20f3', 'veth65928bd', 'vethd29cb30'] >>> gl.network.get("wlp0s20f3") {'alias': None, 'bytes_all': 0, - 'bytes_all_gauge': 7642237288, + 'bytes_all_gauge': 10622983170, 'bytes_all_rate_per_sec': 0.0, 'bytes_recv': 0, - 'bytes_recv_gauge': 7236972362, + 'bytes_recv_gauge': 9720022882, 'bytes_recv_rate_per_sec': 0.0, 'bytes_sent': 0, - 'bytes_sent_gauge': 405264926, + 'bytes_sent_gauge': 902960288, 'bytes_sent_rate_per_sec': 0.0, 'interface_name': 'wlp0s20f3', 'key': 'interface_name', 'speed': 0, - 'time_since_update': 0.002893686294555664} + 'time_since_update': 0.004399776458740234} Network fields description: @@ -533,23 +559,23 @@ Cpu stats: >>> gl.cpu {'cpucore': 16, - 'ctx_switches': 400275193, + 'ctx_switches': 950211632, 'guest': 0.0, - 'idle': 93.4, - 'interrupts': 279831071, - 'iowait': 0.3, + 'idle': 93.3, + 'interrupts': 619970751, + 'iowait': 0.4, 'irq': 0.0, 'nice': 0.0, - 'soft_interrupts': 112210940, + 'soft_interrupts': 262362166, 'steal': 0.0, 'syscalls': 0, - 'system': 4.4, - 'total': 5.7, - 'user': 1.9} + 'system': 4.6, + 'total': 7.9, + 'user': 1.6} >>> gl.cpu.keys() ['total', 'user', 'nice', 'system', 'idle', 'iowait', 'irq', 'steal', 'guest', 'ctx_switches', 'interrupts', 'soft_interrupts', 'syscalls', 'cpucore'] >>> gl.cpu.get("total") - 5.7 + 7.9 Cpu fields description: @@ -624,7 +650,7 @@ Amps stats: 'refresh': 3.0, 'regex': True, 'result': None, - 'timer': 0.22821807861328125} + 'timer': 0.28525495529174805} Amps fields description: @@ -655,35 +681,158 @@ Processlist stats: >>> gl.processlist Return a dict of dict with key= >>> gl.processlist.keys() - [383172, 381638, 7363, 382286, 7114, 7465, 9438, 393293, 7510, 7472, 9549, 410004, 409081, 143728, 7492, 420486, 5889, 7479, 510020, 7419, 508725, 379849, 3064, 508724, 9326, 9525, 508727, 508761, 9172, 279745, 381625, 420439, 508750, 542260, 382453, 418378, 539139, 541609, 540112, 383079, 9491, 7373, 3653, 489224, 382500, 542225, 382782, 430486, 6528, 9898, 509915, 7345, 8061, 14270, 540832, 6882, 6312, 9397, 14036, 6107, 6527, 382501, 710, 382285, 2738, 7341, 8901, 6189, 6021, 6921, 3078, 6637, 6894, 6037, 6502, 6378, 382454, 6076, 2821, 6665, 6070, 3649, 1, 9329, 3050, 6013, 6214, 10325, 5856, 2755, 6917, 6094, 6061, 2750, 6068, 45075, 5502, 6273, 10323, 9328, 5655, 2751, 6495, 5523, 2726, 10326, 6087, 6064, 2719, 6112, 7631, 3114, 5472, 6079, 2558, 20127, 5525, 2822, 5526, 3432, 3069, 2958, 6466, 2747, 6058, 6092, 3727, 133846, 6066, 44462, 2931, 133836, 3659, 2740, 768, 5519, 2933, 2722, 6250, 2559, 6135, 6090, 10324, 6342, 6329, 489460, 5587, 2715, 5842, 2748, 6419, 2557, 5537, 6280, 5993, 510535, 2745, 5888, 6081, 6316, 6223, 6059, 5853, 6352, 6210, 5161, 5160, 5591, 6082, 5803, 2714, 5635, 6022, 530485, 2733, 303250, 370413, 113947, 5812, 2855, 6517, 488505, 9925, 113930, 54481, 5902, 2713, 5520, 113966, 382078, 2556, 2718, 3855, 6925, 2568, 2743, 542221, 113969, 3660, 3691, 3673, 442184, 537689, 5598, 3666, 3669, 542224, 5509, 3248, 3058, 3061, 7207, 2803, 2566, 9344, 5195, 3249, 381929, 9874, 2, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 121, 122, 123, 124, 125, 126, 127, 129, 132, 133, 134, 135, 136, 137, 139, 141, 142, 143, 144, 145, 146, 147, 148, 151, 152, 153, 154, 155, 156, 177, 178, 201, 221, 223, 251, 259, 260, 261, 262, 263, 264, 265, 267, 268, 352, 354, 357, 358, 359, 360, 437, 438, 439, 600, 601, 603, 605, 610, 643, 644, 742, 743, 776, 942, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 1027, 1162, 1235, 1302, 1303, 1365, 1370, 1371, 1372, 1373, 1454, 1460, 1479, 1484, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1957, 1958, 1959, 1960, 1961, 1962, 1964, 1965, 1966, 1967, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2025, 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2068, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2084, 2085, 2086, 2087, 2088, 2090, 2092, 2093, 2096, 2097, 2099, 3695, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3999, 113942, 399089, 440259, 475463, 480360, 482606, 488234, 488241, 490944, 491001, 506049, 508052, 512068, 513127, 514153, 514751, 518709, 519529, 520729, 521012, 521148, 522207, 522719, 523021, 523761, 524769, 525889, 528650, 528849, 529064, 529528, 530191, 530295, 531044, 531056, 531875, 533982, 534225, 534574, 534668, 535180, 535364, 535380, 535381, 535541, 535556, 537463, 537464, 538033, 538354, 538828, 539900, 540295, 540869, 540985, 541695, 541960, 541961, 541962, 542149] - >>> gl.processlist.get("383172") - {'cmdline': ['/home/nicolargo/.cache/cloud-code/cloudcode_cli/cloudcode_cli/5d90276a/cloudcode_cli', - 'duet', - '-trace', - '-logtostderr'], + [1137955, 381638, 982326, 1138611, 982671, 383172, 983933, 1269592, 9549, 9438, 1272943, 984547, 983316, 1275188, 983323, 983926, 1286477, 143728, 983562, 5889, 1139328, 379849, 1139810, 982718, 1139213, 1139809, 1259998, 1293449, 3064, 420486, 1259956, 984728, 969622, 1137956, 1139772, 9326, 3653, 1139793, 1139828, 9172, 510020, 9525, 1138830, 6528, 1339634, 1338195, 1338699, 1337129, 1138670, 1331914, 9491, 1138610, 1138669, 1138706, 983309, 1293541, 970187, 982681, 710, 1339631, 6882, 982637, 970188, 382453, 9898, 14270, 2738, 982633, 14036, 6312, 6527, 9397, 970197, 6637, 970193, 1138820, 6021, 6921, 3078, 2726, 6107, 382500, 6189, 6037, 8901, 6502, 6070, 1, 6894, 7631, 6076, 430486, 509915, 382285, 6665, 3050, 2821, 6013, 970195, 6214, 5502, 5525, 970194, 6378, 9329, 3649, 45075, 6917, 5856, 5523, 5472, 6094, 2750, 6495, 6061, 6068, 6112, 382454, 970196, 3114, 20127, 2958, 6273, 1129232, 969602, 6087, 1129212, 6466, 5526, 6058, 768, 6064, 2931, 5655, 5519, 2719, 2755, 6066, 2822, 6135, 6079, 1138400, 2715, 5537, 9328, 2747, 6092, 2558, 2722, 133836, 2740, 3432, 3727, 2933, 44462, 133846, 3069, 6223, 6280, 6419, 6329, 5587, 578713, 5842, 5993, 1259397, 6342, 489460, 6316, 5888, 6090, 3659, 6352, 6081, 6250, 2745, 6022, 2559, 2714, 6059, 5853, 2751, 6082, 2855, 530485, 5591, 6210, 2557, 5635, 2748, 5160, 2713, 5803, 5902, 5812, 5161, 303250, 113947, 5520, 113930, 113966, 2733, 2718, 54481, 9925, 1339627, 2568, 3855, 2556, 370413, 1129171, 969581, 982491, 1129156, 1129177, 6517, 1129143, 1129150, 1129164, 6925, 969574, 1138235, 3660, 3691, 2743, 113969, 10324, 10325, 3673, 10323, 10326, 1310155, 3666, 1339630, 3669, 5598, 442184, 3248, 5509, 3058, 3061, 2803, 2566, 5195, 3249, 9344, 9874, 381929, 2, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 121, 122, 123, 124, 125, 126, 127, 129, 132, 133, 134, 135, 136, 137, 139, 141, 142, 143, 144, 145, 146, 147, 148, 151, 152, 153, 154, 155, 156, 177, 178, 201, 221, 223, 251, 259, 260, 261, 262, 263, 264, 265, 267, 268, 352, 354, 357, 358, 359, 360, 437, 438, 439, 600, 601, 603, 605, 610, 643, 644, 742, 743, 776, 942, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 1027, 1162, 1235, 1302, 1303, 1365, 1370, 1371, 1372, 1373, 1454, 1460, 1479, 1484, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1957, 1958, 1959, 1960, 1961, 1962, 1964, 1965, 1966, 1967, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2025, 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2068, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2084, 2085, 2086, 2087, 2088, 2090, 2092, 2093, 2096, 2097, 2099, 3695, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3999, 113942, 982196, 1241367, 1256182, 1259222, 1259226, 1265101, 1278099, 1297831, 1299949, 1300959, 1306656, 1308542, 1310071, 1310654, 1311564, 1311770, 1315122, 1315254, 1320306, 1320564, 1321060, 1321911, 1323785, 1324894, 1324895, 1326039, 1326454, 1327752, 1329151, 1329570, 1329811, 1330195, 1331677, 1331759, 1332181, 1332206, 1333307, 1333323, 1334026, 1334176, 1334291, 1334522, 1334972, 1335046, 1335416, 1337307, 1337534, 1337606, 1337876, 1339200, 1339373, 1339500] + >>> gl.processlist.get("1137955") + {'cmdline': ['/proc/self/exe', + '--type=utility', + '--utility-sub-type=node.mojom.NodeService', + '--lang=en-US', + '--service-sandbox-type=none', + '--no-sandbox', + '--dns-result-order=ipv4first', + '--experimental-network-inspection', + '--inspect-port=0', + '--crashpad-handler-pid=9344', + '--enable-crash-reporter=864d4bb7-dd20-4851-830f-29e81dd93517,no_channel', + '--user-data-dir=/home/nicolargo/.config/Code', + '--standard-schemes=vscode-webview,vscode-file', + '--secure-schemes=vscode-webview,vscode-file', + '--cors-schemes=vscode-webview,vscode-file', + '--fetch-schemes=vscode-webview,vscode-file', + '--service-worker-schemes=vscode-webview', + '--code-cache-schemes=vscode-webview,vscode-file', + '--shared-files=v8_context_snapshot_data:100', + '--field-trial-handle=3,i,14671767833276363776,4659770901268553168,262144', + '--enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EarlyEstablishGpuChannel,EstablishGpuChannelAsync', + '--disable-features=CalculateNativeWinOcclusion,FontationsLinuxSystemFonts,ScreenAIOCREnabled,SpareRendererForSitePerProcess', + '--variations-seed-version'], 'cpu_percent': 0.0, - 'cpu_times': {'children_system': 0.0, - 'children_user': 0.0, + 'cpu_times': {'children_system': 139.12, + 'children_user': 97.69, 'iowait': 0.0, - 'system': 10.87, - 'user': 207.36}, + 'system': 151.01, + 'user': 287.8}, 'gids': {'effective': 1000, 'real': 1000, 'saved': 1000}, - 'io_counters': [580788224, 4096, 580788224, 4096, 1], + 'io_counters': [638033920, + 126803968, + 638033920, + 126803968, + 1, + 1106728960, + 200749056, + 1106728960, + 200749056, + 1, + 94219264, + 32768, + 94219264, + 32768, + 1, + 840525824, + 145575936, + 840525824, + 145575936, + 1, + 491060224, + 385024, + 491060224, + 385024, + 1, + 4399104, + 0, + 4399104, + 0, + 1, + 19957760, + 20480, + 19957760, + 20480, + 1, + 577536, + 0, + 577536, + 0, + 1, + 3002368, + 0, + 3002368, + 0, + 1, + 41243648, + 0, + 41243648, + 0, + 1, + 5644288, + 0, + 5644288, + 0, + 1, + 1853217792, + 483848192, + 1853217792, + 483848192, + 1, + 3178496, + 0, + 3178496, + 0, + 1, + 5281792, + 5287936, + 5281792, + 5287936, + 1, + 161751040, + 3064426496, + 161751040, + 3064426496, + 1, + 3366912, + 0, + 3366912, + 0, + 1, + 33189888, + 0, + 33189888, + 0, + 1, + 23565312, + 172032, + 23565312, + 172032, + 1, + 49403904, + 27521024, + 49403904, + 27521024, + 1, + 226957312, + 3399680, + 226957312, + 3399680, + 1, + 1024000, + 0, + 1024000, + 0, + 1], 'key': 'pid', - 'memory_info': {'data': 3313868800, + 'memory_info': {'data': 2349182976, 'dirty': 0, 'lib': 0, - 'rss': 1551958016, - 'shared': 24248320, - 'text': 99307520, - 'vms': 5210402816}, - 'memory_percent': 9.450925135361175, - 'name': 'cloudcode_cli', + 'rss': 1169195008, + 'shared': 74805248, + 'text': 148733952, + 'vms': 1498174038016}, + 'memory_percent': 7.120021531076012, + 'name': 'code', 'nice': 0, - 'num_threads': 21, - 'pid': 383172, + 'num_threads': 22, + 'pid': 1137955, 'status': 'S', - 'time_since_update': 0.524019718170166, + 'time_since_update': 0.5523881912231445, 'username': 'nicolargo'} Processlist fields description: @@ -769,14 +918,11 @@ Load stats: >>> type(gl.load) >>> gl.load - {'cpucore': 16, - 'min1': 0.43017578125, - 'min15': 0.5341796875, - 'min5': 0.48779296875} + {'cpucore': 16, 'min1': 1.400390625, 'min15': 0.7158203125, 'min5': 0.8515625} >>> gl.load.keys() ['min1', 'min5', 'min15', 'cpucore'] >>> gl.load.get("min1") - 0.43017578125 + 1.400390625 Load fields description: @@ -818,7 +964,7 @@ Sensors stats: 'label': 'Ambient', 'type': 'temperature_core', 'unit': 'C', - 'value': 39, + 'value': 37, 'warning': 0} Sensors fields description: @@ -856,7 +1002,7 @@ Uptime stats: >>> type(gl.uptime) >>> gl.uptime - '13 days, 4:17:33' + '19 days, 23:36:27' Uptime limits: @@ -875,11 +1021,11 @@ Now stats: >>> type(gl.now) >>> gl.now - {'custom': '2026-03-07 15:40:43 CET', 'iso': '2026-03-07T15:40:43+01:00'} + {'custom': '2026-03-14 10:59:46 CET', 'iso': '2026-03-14T10:59:46+01:00'} >>> gl.now.keys() ['iso', 'custom'] >>> gl.now.get("iso") - '2026-03-07T15:40:43+01:00' + '2026-03-14T10:59:46+01:00' Now fields description: @@ -908,14 +1054,14 @@ Fs stats: ['/', '/zsfpool'] >>> gl.fs.get("/") {'device_name': '/dev/mapper/ubuntu--vg-ubuntu--lv', - 'free': 557533294592, + 'free': 554743611392, 'fs_type': 'ext4', 'key': 'mnt_point', 'mnt_point': '/', 'options': 'rw,relatime', - 'percent': 41.5, + 'percent': 41.8, 'size': 1003736440832, - 'used': 395140640768} + 'used': 397930323968} Fs fields description: @@ -955,8 +1101,8 @@ Wifi stats: ['wlp0s20f3'] >>> gl.wifi.get("wlp0s20f3") {'key': 'ssid', - 'quality_level': -68.0, - 'quality_link': 42.0, + 'quality_level': -58.0, + 'quality_link': 52.0, 'ssid': 'wlp0s20f3'} Wifi limits: @@ -980,11 +1126,11 @@ Ip stats: >>> type(gl.ip) >>> gl.ip - {'address': '192.168.0.26', 'mask': '255.255.255.0', 'mask_cidr': 24} + {'address': '172.17.0.1', 'mask': '255.255.0.0', 'mask_cidr': 16} >>> gl.ip.keys() ['address', 'mask', 'mask_cidr'] >>> gl.ip.get("address") - '192.168.0.26' + '172.17.0.1' Ip fields description: @@ -1018,7 +1164,7 @@ Version stats: >>> type(gl.version) >>> gl.version - '4.5.1' + '4.5.2_dev01' Version limits: @@ -1084,19 +1230,19 @@ Mem stats: >>> type(gl.mem) >>> gl.mem - {'active': 7195017216, - 'available': 4810823672, - 'buffers': 153518080, - 'cached': 3706472568, - 'free': 1248141312, - 'inactive': 6160068608, - 'percent': 70.7, - 'percent_max': 70.7, - 'percent_mean': 70.7, - 'percent_min': 70.7, - 'shared': 822358016, + {'active': 6535598080, + 'available': 2360371192, + 'buffers': 116178944, + 'cached': 3207952504, + 'free': 407285760, + 'inactive': 7844573184, + 'percent': 85.6, + 'percent_max': 85.6, + 'percent_mean': 85.6, + 'percent_min': 85.6, + 'shared': 1009385472, 'total': 16421228544, - 'used': 11610404872} + 'used': 14060857352} >>> gl.mem.keys() ['total', 'available', 'percent', 'used', 'free', 'active', 'inactive', 'buffers', 'cached', 'shared', 'percent_min', 'percent_max', 'percent_mean'] >>> gl.mem.get("total") @@ -1169,60 +1315,30 @@ Quicklook stats: >>> type(gl.quicklook) >>> gl.quicklook - {'cpu': 5.7, + {'cpu': 7.9, 'cpu_hz': 4475000000.0, - 'cpu_hz_current': 598398937.5, + 'cpu_hz_current': 753007250.0, 'cpu_log_core': 16, 'cpu_name': '13th Gen Intel(R) Core(TM) i7-13620H', 'cpu_phys_core': 10, - 'load': 3.3, - 'mem': 70.7, + 'load': 4.5, + 'mem': 85.6, 'percpu': [{'cpu_number': 0, 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, 'idle': 28.0, 'interrupt': None, - 'iowait': 0.0, + 'iowait': 1.0, 'irq': 0.0, 'key': 'cpu_number', 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 10.0, + 'system': 12.0, 'total': 72.0, 'user': 0.0}, {'cpu_number': 1, - 'dpc': None, - 'guest': 0.0, - 'guest_nice': 0.0, - 'idle': 39.0, - 'interrupt': None, - 'iowait': 0.0, - 'irq': 0.0, - 'key': 'cpu_number', - 'nice': 0.0, - 'softirq': 0.0, - 'steal': 0.0, - 'system': 0.0, - 'total': 61.0, - 'user': 0.0}, - {'cpu_number': 2, - 'dpc': None, - 'guest': 0.0, - 'guest_nice': 0.0, - 'idle': 39.0, - 'interrupt': None, - 'iowait': 0.0, - 'irq': 0.0, - 'key': 'cpu_number', - 'nice': 0.0, - 'softirq': 0.0, - 'steal': 0.0, - 'system': 0.0, - 'total': 61.0, - 'user': 0.0}, - {'cpu_number': 3, 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, @@ -1237,26 +1353,11 @@ Quicklook stats: 'system': 0.0, 'total': 60.0, 'user': 0.0}, - {'cpu_number': 4, + {'cpu_number': 2, 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, - 'idle': 18.0, - 'interrupt': None, - 'iowait': 1.0, - 'irq': 0.0, - 'key': 'cpu_number', - 'nice': 0.0, - 'softirq': 0.0, - 'steal': 0.0, - 'system': 11.0, - 'total': 82.0, - 'user': 8.0}, - {'cpu_number': 5, - 'dpc': None, - 'guest': 0.0, - 'guest_nice': 0.0, - 'idle': 38.0, + 'idle': 36.0, 'interrupt': None, 'iowait': 0.0, 'irq': 0.0, @@ -1264,8 +1365,53 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 1.0, - 'total': 62.0, + 'system': 0.0, + 'total': 64.0, + 'user': 3.0}, + {'cpu_number': 3, + 'dpc': None, + 'guest': 0.0, + 'guest_nice': 0.0, + 'idle': 41.0, + 'interrupt': None, + 'iowait': 0.0, + 'irq': 0.0, + 'key': 'cpu_number', + 'nice': 0.0, + 'softirq': 0.0, + 'steal': 0.0, + 'system': 0.0, + 'total': 59.0, + 'user': 0.0}, + {'cpu_number': 4, + 'dpc': None, + 'guest': 0.0, + 'guest_nice': 0.0, + 'idle': 18.0, + 'interrupt': None, + 'iowait': 0.0, + 'irq': 0.0, + 'key': 'cpu_number', + 'nice': 0.0, + 'softirq': 0.0, + 'steal': 0.0, + 'system': 12.0, + 'total': 82.0, + 'user': 7.0}, + {'cpu_number': 5, + 'dpc': None, + 'guest': 0.0, + 'guest_nice': 0.0, + 'idle': 40.0, + 'interrupt': None, + 'iowait': 0.0, + 'irq': 0.0, + 'key': 'cpu_number', + 'nice': 0.0, + 'softirq': 0.0, + 'steal': 0.0, + 'system': 0.0, + 'total': 60.0, 'user': 0.0}, {'cpu_number': 6, 'dpc': None, @@ -1279,7 +1425,7 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 0.0, + 'system': 1.0, 'total': 61.0, 'user': 1.0}, {'cpu_number': 7, @@ -1296,12 +1442,12 @@ Quicklook stats: 'steal': 0.0, 'system': 0.0, 'total': 60.0, - 'user': 0.0}, + 'user': 1.0}, {'cpu_number': 8, 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, - 'idle': 39.0, + 'idle': 38.0, 'interrupt': None, 'iowait': 0.0, 'irq': 0.0, @@ -1309,9 +1455,9 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 0.0, - 'total': 61.0, - 'user': 0.0}, + 'system': 1.0, + 'total': 62.0, + 'user': 1.0}, {'cpu_number': 9, 'dpc': None, 'guest': 0.0, @@ -1331,7 +1477,7 @@ Quicklook stats: 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, - 'idle': 37.0, + 'idle': 38.0, 'interrupt': None, 'iowait': 0.0, 'irq': 0.0, @@ -1339,9 +1485,9 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 0.0, - 'total': 63.0, - 'user': 2.0}, + 'system': 1.0, + 'total': 62.0, + 'user': 1.0}, {'cpu_number': 11, 'dpc': None, 'guest': 0.0, @@ -1361,7 +1507,7 @@ Quicklook stats: 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, - 'idle': 40.0, + 'idle': 38.0, 'interrupt': None, 'iowait': 0.0, 'irq': 0.0, @@ -1370,8 +1516,8 @@ Quicklook stats: 'softirq': 0.0, 'steal': 0.0, 'system': 1.0, - 'total': 60.0, - 'user': 0.0}, + 'total': 62.0, + 'user': 2.0}, {'cpu_number': 13, 'dpc': None, 'guest': 0.0, @@ -1386,12 +1532,12 @@ Quicklook stats: 'steal': 0.0, 'system': 0.0, 'total': 61.0, - 'user': 0.0}, + 'user': 1.0}, {'cpu_number': 14, 'dpc': None, 'guest': 0.0, 'guest_nice': 0.0, - 'idle': 40.0, + 'idle': 39.0, 'interrupt': None, 'iowait': 0.0, 'irq': 0.0, @@ -1399,8 +1545,8 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 0.0, - 'total': 60.0, + 'system': 1.0, + 'total': 61.0, 'user': 1.0}, {'cpu_number': 15, 'dpc': None, @@ -1414,10 +1560,10 @@ Quicklook stats: 'nice': 0.0, 'softirq': 0.0, 'steal': 0.0, - 'system': 0.0, + 'system': 1.0, 'total': 61.0, 'user': 0.0}], - 'swap': 85.0} + 'swap': 100.0} >>> gl.quicklook.keys() ['cpu_name', 'cpu_hz_current', 'cpu_hz', 'cpu', 'percpu', 'mem', 'swap', 'cpu_log_core', 'cpu_phys_core', 'load'] >>> gl.quicklook.get("cpu_name") @@ -1467,13 +1613,13 @@ Memswap stats: >>> type(gl.memswap) >>> gl.memswap - {'free': 645996544, - 'percent': 85.0, - 'sin': 1756889088, - 'sout': 6177804288, - 'time_since_update': 0.5025882720947266, + {'free': 131072, + 'percent': 100.0, + 'sin': 2963709952, + 'sout': 8942342144, + 'time_since_update': 0.5668575763702393, 'total': 4294963200, - 'used': 3648966656} + 'used': 4294832128} >>> gl.memswap.keys() ['total', 'used', 'free', 'percent', 'sin', 'sout', 'time_since_update'] >>> gl.memswap.get("total") @@ -1508,10 +1654,10 @@ Use auto_unit() function to generate a human-readable string with the unit: .. code-block:: python >>> gl.mem.get("used") - 11610404872 + 14060857352 >>> gl.auto_unit(gl.mem.get("used")) - 10.8G + 13.1G Args: @@ -1537,7 +1683,7 @@ Use bar() function to generate a bar: .. code-block:: python >>> gl.bar(gl.mem["percent"]) - ■■■■■■■■■■■■■□□□□□ + ■■■■■■■■■■■■■■■□□□ Args: @@ -1567,7 +1713,7 @@ Use top_process() function to generate a list of top processes sorted by CPU or .. code-block:: python >>> gl.top_process() - [{'cpu_times': {'user': 107.69, 'system': 27.59, 'children_user': 0.0, 'children_system': 0.0, 'iowait': 0.0}, 'status': 'S', 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'cpu_percent': 5.9, 'nice': 0, 'num_threads': 32, 'io_counters': [52625408, 131072, 52625408, 131072, 1], 'pid': 7492, 'name': 'Isolated Web Co', 'memory_info': {'rss': 334651392, 'vms': 3229675520, 'shared': 112164864, 'text': 651264, 'lib': 0, 'data': 453656576, 'dirty': 0}, 'memory_percent': 2.037919337784719, 'key': 'pid', 'time_since_update': 0.524019718170166, 'cmdline': ['/snap/firefox/7720/usr/lib/firefox/firefox', '-contentproc', '-isForBrowser', '-prefsHandle', '0:35279', '-prefMapHandle', '1:280941', '-jsInitHandle', '2:223968', '-parentBuildID', '20260127070045', '-sandboxReporter', '3', '-chrootClient', '4', '-ipcHandle', '5', '-initialChannelId', '{ec46e0e6-56fd-4d16-8585-5a7ef3d4472e}', '-parentPid', '7114', '-crashReporter', '6', '-crashHelper', '7', '-greomni', '/snap/firefox/7720/usr/lib/firefox/omni.ja', '-appomni', '/snap/firefox/7720/usr/lib/firefox/browser/omni.ja', '-appDir', '/snap/firefox/7720/usr/lib/firefox/browser', '9', 'tab'], 'username': 'nicolargo'}, {'cpu_times': {'user': 86.76, 'system': 39.38, 'children_user': 0.59, 'children_system': 0.54, 'iowait': 0.0}, 'status': 'S', 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'cpu_percent': 2.0, 'nice': 0, 'num_threads': 15, 'io_counters': [3092480, 10076160, 3092480, 10076160, 1], 'pid': 420486, 'name': 'claude', 'memory_info': {'rss': 302530560, 'vms': 76281266176, 'shared': 30695424, 'text': 64000000, 'lib': 0, 'data': 72690749440, 'dirty': 0}, 'memory_percent': 1.8423138024623549, 'key': 'pid', 'time_since_update': 0.524019718170166, 'cmdline': ['/home/nicolargo/.vscode/extensions/anthropic.claude-code-2.1.63-linux-x64/resources/native-binary/claude', '--output-format', 'stream-json', '--verbose', '--input-format', 'stream-json', '--max-thinking-tokens', '31999', '--model', 'default', '--permission-prompt-tool', 'stdio', '--mcp-config', '{"mcpServers":{"claude-vscode":{"type":"sdk","name":"claude-vscode"}}}', '--setting-sources', 'user,project,local', '--permission-mode', 'default', '--include-partial-messages', '--debug', '--debug-to-stderr', '--enable-auth-status', '--no-chrome'], 'username': 'nicolargo'}, {'cpu_times': {'user': 2264.49, 'system': 1083.37, 'children_user': 20.79, 'children_system': 4.22, 'iowait': 0.0}, 'status': 'S', 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'cpu_percent': 2.0, 'nice': 0, 'num_threads': 39, 'io_counters': [185503744, 3035136, 185503744, 3035136, 1], 'pid': 5889, 'name': 'gnome-shell', 'memory_info': {'rss': 265797632, 'vms': 6066737152, 'shared': 88915968, 'text': 8192, 'lib': 0, 'data': 547975168, 'dirty': 0}, 'memory_percent': 1.6186220859651657, 'key': 'pid', 'time_since_update': 0.524019718170166, 'cmdline': ['/usr/bin/gnome-shell'], 'username': 'nicolargo'}] + [{'num_threads': 34, 'status': 'S', 'pid': 983933, 'cpu_times': {'user': 689.95, 'system': 47.3, 'children_user': 0.0, 'children_system': 0.0, 'iowait': 0.0}, 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'nice': 0, 'memory_info': {'rss': 602025984, 'vms': 3389485056, 'shared': 119844864, 'text': 659456, 'lib': 0, 'data': 645808128, 'dirty': 0}, 'io_counters': [897024, 0, 897024, 0, 1, 945152, 0, 945152, 0, 1, 3243008, 0, 3243008, 0, 1, 3736576, 0, 3736576, 0, 1, 21504, 0, 21504, 0, 1, 189440, 0, 189440, 0, 1, 442368, 65536, 442368, 65536, 1, 172032, 0, 172032, 0, 1, 1031168, 0, 1031168, 0, 1, 1892352, 0, 1892352, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 'memory_percent': 3.666144602926001, 'name': 'Isolated Web Co', 'cpu_percent': 1.9, 'key': 'pid', 'time_since_update': 0.5523881912231445, 'cmdline': ['/snap/firefox/7967/usr/lib/firefox/firefox', '-contentproc', '-isForBrowser', '-prefsHandle', '0:46380', '-prefMapHandle', '1:282338', '-jsInitHandle', '2:227672', '-parentBuildID', '20260309231353', '-sandboxReporter', '3', '-chrootClient', '4', '-ipcHandle', '5', '-initialChannelId', '{3ecc008a-6b1c-4193-877d-33b33f8859c8}', '-parentPid', '982326', '-crashReporter', '6', '-crashHelper', '7', '-greomni', '/snap/firefox/7967/usr/lib/firefox/omni.ja', '-appomni', '/snap/firefox/7967/usr/lib/firefox/browser/omni.ja', '-appDir', '/snap/firefox/7967/usr/lib/firefox/browser', '11', 'tab'], 'username': 'nicolargo'}, {'num_threads': 25, 'status': 'S', 'pid': 9438, 'cpu_times': {'user': 3961.17, 'system': 295.5, 'children_user': 0.0, 'children_system': 0.0, 'iowait': 0.0}, 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'nice': 0, 'memory_info': {'rss': 522199040, 'vms': 1517471985664, 'shared': 88543232, 'text': 148733952, 'lib': 0, 'data': 1638785024, 'dirty': 0}, 'io_counters': [491060224, 385024, 491060224, 385024, 1], 'memory_percent': 3.1800241900341946, 'name': 'code', 'cpu_percent': 1.9, 'key': 'pid', 'time_since_update': 0.5523881912231445, 'cmdline': ['/snap/code/211/usr/share/code/code', '--type=zygote', '--no-sandbox'], 'username': 'nicolargo'}, {'num_threads': 29, 'status': 'S', 'pid': 983316, 'cpu_times': {'user': 97.94, 'system': 15.18, 'children_user': 0.0, 'children_system': 0.0, 'iowait': 0.0}, 'gids': {'real': 1000, 'effective': 1000, 'saved': 1000}, 'nice': 0, 'memory_info': {'rss': 475279360, 'vms': 3223953408, 'shared': 120664064, 'text': 659456, 'lib': 0, 'data': 477147136, 'dirty': 0}, 'io_counters': [3736576, 0, 3736576, 0, 1], 'memory_percent': 2.894298430391543, 'name': 'Isolated Web Co', 'cpu_percent': 1.9, 'key': 'pid', 'time_since_update': 0.5523881912231445, 'cmdline': ['/snap/firefox/7967/usr/lib/firefox/firefox', '-contentproc', '-isForBrowser', '-prefsHandle', '0:46349', '-prefMapHandle', '1:282338', '-jsInitHandle', '2:227672', '-parentBuildID', '20260309231353', '-sandboxReporter', '3', '-chrootClient', '4', '-ipcHandle', '5', '-initialChannelId', '{2669dd59-14fc-4a64-b310-69769e78299f}', '-parentPid', '982326', '-crashReporter', '6', '-crashHelper', '7', '-greomni', '/snap/firefox/7967/usr/lib/firefox/omni.ja', '-appomni', '/snap/firefox/7967/usr/lib/firefox/browser/omni.ja', '-appDir', '/snap/firefox/7967/usr/lib/firefox/browser', '7', 'tab'], 'username': 'nicolargo'}] Args: diff --git a/docs/api/restful.rst b/docs/api/restful.rst index c9a0a6de..95ea3d24 100644 --- a/docs/api/restful.rst +++ b/docs/api/restful.rst @@ -296,7 +296,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.45827198028564453}, + "timer": 0.42364072799682617}, {"count": 0, "countmax": 20.0, "countmin": None, @@ -305,7 +305,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.45821690559387207}] + "timer": 0.4235866069793701}] Fields descriptions: @@ -333,7 +333,7 @@ Get a specific item when field matches the given value:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.45827198028564453}]} + "timer": 0.42364072799682617}]} GET cloud --------- @@ -374,7 +374,52 @@ GET containers Get plugin stats:: # curl http://localhost:61208/api/4/containers - [] + [{"command": "/nats-server --config nats-server.conf", + "cpu": {"total": 0.0}, + "cpu_percent": 0.0, + "created": "2026-03-12T20:14:41.833733458Z", + "engine": "docker", + "id": "5a46c40efc1cf41d855e35617b5b34ba146b78b9f8fd2a07dcfab9cd2a9d673b", + "image": ["nats:latest"], + "io": {"cumulative_ior": 13967360, "cumulative_iow": 0}, + "io_rx": None, + "io_wx": None, + "key": "name", + "memory": {"inactive_file": 958464, "limit": 16421228544, "usage": 9207808}, + "memory_inactive_file": 958464, + "memory_limit": 16421228544, + "memory_percent": None, + "memory_usage": 9207808, + "name": "nats-for-glances", + "network": {"cumulative_rx": 172373, "cumulative_tx": 0}, + "network_rx": None, + "network_tx": None, + "ports": "4222->4222/tcp,6222->6222/tcp,8222->8222/tcp", + "status": "running", + "uptime": "yesterday"}, + {"command": "/docker-entrypoint.sh postgres", + "cpu": {"total": 0.0}, + "cpu_percent": 0.0, + "created": "2026-03-12T17:44:51.543600415Z", + "engine": "docker", + "id": "e8ad6ef0f8c5a9785e13ab4a53fac0d1112bd77bd713630fb8fc30a1b79db395", + "image": ["timescale/timescaledb-ha:pg17"], + "io": {}, + "io_rx": None, + "io_wx": None, + "key": "name", + "memory": {}, + "memory_inactive_file": None, + "memory_limit": None, + "memory_percent": None, + "memory_usage": None, + "name": "timescaledb-for-glances", + "network": {}, + "network_rx": None, + "network_tx": None, + "ports": "5432->5432/tcp,8008/tcp,8081/tcp", + "status": "running", + "uptime": "yesterday"}] Fields descriptions: @@ -398,6 +443,40 @@ Fields descriptions: * **pod_name**: Pod name (only with Podman) (unit is *None*) * **pod_id**: Pod ID (only with Podman) (unit is *None*) +Get a specific field:: + + # curl http://localhost:61208/api/4/containers/name + {"name": ["nats-for-glances", "timescaledb-for-glances"]} + +Get a specific item when field matches the given value:: + + # curl http://localhost:61208/api/4/containers/name/value/nats-for-glances + {"nats-for-glances": [{"command": "/nats-server --config nats-server.conf", + "cpu": {"total": 0.0}, + "cpu_percent": 0.0, + "created": "2026-03-12T20:14:41.833733458Z", + "engine": "docker", + "id": "5a46c40efc1cf41d855e35617b5b34ba146b78b9f8fd2a07dcfab9cd2a9d673b", + "image": ["nats:latest"], + "io": {"cumulative_ior": 13967360, "cumulative_iow": 0}, + "io_rx": None, + "io_wx": None, + "key": "name", + "memory": {"inactive_file": 958464, + "limit": 16421228544, + "usage": 9207808}, + "memory_inactive_file": 958464, + "memory_limit": 16421228544, + "memory_percent": None, + "memory_usage": 9207808, + "name": "nats-for-glances", + "network": {"cumulative_rx": 172373, "cumulative_tx": 0}, + "network_rx": None, + "network_tx": None, + "ports": "4222->4222/tcp,6222->6222/tcp,8222->8222/tcp", + "status": "running", + "uptime": "yesterday"}]} + GET core -------- @@ -423,19 +502,19 @@ Get plugin stats:: # curl http://localhost:61208/api/4/cpu {"cpucore": 16, - "ctx_switches": 400290536, + "ctx_switches": 950231338, "guest": 0.0, - "idle": 93.6, - "interrupts": 279841805, - "iowait": 0.2, + "idle": 90.1, + "interrupts": 619982761, + "iowait": 0.8, "irq": 0.0, "nice": 0.0, - "soft_interrupts": 112218236, + "soft_interrupts": 262369984, "steal": 0.0, "syscalls": 0, - "system": 3.2, - "total": 5.4, - "user": 3.1} + "system": 3.5, + "total": 9.8, + "user": 5.5} Fields descriptions: @@ -471,7 +550,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/cpu/total - {"total": 5.4} + {"total": 9.8} GET diskio ---------- @@ -481,20 +560,20 @@ Get plugin stats:: # curl http://localhost:61208/api/4/diskio [{"disk_name": "nvme0n1", "key": "disk_name", - "read_bytes": 21177222656, - "read_count": 832516, + "read_bytes": 41585072640, + "read_count": 1684470, "read_latency": 0, - "read_time": 241048, - "write_bytes": 147588858880, - "write_count": 3553837, + "read_time": 620916, + "write_bytes": 176842970112, + "write_count": 5687579, "write_latency": 0, - "write_time": 6940131}, + "write_time": 9476363}, {"disk_name": "nvme0n1p1", "key": "disk_name", - "read_bytes": 16305152, - "read_count": 1543, + "read_bytes": 18477056, + "read_count": 1999, "read_latency": 0, - "read_time": 1515, + "read_time": 2911, "write_bytes": 1024, "write_count": 2, "write_latency": 0, @@ -540,14 +619,14 @@ Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/diskio/disk_name/value/nvme0n1 {"nvme0n1": [{"disk_name": "nvme0n1", "key": "disk_name", - "read_bytes": 21177222656, - "read_count": 832516, + "read_bytes": 41585072640, + "read_count": 1684470, "read_latency": 0, - "read_time": 241048, - "write_bytes": 147588858880, - "write_count": 3553837, + "read_time": 620916, + "write_bytes": 176842970112, + "write_count": 5687579, "write_latency": 0, - "write_time": 6940131}]} + "write_time": 9476363}]} GET folders ----------- @@ -574,14 +653,14 @@ Get plugin stats:: # curl http://localhost:61208/api/4/fs [{"device_name": "/dev/mapper/ubuntu--vg-ubuntu--lv", - "free": 557536301056, + "free": 554743627776, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "options": "rw,relatime", - "percent": 41.5, + "percent": 41.8, "size": 1003736440832, - "used": 395137634304}, + "used": 397930307584}, {"device_name": "zsfpool", "free": 41680896, "fs_type": "zfs", @@ -612,14 +691,14 @@ Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/fs/mnt_point/value// {"/": [{"device_name": "/dev/mapper/ubuntu--vg-ubuntu--lv", - "free": 557536301056, + "free": 554743627776, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "options": "rw,relatime", - "percent": 41.5, + "percent": 41.8, "size": 1003736440832, - "used": 395137634304}]} + "used": 397930307584}]} GET gpu ------- @@ -681,7 +760,7 @@ GET ip Get plugin stats:: # curl http://localhost:61208/api/4/ip - {"address": "192.168.0.26", "mask": "255.255.255.0", "mask_cidr": 24} + {"address": "172.17.0.1", "mask": "255.255.0.0", "mask_cidr": 16} Fields descriptions: @@ -695,7 +774,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/ip/address - {"address": "192.168.0.26"} + {"address": "172.17.0.1"} GET irq ------- @@ -717,9 +796,9 @@ Get plugin stats:: # curl http://localhost:61208/api/4/load {"cpucore": 16, - "min1": 0.43017578125, - "min15": 0.5341796875, - "min5": 0.48779296875} + "min1": 1.3681640625, + "min15": 0.7177734375, + "min5": 0.8544921875} Fields descriptions: @@ -734,7 +813,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/load/min1 - {"min1": 0.43017578125} + {"min1": 1.3681640625} GET mem ------- @@ -742,19 +821,19 @@ GET mem Get plugin stats:: # curl http://localhost:61208/api/4/mem - {"active": 7179902976, - "available": 4824131576, - "buffers": 153546752, - "cached": 3697305720, - "free": 1264058368, - "inactive": 6157467648, - "percent": 70.6, - "percent_max": 70.6, - "percent_mean": 70.6, - "percent_min": 70.6, - "shared": 815837184, + {"active": 6593216512, + "available": 2322069496, + "buffers": 116187136, + "cached": 3209959544, + "free": 360673280, + "inactive": 7852883968, + "percent": 85.9, + "percent_max": 85.9, + "percent_mean": 85.9, + "percent_min": 85.9, + "shared": 1003028480, "total": 16421228544, - "used": 11597096968} + "used": 14099159048} Fields descriptions: @@ -784,13 +863,13 @@ GET memswap Get plugin stats:: # curl http://localhost:61208/api/4/memswap - {"free": 646004736, - "percent": 85.0, - "sin": 1756897280, - "sout": 6177804288, + {"free": 131072, + "percent": 100.0, + "sin": 2963709952, + "sout": 8942342144, "time_since_update": 1, "total": 4294963200, - "used": 3648958464} + "used": 4294832128} Fields descriptions: @@ -815,18 +894,32 @@ Get plugin stats:: # curl http://localhost:61208/api/4/network [{"alias": None, "bytes_all": 0, - "bytes_all_gauge": 7642477273, + "bytes_all_gauge": 10622989580, "bytes_all_rate_per_sec": 0, "bytes_recv": 0, - "bytes_recv_gauge": 7237196044, + "bytes_recv_gauge": 9720025818, "bytes_recv_rate_per_sec": 0, "bytes_sent": 0, - "bytes_sent_gauge": 405281229, + "bytes_sent_gauge": 902963762, "bytes_sent_rate_per_sec": 0, "interface_name": "wlp0s20f3", "key": "interface_name", "speed": 0, - "time_since_update": 0.4642453193664551}] + "time_since_update": 0.43013668060302734}, + {"alias": None, + "bytes_all": 0, + "bytes_all_gauge": 256559, + "bytes_all_rate_per_sec": 0, + "bytes_recv": 0, + "bytes_recv_gauge": 21133, + "bytes_recv_rate_per_sec": 0, + "bytes_sent": 0, + "bytes_sent_gauge": 235426, + "bytes_sent_rate_per_sec": 0, + "interface_name": "veth65928bd", + "key": "interface_name", + "speed": 10485760000, + "time_since_update": 0.43013668060302734}] Fields descriptions: @@ -848,25 +941,25 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/network/interface_name - {"interface_name": ["wlp0s20f3"]} + {"interface_name": ["wlp0s20f3", "veth65928bd", "vethd29cb30"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/network/interface_name/value/wlp0s20f3 {"wlp0s20f3": [{"alias": None, "bytes_all": 0, - "bytes_all_gauge": 7642477273, + "bytes_all_gauge": 10622989580, "bytes_all_rate_per_sec": 0, "bytes_recv": 0, - "bytes_recv_gauge": 7237196044, + "bytes_recv_gauge": 9720025818, "bytes_recv_rate_per_sec": 0, "bytes_sent": 0, - "bytes_sent_gauge": 405281229, + "bytes_sent_gauge": 902963762, "bytes_sent_rate_per_sec": 0, "interface_name": "wlp0s20f3", "key": "interface_name", "speed": 0, - "time_since_update": 0.4642453193664551}]} + "time_since_update": 0.43013668060302734}]} GET now ------- @@ -874,7 +967,7 @@ GET now Get plugin stats:: # curl http://localhost:61208/api/4/now - {"custom": "2026-03-07 15:40:47 CET", "iso": "2026-03-07T15:40:47+01:00"} + {"custom": "2026-03-14 10:59:50 CET", "iso": "2026-03-14T10:59:50+01:00"} Fields descriptions: @@ -884,7 +977,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/now/iso - {"iso": "2026-03-07T15:40:47+01:00"} + {"iso": "2026-03-14T10:59:50+01:00"} GET npu ------- @@ -918,22 +1011,22 @@ Get plugin stats:: "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 33.0, + "idle": 30.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, - "softirq": 0.0, + "softirq": 1.0, "steal": 0.0, "system": 12.0, - "total": 67.0, + "total": 70.0, "user": 0.0}, {"cpu_number": 1, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 42.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -942,7 +1035,7 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 55.0, + "total": 58.0, "user": 0.0}] Fields descriptions: @@ -974,12 +1067,12 @@ Get plugin stats:: # curl http://localhost:61208/api/4/ports [{"description": "DefaultGateway", - "host": "192.168.0.254", + "host": "192.168.1.1", "indice": "port_0", "port": 0, "refresh": 30, "rtt_warning": None, - "status": 0.005327, + "status": 0.006242, "timeout": 3}] Fields descriptions: @@ -996,19 +1089,19 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/ports/host - {"host": ["192.168.0.254"]} + {"host": ["192.168.1.1"]} Get a specific item when field matches the given value:: - # curl http://localhost:61208/api/4/ports/host/value/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.005327, - "timeout": 3}]} + # curl http://localhost:61208/api/4/ports/host/value/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.006242, + "timeout": 3}]} GET processcount ---------------- @@ -1016,7 +1109,7 @@ GET processcount Get plugin stats:: # curl http://localhost:61208/api/4/processcount - {"pid_max": 0, "running": 1, "sleeping": 441, "thread": 2328, "total": 588} + {"pid_max": 0, "running": 2, "sleeping": 471, "thread": 2693, "total": 613} Fields descriptions: @@ -1029,7 +1122,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/4/processcount/total - {"total": 588} + {"total": 613} GET processlist --------------- @@ -1037,31 +1130,154 @@ GET processlist Get plugin stats:: # curl http://localhost:61208/api/4/processlist - [{"cmdline": ["/home/nicolargo/.cache/cloud-code/cloudcode_cli/cloudcode_cli/5d90276a/cloudcode_cli", - "duet", - "-trace", - "-logtostderr"], + [{"cmdline": ["/proc/self/exe", + "--type=utility", + "--utility-sub-type=node.mojom.NodeService", + "--lang=en-US", + "--service-sandbox-type=none", + "--no-sandbox", + "--dns-result-order=ipv4first", + "--experimental-network-inspection", + "--inspect-port=0", + "--crashpad-handler-pid=9344", + "--enable-crash-reporter=864d4bb7-dd20-4851-830f-29e81dd93517,no_channel", + "--user-data-dir=/home/nicolargo/.config/Code", + "--standard-schemes=vscode-webview,vscode-file", + "--secure-schemes=vscode-webview,vscode-file", + "--cors-schemes=vscode-webview,vscode-file", + "--fetch-schemes=vscode-webview,vscode-file", + "--service-worker-schemes=vscode-webview", + "--code-cache-schemes=vscode-webview,vscode-file", + "--shared-files=v8_context_snapshot_data:100", + "--field-trial-handle=3,i,14671767833276363776,4659770901268553168,262144", + "--enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EarlyEstablishGpuChannel,EstablishGpuChannelAsync", + "--disable-features=CalculateNativeWinOcclusion,FontationsLinuxSystemFonts,ScreenAIOCREnabled,SpareRendererForSitePerProcess", + "--variations-seed-version"], "cpu_percent": 0.0, - "cpu_times": {"children_system": 0.0, - "children_user": 0.0, + "cpu_times": {"children_system": 139.14, + "children_user": 97.71, "iowait": 0.0, - "system": 10.87, - "user": 207.36}, + "system": 151.05, + "user": 287.88}, "gids": {"effective": 1000, "real": 1000, "saved": 1000}, - "io_counters": [580788224, 4096, 0, 0, 0], + "io_counters": [638033920, + 126808064, + 0, + 0, + 0, + 1106728960, + 200749056, + 0, + 0, + 0, + 94219264, + 32768, + 0, + 0, + 0, + 840525824, + 145575936, + 0, + 0, + 0, + 491060224, + 385024, + 0, + 0, + 0, + 4399104, + 0, + 0, + 0, + 0, + 19957760, + 20480, + 0, + 0, + 0, + 577536, + 0, + 0, + 0, + 0, + 3002368, + 0, + 0, + 0, + 0, + 41243648, + 0, + 0, + 0, + 0, + 5644288, + 0, + 0, + 0, + 0, + 1853217792, + 483848192, + 0, + 0, + 0, + 3178496, + 0, + 0, + 0, + 0, + 5281792, + 5287936, + 0, + 0, + 0, + 161751040, + 3064426496, + 0, + 0, + 0, + 3366912, + 0, + 0, + 0, + 0, + 33189888, + 0, + 0, + 0, + 0, + 23565312, + 172032, + 0, + 0, + 0, + 49403904, + 27521024, + 0, + 0, + 0, + 226957312, + 3399680, + 0, + 0, + 0, + 1024000, + 0, + 0, + 0, + 0], "key": "pid", - "memory_info": {"data": 3313868800, + "memory_info": {"data": 2349182976, "dirty": 0, "lib": 0, - "rss": 1551958016, - "shared": 24248320, - "text": 99307520, - "vms": 5210402816}, - "memory_percent": 9.450925135361175, - "name": "cloudcode_cli", + "rss": 1169313792, + "shared": 74805248, + "text": 148733952, + "vms": 1498174038016}, + "memory_percent": 7.120744887429538, + "name": "code", "nice": 0, - "num_threads": 21, - "pid": 383172, + "num_threads": 22, + "pid": 1137955, "status": "S", "time_since_update": 1, "username": "nicolargo"}, @@ -1089,129 +1305,25 @@ Get plugin stats:: "--disable-features=CalculateNativeWinOcclusion,FontationsLinuxSystemFonts,ScreenAIOCREnabled,SpareRendererForSitePerProcess", "--variations-seed-version"], "cpu_percent": 0.0, - "cpu_times": {"children_system": 210.27, - "children_user": 276.51, + "cpu_times": {"children_system": 270.66, + "children_user": 724.39, "iowait": 0.0, - "system": 169.25, - "user": 498.06}, + "system": 475.49, + "user": 1148.71}, "gids": {"effective": 1000, "real": 1000, "saved": 1000}, - "io_counters": [819561472, - 177811456, - 0, - 0, - 0, - 136492032, - 692224, - 0, - 0, - 0, - 190659584, - 356352, - 0, - 0, - 0, - 813457408, - 142913536, - 0, - 0, - 0, - 5774336, - 0, - 0, - 0, - 0, - 6973440, - 0, - 0, - 0, - 0, - 900742144, - 266510336, - 0, - 0, - 0, - 83785728, - 2444345344, - 0, - 0, - 0, - 9118720, - 0, - 0, - 0, - 0, - 9222144, - 5283840, - 0, - 0, - 0, - 20773888, - 0, - 0, - 0, - 0, - 965632, - 1609728, - 0, - 0, - 0, - 14479360, - 0, - 0, - 0, - 0, - 4297728, - 0, - 0, - 0, - 0, - 22605824, - 16384, - 0, - 0, - 0, - 10784768, - 0, - 0, - 0, - 0, - 3571712, - 0, - 0, - 0, - 0, - 12820480, - 81920, - 0, - 0, - 0, - 19056640, - 13664256, - 0, - 0, - 0, - 127298560, - 90112, - 0, - 0, - 0, - 1024000, - 0, - 0, - 0, - 0], + "io_counters": [1106728960, 200749056, 0, 0, 0], "key": "pid", - "memory_info": {"data": 2284957696, + "memory_info": {"data": 2340835328, "dirty": 0, "lib": 0, - "rss": 809762816, - "shared": 66301952, + "rss": 744828928, + "shared": 23887872, "text": 148733952, - "vms": 1499922575360}, - "memory_percent": 4.931195091952311, + "vms": 1498177716224}, + "memory_percent": 4.535768599799106, "name": "code", "nice": 0, - "num_threads": 23, + "num_threads": 22, "pid": 381638, "status": "S", "time_since_update": 1, @@ -1240,155 +1352,130 @@ GET programlist Get plugin stats:: # curl http://localhost:61208/api/4/programlist - [{"childrens": [383172], - "cmdline": ["cloudcode_cli"], - "cpu_percent": 0, - "cpu_times": {"children_system": 0.0, - "children_user": 0.0, - "iowait": 0.0, - "system": 10.87, - "user": 207.36}, - "io_counters": [580788224, 4096, 0, 0, 0], - "memory_info": {"data": 3313868800, - "dirty": 0, - "lib": 0, - "rss": 1551958016, - "shared": 24248320, - "text": 99307520, - "vms": 5210402816}, - "memory_percent": 9.450925135361175, - "name": "cloudcode_cli", - "nice": 0, - "nprocs": 1, - "num_threads": 21, - "pid": "_", - "status": "S", - "time_since_update": 1, - "username": "nicolargo"}, - {"childrens": [381638, - 382286, - 9438, + [{"childrens": [1137955, + 381638, + 1138611, 9549, - 508725, - 508724, + 9438, + 1139810, + 1139213, + 1139809, + 1293449, + 1137956, + 1139772, 9326, + 1139793, + 1139828, 9525, - 508727, - 508761, - 381625, - 420439, - 508750, - 418378, - 383079, + 1138830, 9491, - 382782, 9898, 9397, 9329, 9328], "cmdline": ["code"], "cpu_percent": 0, - "cpu_times": {"children_system": 696.4000000000001, - "children_user": 1429.58, - "system": 835.03, - "user": 5153.830000000001}, - "io_counters": [819561472, - 177811456, + "cpu_times": {"children_system": 1655.3899999999999, + "children_user": 2712.6999999999994, + "system": 1579.52, + "user": 7741.830000000001}, + "io_counters": [638033920, + 126808064, 0, 0, 0, - 136492032, - 692224, + 1106728960, + 200749056, 0, 0, 0, - 190659584, - 356352, + 94219264, + 32768, 0, 0, 0, - 813457408, - 142913536, + 840525824, + 145575936, 0, 0, 0, - 5774336, + 491060224, + 385024, 0, 0, 0, + 4399104, 0, - 6973440, 0, 0, 0, + 19957760, + 20480, 0, - 900742144, - 266510336, 0, 0, + 577536, 0, - 83785728, - 2444345344, 0, 0, 0, - 9118720, + 3002368, 0, 0, 0, 0, - 9222144, - 5283840, + 41243648, 0, 0, 0, - 20773888, 0, + 5644288, 0, 0, 0, - 965632, - 1609728, 0, + 1853217792, + 483848192, 0, 0, - 14479360, 0, + 3178496, 0, 0, 0, - 4297728, 0, + 5281792, + 5287936, 0, 0, 0, - 22605824, - 16384, + 161751040, + 3064426496, 0, 0, 0, - 10784768, + 3366912, 0, 0, 0, 0, - 3571712, + 33189888, 0, 0, 0, 0, - 12820480, - 81920, + 23565312, + 172032, 0, 0, 0, - 19056640, - 13664256, + 49403904, + 27521024, 0, 0, 0, - 127298560, - 90112, + 226957312, + 3399680, 0, 0, 0, @@ -1397,16 +1484,41 @@ Get plugin stats:: 0, 0, 0], - "memory_info": {"data": 17387646976, - "rss": 4082790400, - "shared": 1099739136, + "memory_info": {"data": 19067514880, + "rss": 5212557312, + "shared": 1034096640, "text": 3123412992, - "vms": 25610880229376}, - "memory_percent": 24.862880320192435, + "vms": 25591721115648}, + "memory_percent": 31.742797428542985, "name": "code", "nice": 0, "nprocs": 21, - "num_threads": 311, + "num_threads": 314, + "pid": "_", + "status": "S", + "time_since_update": 1, + "username": "nicolargo"}, + {"childrens": [982326], + "cmdline": ["firefox"], + "cpu_percent": 0, + "cpu_times": {"children_system": 0.94, + "children_user": 0.18, + "iowait": 0.0, + "system": 419.0, + "user": 1483.79}, + "io_counters": [1294777344, 2060689408, 0, 0, 0], + "memory_info": {"data": 1023574016, + "dirty": 0, + "lib": 0, + "rss": 726315008, + "shared": 237838336, + "text": 659456, + "vms": 21512245248}, + "memory_percent": 4.4230247819392385, + "name": "firefox", + "nice": 0, + "nprocs": 1, + "num_threads": 132, "pid": "_", "status": "S", "time_since_update": 1, @@ -1443,34 +1555,34 @@ GET quicklook Get plugin stats:: # curl http://localhost:61208/api/4/quicklook - {"cpu": 5.4, + {"cpu": 9.8, "cpu_hz": 4475000000.0, - "cpu_hz_current": 1224663500.0, + "cpu_hz_current": 2127690125.0, "cpu_log_core": 16, "cpu_name": "13th Gen Intel(R) Core(TM) i7-13620H", "cpu_phys_core": 10, - "load": 3.3, - "mem": 70.6, + "load": 4.5, + "mem": 85.9, "percpu": [{"cpu_number": 0, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 33.0, + "idle": 30.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, - "softirq": 0.0, + "softirq": 1.0, "steal": 0.0, "system": 12.0, - "total": 67.0, + "total": 70.0, "user": 0.0}, {"cpu_number": 1, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 42.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1479,84 +1591,9 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 55.0, + "total": 58.0, "user": 0.0}, {"cpu_number": 2, - "dpc": None, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 45.0, - "interrupt": None, - "iowait": 0.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 1.0, - "total": 55.0, - "user": 1.0}, - {"cpu_number": 3, - "dpc": None, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 46.0, - "interrupt": None, - "iowait": 0.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 0.0, - "total": 54.0, - "user": 0.0}, - {"cpu_number": 4, - "dpc": None, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 39.0, - "interrupt": None, - "iowait": 2.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 4.0, - "total": 61.0, - "user": 0.0}, - {"cpu_number": 5, - "dpc": None, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 46.0, - "interrupt": None, - "iowait": 0.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 0.0, - "total": 54.0, - "user": 0.0}, - {"cpu_number": 6, - "dpc": None, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 29.0, - "interrupt": None, - "iowait": 0.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 7.0, - "total": 71.0, - "user": 8.0}, - {"cpu_number": 7, "dpc": None, "guest": 0.0, "guest_nice": 0.0, @@ -1568,29 +1605,104 @@ Get plugin stats:: "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 6.0, + "system": 2.0, "total": 60.0, + "user": 1.0}, + {"cpu_number": 3, + "dpc": None, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 42.0, + "interrupt": None, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 0.0, + "total": 58.0, + "user": 0.0}, + {"cpu_number": 4, + "dpc": None, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 22.0, + "interrupt": None, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 10.0, + "total": 78.0, + "user": 8.0}, + {"cpu_number": 5, + "dpc": None, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 43.0, + "interrupt": None, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 0.0, + "total": 57.0, + "user": 0.0}, + {"cpu_number": 6, + "dpc": None, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 14.0, + "interrupt": None, + "iowait": 6.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 5.0, + "total": 86.0, + "user": 15.0}, + {"cpu_number": 7, + "dpc": None, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 42.0, + "interrupt": None, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 0.0, + "total": 58.0, "user": 0.0}, {"cpu_number": 8, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 36.0, "interrupt": None, - "iowait": 0.0, + "iowait": 2.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 0.0, - "total": 55.0, - "user": 1.0}, + "system": 2.0, + "total": 64.0, + "user": 3.0}, {"cpu_number": 9, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 46.0, + "idle": 42.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1599,13 +1711,13 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 54.0, - "user": 0.0}, + "total": 58.0, + "user": 1.0}, {"cpu_number": 10, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 41.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1614,13 +1726,13 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 55.0, + "total": 59.0, "user": 0.0}, {"cpu_number": 11, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 43.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1628,14 +1740,14 @@ Get plugin stats:: "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 0.0, - "total": 55.0, + "system": 1.0, + "total": 57.0, "user": 0.0}, {"cpu_number": 12, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 41.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1644,13 +1756,13 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 55.0, + "total": 59.0, "user": 1.0}, {"cpu_number": 13, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 45.0, + "idle": 40.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1659,13 +1771,13 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 55.0, - "user": 0.0}, + "total": 60.0, + "user": 2.0}, {"cpu_number": 14, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 46.0, + "idle": 41.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1674,13 +1786,13 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 0.0, - "total": 54.0, + "total": 59.0, "user": 0.0}, {"cpu_number": 15, "dpc": None, "guest": 0.0, "guest_nice": 0.0, - "idle": 46.0, + "idle": 41.0, "interrupt": None, "iowait": 0.0, "irq": 0.0, @@ -1688,10 +1800,10 @@ Get plugin stats:: "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 0.0, - "total": 54.0, - "user": 0.0}], - "swap": 85.0} + "system": 1.0, + "total": 59.0, + "user": 1.0}], + "swap": 100.0} Fields descriptions: @@ -1729,14 +1841,14 @@ Get plugin stats:: "label": "Ambient", "type": "temperature_core", "unit": "C", - "value": 39, + "value": 37, "warning": 0}, {"critical": None, "key": "label", "label": "Ambient 3", "type": "temperature_core", "unit": "C", - "value": 31, + "value": 28, "warning": 0}] Fields descriptions: @@ -1800,7 +1912,7 @@ Get a specific item when field matches the given value:: "label": "Ambient", "type": "temperature_core", "unit": "C", - "value": 39, + "value": 37, "warning": 0}]} GET smart @@ -1844,7 +1956,7 @@ GET uptime Get plugin stats:: # curl http://localhost:61208/api/4/uptime - "13 days, 4:17:37" + "19 days, 23:36:31" GET version ----------- @@ -1852,7 +1964,7 @@ GET version Get plugin stats:: # curl http://localhost:61208/api/4/version - "4.5.1" + "4.5.2_dev01" GET vms ------- @@ -1889,8 +2001,8 @@ Get plugin stats:: # curl http://localhost:61208/api/4/wifi [{"key": "ssid", - "quality_level": -66.0, - "quality_link": 44.0, + "quality_level": -60.0, + "quality_link": 50.0, "ssid": "wlp0s20f3"}] Get a specific field:: @@ -1902,8 +2014,8 @@ Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/wifi/ssid/value/wlp0s20f3 {"wlp0s20f3": [{"key": "ssid", - "quality_level": -66.0, - "quality_link": 44.0, + "quality_level": -60.0, + "quality_link": 50.0, "ssid": "wlp0s20f3"}]} GET all stats @@ -1967,34 +2079,34 @@ GET stats history History of a plugin:: # curl http://localhost:61208/api/4/cpu/history - {"system": [["2026-03-07T14:40:48.627887+00:00", 3.2], - ["2026-03-07T14:40:49.688486+00:00", 0.7], - ["2026-03-07T14:40:50.719002+00:00", 0.7]], - "user": [["2026-03-07T14:40:48.627885+00:00", 3.1], - ["2026-03-07T14:40:49.688484+00:00", 0.8], - ["2026-03-07T14:40:50.719001+00:00", 0.8]]} + {"system": [["2026-03-14T09:59:51.816147+00:00", 3.5], + ["2026-03-14T09:59:52.900097+00:00", 0.9], + ["2026-03-14T09:59:53.929021+00:00", 0.9]], + "user": [["2026-03-14T09:59:51.816146+00:00", 5.5], + ["2026-03-14T09:59:52.900096+00:00", 1.8], + ["2026-03-14T09:59:53.929018+00:00", 1.8]]} Limit history to last 2 values:: # curl http://localhost:61208/api/4/cpu/history/2 - {"system": [["2026-03-07T14:40:49.688486+00:00", 0.7], - ["2026-03-07T14:40:50.719002+00:00", 0.7]], - "user": [["2026-03-07T14:40:49.688484+00:00", 0.8], - ["2026-03-07T14:40:50.719001+00:00", 0.8]]} + {"system": [["2026-03-14T09:59:52.900097+00:00", 0.9], + ["2026-03-14T09:59:53.929021+00:00", 0.9]], + "user": [["2026-03-14T09:59:52.900096+00:00", 1.8], + ["2026-03-14T09:59:53.929018+00:00", 1.8]]} History for a specific field:: # curl http://localhost:61208/api/4/cpu/system/history - {"system": [["2026-03-07T14:40:47.424351+00:00", 3.2], - ["2026-03-07T14:40:48.627887+00:00", 3.2], - ["2026-03-07T14:40:49.688486+00:00", 0.7], - ["2026-03-07T14:40:50.719002+00:00", 0.7]]} + {"system": [["2026-03-14T09:59:50.619854+00:00", 3.5], + ["2026-03-14T09:59:51.816147+00:00", 3.5], + ["2026-03-14T09:59:52.900097+00:00", 0.9], + ["2026-03-14T09:59:53.929021+00:00", 0.9]]} Limit history for a specific field to last 2 values:: # curl http://localhost:61208/api/4/cpu/system/history - {"system": [["2026-03-07T14:40:49.688486+00:00", 0.7], - ["2026-03-07T14:40:50.719002+00:00", 0.7]]} + {"system": [["2026-03-14T09:59:52.900097+00:00", 0.9], + ["2026-03-14T09:59:53.929021+00:00", 0.9]]} GET limits (used for thresholds) -------------------------------- diff --git a/docs/man/glances.1 b/docs/man/glances.1 index 0c01b835..10f9b2f8 100644 --- a/docs/man/glances.1 +++ b/docs/man/glances.1 @@ -29,7 +29,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" "Mar 07, 2026" "4.5.1" "Glances" +.TH "GLANCES" "1" "Mar 14, 2026" "4.5.2_dev01" "Glances" .SH NAME glances \- An eye on your system .SH SYNOPSIS diff --git a/glances/outputs/glances_stdout_api_restful_doc.py b/glances/outputs/glances_stdout_api_restful_doc.py index 0b396aa6..d3f9c194 100644 --- a/glances/outputs/glances_stdout_api_restful_doc.py +++ b/glances/outputs/glances_stdout_api_restful_doc.py @@ -164,6 +164,49 @@ You can configure JWT settings in the Glances configuration file: **Note:** The token endpoint (``/api/{__apiversion__}/token``) does not require authentication. Protected endpoints support both Bearer token and Basic Auth authentication methods. +.. _security: + +Security +-------- + +By default, Glances web server runs **without authentication** and binds to +**all network interfaces** (``0.0.0.0``). This means any client that can reach +the server on the network can access the full REST API, including sensitive +system information such as process command-lines, which may contain credentials +(passwords, API keys, tokens passed as arguments). + +This default is intentional for ease of use on private, trusted networks (home +labs, local machines, internal infrastructure). However, if your Glances +instance is reachable from untrusted networks, you should take the following +precautions: + +**Enable authentication** by starting Glances with the ``--password`` option: + +.. code-block:: bash + + glances -w --password + +**Bind to localhost only** if remote access is not needed: + +.. code-block:: bash + + glances -w --bind 127.0.0.1 + +**Use a reverse proxy** (nginx, Caddy, Apache) with TLS and authentication for +any public-facing or semi-public deployment. This is the recommended approach +for production environments. + +.. code-block:: ini + + # Example: restrict bind to localhost, access via reverse proxy + # In glances.conf: + [outputs] + # Set the bind address to localhost + # then configure your reverse proxy to forward to 127.0.0.1:61208 + +When Glances is started without authentication, a warning message is displayed +at startup to remind you of the risk. + WebUI refresh -------------