.. _api: API (Restfull/JSON) documentation ================================= This documentation describes the Glances API version 4 (Restfull/JSON) interface. For Glances version 3, please have a look on: ``https://github.com/nicolargo/glances/blob/support/glancesv3/docs/api.rst`` Run the Glances API server -------------------------- The Glances Restfull/API server could be ran using the following command line: .. code-block:: bash # glances -w --disable-webui It is also ran automatically when Glances is started in Web server mode (-w). API URL ------- The default root API URL is ``http://localhost:61208/api/4``. The bind address and port could be changed using the ``--bind`` and ``--port`` command line options. It is also possible to define an URL prefix using the ``url_prefix`` option from the [outputs] section of the Glances configuration file. Note: The url_prefix should always end with a slash (``/``). For example: .. code-block:: ini [outputs] url_prefix = /glances/ will change the root API URL to ``http://localhost:61208/glances/api/4`` and the Web UI URL to ``http://localhost:61208/glances/`` API documentation URL --------------------- The API documentation is embeded in the server and available at the following URL: ``http://localhost:61208/docs#/``. WebUI refresh ------------- It is possible to change the Web UI refresh rate (default is 2 seconds) using the following option in the URL: ``http://localhost:61208/glances/?refresh=5`` GET API status -------------- This entry point should be used to check the API status. It will the Glances version and a 200 return code if everything is OK. Get the Rest API status:: # curl -I http://localhost:61208/api/4/status "HTTP/1.0 200 OK" GET plugins list ---------------- Get the plugins list:: # curl http://localhost:61208/api/4/pluginslist ["alert", "amps", "cloud", "connections", "containers", "core", "cpu", "diskio", "folders", "fs", "gpu", "help", "ip", "irq", "load", "mem", "memswap", "network", "now", "percpu", "ports", "processcount", "processlist", "psutilversion", "quicklook", "raid", "sensors", "smart", "system", "uptime", "version", "wifi"] GET alert --------- Get plugin stats:: # curl http://localhost:61208/api/4/alert [{"avg": 71.13926038778988, "begin": 1704551440.0, "count": 1, "desc": "", "end": -1, "max": 71.13926038778988, "min": 71.13926038778988, "sort": "memory_percent", "state": "WARNING", "sum": 71.13926038778988, "top": [], "type": "MEM"}] Fields descriptions: * **begin**: Begin timestamp of the event (unit is *timestamp*) * **end**: End timestamp of the event (or -1 if ongoing) (unit is *timestamp*) * **state**: State of the event (WARNING|CRITICAL) (unit is *string*) * **type**: Type of the event (CPU|LOAD|MEM) (unit is *string*) * **max**: Maximum value during the event period (unit is *float*) * **avg**: Average value during the event period (unit is *float*) * **min**: Minimum value during the event period (unit is *float*) * **sum**: Sum of the values during the event period (unit is *float*) * **count**: Number of values during the event period (unit is *int*) * **top**: Top 3 processes name during the event period (unit is *list*) * **desc**: Description of the event (unit is *string*) * **sort**: Sort key of the top processes (unit is *string*) Get a specific field:: # curl http://localhost:61208/api/4/alert/begin {"begin": [1704551440.0]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/alert/begin/1704551440.0 {"1704551440.0": [{"avg": 71.13926038778988, "begin": 1704551440.0, "count": 1, "desc": "", "end": -1, "max": 71.13926038778988, "min": 71.13926038778988, "sort": "memory_percent", "state": "WARNING", "sum": 71.13926038778988, "top": [], "type": "MEM"}]} GET amps -------- Get plugin stats:: # curl http://localhost:61208/api/4/amps [{"count": 0, "countmax": None, "countmin": 1.0, "key": "name", "name": "Dropbox", "refresh": 3.0, "regex": True, "result": None, "timer": 0.3299849033355713}, {"count": 0, "countmax": 20.0, "countmin": None, "key": "name", "name": "Python", "refresh": 3.0, "regex": True, "result": None, "timer": 0.32982563972473145}] Fields descriptions: * **name**: AMP name (unit is *None*) * **result**: AMP result (a string) (unit is *None*) * **refresh**: AMP refresh interval (unit is *second*) * **timer**: Time until next refresh (unit is *second*) * **count**: Number of matching processes (unit is *number*) * **countmin**: Minimum number of matching processes (unit is *number*) * **countmax**: Maximum number of matching processes (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/4/amps/name {"name": ["Dropbox", "Python", "Conntrack", "Nginx", "Systemd", "SystemV"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/amps/name/Dropbox {"Dropbox": [{"count": 0, "countmax": None, "countmin": 1.0, "key": "name", "name": "Dropbox", "refresh": 3.0, "regex": True, "result": None, "timer": 0.3299849033355713}]} GET connections --------------- Get plugin stats:: # curl http://localhost:61208/api/4/connections {"net_connections_enabled": True, "nf_conntrack_enabled": True} Fields descriptions: * **LISTEN**: Number of TCP connections in LISTEN state (unit is *number*) * **ESTABLISHED**: Number of TCP connections in ESTABLISHED state (unit is *number*) * **SYN_SENT**: Number of TCP connections in SYN_SENT state (unit is *number*) * **SYN_RECV**: Number of TCP connections in SYN_RECV state (unit is *number*) * **initiated**: Number of TCP connections initiated (unit is *number*) * **terminated**: Number of TCP connections terminated (unit is *number*) * **nf_conntrack_count**: Number of tracked connections (unit is *number*) * **nf_conntrack_max**: Maximum number of tracked connections (unit is *number*) * **nf_conntrack_percent**: Percentage of tracked connections (unit is *percent*) Get a specific field:: # curl http://localhost:61208/api/4/connections/net_connections_enabled {"net_connections_enabled": True} GET containers -------------- Get plugin stats:: # curl http://localhost:61208/api/4/containers [{"command": "top", "cpu": {"total": 1.4897269385342457e-06}, "cpu_percent": 1.4897269385342457e-06, "created": "2023-12-09T10:45:34.339489876+01:00", "engine": "podman", "id": "481d6ffb7eef284d062628cf350bdd9ce0a803db8a2a505d75565ed24322b714", "image": "docker.io/library/ubuntu:latest", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_rx": 0.0, "io_wx": 0.0, "key": "name", "memory": {"limit": 7823585280.0, "usage": 1388544.0}, "memory_usage": 1388544.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", "status": "running", "uptime": "4 weeks"}, {"command": "", "cpu": {"total": 3.397961399220156e-10}, "cpu_percent": 3.397961399220156e-10, "created": "2022-10-22T14:23:03.120912374+02:00", "engine": "podman", "id": "9491515251edcd5bb5dc17205d7ee573c0be96fe0b08b0a12a7e2cea874565ea", "image": "k8s.gcr.io/pause:3.5", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_rx": 0.0, "io_wx": 0.0, "key": "name", "memory": {"limit": 7823585280.0, "usage": 299008.0}, "memory_usage": 299008.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", "status": "running", "uptime": "4 weeks"}] Fields descriptions: * **name**: Container name (unit is *None*) * **id**: Container ID (unit is *None*) * **image**: Container image (unit is *None*) * **status**: Container status (unit is *None*) * **created**: Container creation date (unit is *None*) * **command**: Container command (unit is *None*) * **cpu_percent**: Container CPU consumption (unit is *percent*) * **memory_usage**: Container memory usage (unit is *byte*) * **io_rx**: Container IO bytes read rate (unit is *bytepersecond*) * **io_wx**: Container IO bytes write rate (unit is *bytepersecond*) * **network_rx**: Container network RX bitrate (unit is *bitpersecond*) * **network_tx**: Container network TX bitrate (unit is *bitpersecond*) * **uptime**: Container uptime (unit is *None*) * **engine**: Container engine (Docker and Podman are currently supported) (unit is *None*) * **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": ["sad_darwin", "8d0f1c783def-infra", "portainer"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/containers/name/sad_darwin {"sad_darwin": [{"command": "top", "cpu": {"total": 1.4897269385342457e-06}, "cpu_percent": 1.4897269385342457e-06, "created": "2023-12-09T10:45:34.339489876+01:00", "engine": "podman", "id": "481d6ffb7eef284d062628cf350bdd9ce0a803db8a2a505d75565ed24322b714", "image": "docker.io/library/ubuntu:latest", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_rx": 0.0, "io_wx": 0.0, "key": "name", "memory": {"limit": 7823585280.0, "usage": 1388544.0}, "memory_usage": 1388544.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", "status": "running", "uptime": "4 weeks"}]} GET core -------- Get plugin stats:: # curl http://localhost:61208/api/4/core {"log": 4, "phys": 2} Fields descriptions: * **phys**: Number of physical cores (hyper thread CPUs are excluded) (unit is *number*) * **log**: Number of logical CPUs. A logical CPU is the number of physical cores multiplied by the number of threads that can run on each core (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/4/core/phys {"phys": 2} GET cpu ------- Get plugin stats:: # curl http://localhost:61208/api/4/cpu {"cpucore": 4, "ctx_switches": 0, "guest": 0.0, "guest_nice": 0.0, "idle": 64.6, "interrupts": 0, "iowait": 0.0, "irq": 0.0, "nice": 0.0, "soft_interrupts": 0, "softirq": 0.0, "steal": 0.0, "syscalls": 0, "system": 3.6, "time_since_update": 1, "total": 35.4, "user": 31.8} Fields descriptions: * **total**: Sum of all CPU percentages (except idle) (unit is *percent*) * **system**: Percent time spent in kernel space. System CPU time is the time spent running code in the Operating System kernel (unit is *percent*) * **user**: CPU percent time spent in user space. User CPU time is the time spent on the processor running your program's code (or code in libraries) (unit is *percent*) * **iowait**: *(Linux)*: percent time spent by the CPU waiting for I/O operations to complete (unit is *percent*) * **dpc**: *(Windows)*: time spent servicing deferred procedure calls (DPCs) (unit is *percent*) * **idle**: percent of CPU used by any program. Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle (unit is *percent*) * **irq**: *(Linux and BSD)*: percent time spent servicing/handling hardware/software interrupts. Time servicing interrupts (hardware + software) (unit is *percent*) * **nice**: *(Unix)*: percent time occupied by user level processes with a positive nice value. The time the CPU has spent running users' processes that have been *niced* (unit is *percent*) * **steal**: *(Linux)*: percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor (unit is *percent*) * **ctx_switches**: number of context switches (voluntary + involuntary) per second. A context switch is a procedure that a computer's CPU (central processing unit) follows to change from one task (or process) to another while ensuring that the tasks do not conflict (unit is *number*) * **interrupts**: number of interrupts per second (unit is *number*) * **soft_interrupts**: number of software interrupts per second. Always set to 0 on Windows and SunOS (unit is *number*) * **syscalls**: number of system calls per second. Always 0 on Linux OS (unit is *number*) * **cpucore**: Total number of CPU core (unit is *number*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/4/cpu/total {"total": 35.4} GET diskio ---------- Get plugin stats:: # curl http://localhost:61208/api/4/diskio [{"disk_name": "sda", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}, {"alias": "InternalDisk", "disk_name": "sda1", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}] Fields descriptions: * **disk_name**: Disk name (unit is *None*) * **read_count**: Number of reads since last request (unit is *number*) * **write_count**: Number of writes since last request (unit is *number*) * **read_bytes**: Number of bytes read since last request (unit is *byte*) * **write_bytes**: Number of bytes written since last request (unit is *byte*) * **time_since_update**: Time since last request (unit is *second*) Get a specific field:: # curl http://localhost:61208/api/4/diskio/disk_name {"disk_name": ["sda", "sda1", "sda2", "sda5", "dm-0", "dm-1"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/diskio/disk_name/sda {"sda": [{"disk_name": "sda", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}]} GET fs ------ Get plugin stats:: # curl http://localhost:61208/api/4/fs [{"alias": "Root", "device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 23516868608, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 89.8, "size": 243334156288, "used": 207429832704}, {"device_name": "zsfpool", "free": 31195136, "fs_type": "zfs", "key": "mnt_point", "mnt_point": "/zsfpool", "percent": 25.4, "size": 41811968, "used": 10616832}] Fields descriptions: * **device_name**: Device name (unit is *None*) * **fs_type**: File system type (unit is *None*) * **mnt_point**: Mount point (unit is *None*) * **size**: Total size (unit is *byte*) * **used**: Used size (unit is *byte*) * **free**: Free size (unit is *byte*) * **percent**: File system usage in percent (unit is *percent*) Get a specific field:: # curl http://localhost:61208/api/4/fs/mnt_point {"mnt_point": ["/", "/zsfpool", "/var/snap/firefox/common/host-hunspell"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/fs/mnt_point// {"/": [{"alias": "Root", "device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 23516868608, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 89.8, "size": 243334156288, "used": 207429832704}]} GET ip ------ Get plugin stats:: # curl http://localhost:61208/api/4/ip {"address": "192.168.1.14", "gateway": "192.168.1.1", "mask": "255.255.255.0", "mask_cidr": 24, "public_address": "92.151.148.66", "public_info_human": ""} Fields descriptions: * **address**: Private IP address (unit is *None*) * **mask**: Private IP mask (unit is *None*) * **mask_cidr**: Private IP mask in CIDR format (unit is *number*) * **gateway**: Private IP gateway (unit is *None*) * **public_address**: Public IP address (unit is *None*) * **public_info_human**: Public IP information (unit is *None*) Get a specific field:: # curl http://localhost:61208/api/4/ip/gateway {"gateway": "192.168.1.1"} GET load -------- Get plugin stats:: # curl http://localhost:61208/api/4/load {"cpucore": 4, "min1": 0.82470703125, "min15": 1.06787109375, "min5": 0.8173828125} Fields descriptions: * **min1**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 1 minute (unit is *float*) * **min5**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 5 minutes (unit is *float*) * **min15**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 15 minutes (unit is *float*) * **cpucore**: Total number of CPU core (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/4/load/min1 {"min1": 0.82470703125} GET mem ------- Get plugin stats:: # curl http://localhost:61208/api/4/mem {"active": 2923274240, "available": 2257944576, "buffers": 294191104, "cached": 2339418112, "free": 2257944576, "inactive": 3208679424, "percent": 71.1, "shared": 533270528, "total": 7823585280, "used": 5565640704} Fields descriptions: * **total**: Total physical memory available (unit is *bytes*) * **available**: The actual amount of available memory that can be given instantly to processes that request more memory in bytes; this is calculated by summing different memory values depending on the platform (e.g. free + buffers + cached on Linux) and it is supposed to be used to monitor actual memory usage in a cross platform fashion (unit is *bytes*) * **percent**: The percentage usage calculated as (total - available) / total * 100 (unit is *percent*) * **used**: Memory used, calculated differently depending on the platform and designed for informational purposes only (unit is *bytes*) * **free**: Memory not being used at all (zeroed) that is readily available; note that this doesn't reflect the actual memory available (use 'available' instead) (unit is *bytes*) * **active**: *(UNIX)*: memory currently in use or very recently used, and so it is in RAM (unit is *bytes*) * **inactive**: *(UNIX)*: memory that is marked as not used (unit is *bytes*) * **buffers**: *(Linux, BSD)*: cache for things like file system metadata (unit is *bytes*) * **cached**: *(Linux, BSD)*: cache for various things (unit is *bytes*) * **wired**: *(BSD, macOS)*: memory that is marked to always stay in RAM. It is never moved to disk (unit is *bytes*) * **shared**: *(BSD)*: memory that may be simultaneously accessed by multiple processes (unit is *bytes*) Get a specific field:: # curl http://localhost:61208/api/4/mem/total {"total": 7823585280} GET memswap ----------- Get plugin stats:: # curl http://localhost:61208/api/4/memswap {"free": 5113073664, "percent": 36.7, "sin": 11089084416, "sout": 17246994432, "time_since_update": 1, "total": 8082419712, "used": 2969346048} Fields descriptions: * **total**: Total swap memory (unit is *bytes*) * **used**: Used swap memory (unit is *bytes*) * **free**: Free swap memory (unit is *bytes*) * **percent**: Used swap memory in percentage (unit is *percent*) * **sin**: The number of bytes the system has swapped in from disk (cumulative) (unit is *bytes*) * **sout**: The number of bytes the system has swapped out from disk (cumulative) (unit is *bytes*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/4/memswap/total {"total": 8082419712} GET network ----------- Get plugin stats:: # curl http://localhost:61208/api/4/network [{"alias": None, "cumulative_cx": 2101554218, "cumulative_rx": 1050777109, "cumulative_tx": 1050777109, "cx": 0, "interface_name": "lo", "is_up": True, "key": "interface_name", "rx": 0, "speed": 0, "time_since_update": 1, "tx": 0}, {"alias": "WIFI", "cumulative_cx": 12866935025, "cumulative_rx": 9798275727, "cumulative_tx": 3068659298, "cx": 224, "interface_name": "wlp2s0", "is_up": True, "key": "interface_name", "rx": 98, "speed": 0, "time_since_update": 1, "tx": 126}] Fields descriptions: * **interface_name**: Interface name (unit is *string*) * **alias**: Interface alias name (optional) (unit is *string*) * **rx**: The received/input rate (unit is *bitpersecond*) * **tx**: The sent/output rate (unit is *bitpersecond*) * **cx**: The cumulative received+sent rate (unit is *bitpersecond*) * **cumulative_rx**: The number of bytes received through the interface (cumulative) (unit is *byte*) * **cumulative_tx**: The number of bytes sent through the interface (cumulative) (unit is *byte*) * **cumulative_cx**: The cumulative number of bytes reveived and sent through the interface (cumulative) (unit is *byte*) * **speed**: Maximum interface speed (in bit per second). Can return 0 on some operating-system (unit is *bitpersecond*) * **is_up**: Is the interface up ? (unit is *bool*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/4/network/interface_name {"interface_name": ["lo", "wlp2s0", "br-40875d2e2716", "docker0", "br_grafana", "veth55598fc", "mpqemubr0"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/network/interface_name/lo {"lo": [{"alias": None, "cumulative_cx": 2101554218, "cumulative_rx": 1050777109, "cumulative_tx": 1050777109, "cx": 0, "interface_name": "lo", "is_up": True, "key": "interface_name", "rx": 0, "speed": 0, "time_since_update": 1, "tx": 0}]} GET now ------- Get plugin stats:: # curl http://localhost:61208/api/4/now "2024-01-06 15:30:40 CET" GET percpu ---------- Get plugin stats:: # curl http://localhost:61208/api/4/percpu [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, "idle": 36.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 2.0, "total": 64.0, "user": 11.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, "idle": 44.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 1.0, "total": 56.0, "user": 4.0}] Fields descriptions: * **cpu_number**: CPU number (unit is *None*) * **total**: Sum of CPU percentages (except idle) for current CPU number (unit is *percent*) * **system**: Percent time spent in kernel space. System CPU time is the time spent running code in the Operating System kernel (unit is *percent*) * **user**: CPU percent time spent in user space. User CPU time is the time spent on the processor running your program's code (or code in libraries) (unit is *percent*) * **iowait**: *(Linux)*: percent time spent by the CPU waiting for I/O operations to complete (unit is *percent*) * **idle**: percent of CPU used by any program. Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle (unit is *percent*) * **irq**: *(Linux and BSD)*: percent time spent servicing/handling hardware/software interrupts. Time servicing interrupts (hardware + software) (unit is *percent*) * **nice**: *(Unix)*: percent time occupied by user level processes with a positive nice value. The time the CPU has spent running users' processes that have been *niced* (unit is *percent*) * **steal**: *(Linux)*: percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor (unit is *percent*) * **guest**: *(Linux)*: percent of time spent running a virtual CPU for guest operating systems under the control of the Linux kernel (unit is *percent*) * **guest_nice**: *(Linux)*: percent of time spent running a niced guest (virtual CPU) (unit is *percent*) * **softirq**: *(Linux)*: percent of time spent handling software interrupts (unit is *percent*) Get a specific field:: # curl http://localhost:61208/api/4/percpu/cpu_number {"cpu_number": [0, 1, 2, 3]} GET ports --------- Get plugin stats:: # curl http://localhost:61208/api/4/ports [{"description": "DefaultGateway", "host": "192.168.1.1", "indice": "port_0", "port": 0, "refresh": 30, "rtt_warning": None, "status": 0.006601, "timeout": 3}] Fields descriptions: * **host**: Measurement is be done on this host (or IP address) (unit is *None*) * **port**: Measurement is be done on this port (0 for ICMP) (unit is *None*) * **description**: Human readable description for the host/port (unit is *None*) * **refresh**: Refresh time (in seconds) for this host/port (unit is *None*) * **timeout**: Timeout (in seconds) for the measurement (unit is *None*) * **status**: Measurement result (in seconds) (unit is *second*) * **rtt_warning**: Warning threshold (in seconds) for the measurement (unit is *second*) * **indice**: Unique indice for the host/port (unit is *None*) Get a specific field:: # curl http://localhost:61208/api/4/ports/host {"host": ["192.168.1.1"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/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.006601, "timeout": 3}]} GET processcount ---------------- Get plugin stats:: # curl http://localhost:61208/api/4/processcount {"pid_max": 0, "running": 1, "sleeping": 318, "thread": 1497, "total": 384} Fields descriptions: * **total**: Total number of processes (unit is *number*) * **running**: Total number of running processes (unit is *number*) * **sleeping**: Total number of sleeping processes (unit is *number*) * **thread**: Total number of threads (unit is *number*) * **pid_max**: Maximum number of processes (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/4/processcount/total {"total": 384} GET psutilversion ----------------- Get plugin stats:: # curl http://localhost:61208/api/4/psutilversion "5.9.6" GET quicklook ------------- Get plugin stats:: # curl http://localhost:61208/api/4/quicklook {"cpu": 35.4, "cpu_hz": 2025000000.0, "cpu_hz_current": 2048947749.9999998, "cpu_name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz", "mem": 71.1, "percpu": [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, "idle": 36.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 2.0, "total": 64.0, "user": 11.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, "idle": 44.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 1.0, "total": 56.0, "user": 4.0}, {"cpu_number": 2, "guest": 0.0, "guest_nice": 0.0, "idle": 26.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 1.0, "total": 74.0, "user": 23.0}, {"cpu_number": 3, "guest": 0.0, "guest_nice": 0.0, "idle": 21.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 2.0, "total": 79.0, "user": 24.0}], "swap": 36.7} Fields descriptions: * **cpu**: CPU percent usage (unit is *percent*) * **mem**: MEM percent usage (unit is *percent*) * **swap**: SWAP percent usage (unit is *percent*) * **cpu_name**: CPU name (unit is *None*) * **cpu_hz_current**: CPU current frequency (unit is *hertz*) * **cpu_hz**: CPU max frequency (unit is *hertz*) Get a specific field:: # curl http://localhost:61208/api/4/quicklook/cpu {"cpu": 35.4} GET sensors ----------- Get plugin stats:: # curl http://localhost:61208/api/4/sensors [{"critical": 105, "key": "label", "label": "acpitz 0", "type": "temperature_core", "unit": "C", "value": 27, "warning": 105}, {"critical": 105, "key": "label", "label": "acpitz 1", "type": "temperature_core", "unit": "C", "value": 29, "warning": 105}] Fields descriptions: * **label**: Sensor label (unit is *None*) * **unit**: Sensor unit (unit is *None*) * **value**: Sensor value (unit is *number*) * **warning**: Warning threshold (unit is *number*) * **critical**: Critical threshold (unit is *number*) * **type**: Sensor type (one of battery, temperature_core, fan_speed) (unit is *None*) Get a specific field:: # curl http://localhost:61208/api/4/sensors/label {"label": ["acpitz 0", "acpitz 1", "Package id 0", "Core 0", "Core 1", "CPU", "Ambient", "SODIMM", "BAT BAT0"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/sensors/label/acpitz 0 {"acpitz 0": [{"critical": 105, "key": "label", "label": "acpitz 0", "type": "temperature_core", "unit": "C", "value": 27, "warning": 105}]} GET system ---------- Get plugin stats:: # curl http://localhost:61208/api/4/system {"hostname": "XPS13-9333", "hr_name": "Ubuntu 22.04 64bit", "linux_distro": "Ubuntu 22.04", "os_name": "Linux", "os_version": "5.15.0-88-generic", "platform": "64bit"} Fields descriptions: * **os_name**: Operating system name (unit is *None*) * **hostname**: Hostname (unit is *None*) * **platform**: Platform (32 or 64 bits) (unit is *None*) * **linux_distro**: Linux distribution (unit is *None*) * **os_version**: Operating system version (unit is *None*) * **hr_name**: Human readable operating sytem name (unit is *None*) Get a specific field:: # curl http://localhost:61208/api/4/system/os_name {"os_name": "Linux"} GET uptime ---------- Get plugin stats:: # curl http://localhost:61208/api/4/uptime "42 days, 6:32:43" GET version ----------- Get plugin stats:: # curl http://localhost:61208/api/4/version "4.0.0_beta01" GET all stats ------------- Get all Glances stats:: # curl http://localhost:61208/api/4/all Return a very big dictionary (avoid using this request, performances will be poor)... GET top n items of a specific plugin ------------------------------------ Get top 2 processes of the processlist plugin:: # curl http://localhost:61208/api/4/processlist/top/2 [{"cmdline": ["/usr/share/code/code", "--ms-enable-electron-run-as-node", "/home/nicolargo/.vscode/extensions/ms-python.vscode-pylance-2023.12.1/dist/server.bundle.js", "--cancellationReceive=file:810abd06604ca203178b3fa9390087012fbf550dba", "--node-ipc", "--clientProcessId=391253"], "cpu_percent": 0.0, "cpu_times": {"children_system": 0.53, "children_user": 4.97, "iowait": 0.0, "system": 296.42, "user": 5037.11}, "gids": {"effective": 1000, "real": 1000, "saved": 1000}, "io_counters": [664473600, 2191360, 0, 0, 0], "key": "pid", "memory_info": {"data": 896806912, "dirty": 0, "lib": 0, "rss": 513888256, "shared": 23863296, "text": 120565760, "vms": 1207768694784}, "memory_percent": 6.568449599618859, "name": "code", "nice": 0, "num_threads": 13, "pid": 391817, "status": "S", "time_since_update": 1, "username": "nicolargo"}, {"cmdline": ["/snap/firefox/3206/usr/lib/firefox/firefox", "-contentproc", "-childID", "3", "-isForBrowser", "-prefsLen", "42198", "-prefMapSize", "234667", "-jsInitLen", "234236", "-parentBuildID", "20230928054334", "-greomni", "/snap/firefox/3206/usr/lib/firefox/omni.ja", "-appomni", "/snap/firefox/3206/usr/lib/firefox/browser/omni.ja", "-appDir", "/snap/firefox/3206/usr/lib/firefox/browser", "{83bff215-96f9-42b4-8c47-091fe64e4ee7}", "828507", "true", "tab"], "cpu_percent": 0.0, "cpu_times": {"children_system": 0.0, "children_user": 0.0, "iowait": 0.0, "system": 23.42, "user": 303.22}, "gids": {"effective": 1000, "real": 1000, "saved": 1000}, "io_counters": [16292864, 0, 0, 0, 0], "key": "pid", "memory_info": {"data": 773853184, "dirty": 0, "lib": 0, "rss": 413270016, "shared": 67846144, "text": 643072, "vms": 3338055680}, "memory_percent": 5.282360979134109, "name": "WebExtensions", "nice": 0, "num_threads": 20, "pid": 828921, "status": "S", "time_since_update": 1, "username": "nicolargo"}] Note: Only work for plugin with a list of items GET item description -------------------- Get item description (human readable) for a specific plugin/item:: # curl http://localhost:61208/api/4/diskio/read_bytes/description "Number of bytes read since last request." Note: the description is defined in the fields_description variable of the plugin. GET item unit ------------- Get item unit for a specific plugin/item:: # curl http://localhost:61208/api/4/diskio/read_bytes/unit "byte" Note: the description is defined in the fields_description variable of the plugin. GET stats history ----------------- History of a plugin:: # curl http://localhost:61208/api/4/cpu/history {"system": [["2024-01-06T15:30:42.228891", 3.6], ["2024-01-06T15:30:43.250803", 1.7], ["2024-01-06T15:30:44.471806", 1.7]], "user": [["2024-01-06T15:30:42.228879", 31.8], ["2024-01-06T15:30:43.250794", 10.9], ["2024-01-06T15:30:44.471792", 10.9]]} Limit history to last 2 values:: # curl http://localhost:61208/api/4/cpu/history/2 {"system": [["2024-01-06T15:30:43.250803", 1.7], ["2024-01-06T15:30:44.471806", 1.7]], "user": [["2024-01-06T15:30:43.250794", 10.9], ["2024-01-06T15:30:44.471792", 10.9]]} History for a specific field:: # curl http://localhost:61208/api/4/cpu/system/history {"system": [["2024-01-06T15:30:40.487397", 3.6], ["2024-01-06T15:30:42.228891", 3.6], ["2024-01-06T15:30:43.250803", 1.7], ["2024-01-06T15:30:44.471806", 1.7]]} Limit history for a specific field to last 2 values:: # curl http://localhost:61208/api/4/cpu/system/history {"system": [["2024-01-06T15:30:43.250803", 1.7], ["2024-01-06T15:30:44.471806", 1.7]]} GET limits (used for thresholds) -------------------------------- All limits/thresholds:: # curl http://localhost:61208/api/4/all/limits {"alert": {"alert_disable": ["False"], "history_size": 1200.0}, "amps": {"amps_disable": ["False"], "history_size": 1200.0}, "containers": {"containers_all": ["False"], "containers_disable": ["False"], "containers_max_name_size": 20.0, "history_size": 1200.0}, "core": {"history_size": 1200.0}, "cpu": {"cpu_ctx_switches_careful": 160000.0, "cpu_ctx_switches_critical": 200000.0, "cpu_ctx_switches_warning": 180000.0, "cpu_disable": ["False"], "cpu_iowait_careful": 20.0, "cpu_iowait_critical": 25.0, "cpu_iowait_warning": 22.5, "cpu_steal_careful": 50.0, "cpu_steal_critical": 90.0, "cpu_steal_warning": 70.0, "cpu_system_careful": 50.0, "cpu_system_critical": 90.0, "cpu_system_log": ["False"], "cpu_system_warning": 70.0, "cpu_total_careful": 65.0, "cpu_total_critical": 85.0, "cpu_total_log": ["True"], "cpu_total_warning": 75.0, "cpu_user_careful": 50.0, "cpu_user_critical": 90.0, "cpu_user_log": ["False"], "cpu_user_warning": 70.0, "history_size": 1200.0}, "diskio": {"diskio_alias": ["sda1:InternalDisk", "sdb1:ExternalDisk"], "diskio_disable": ["False"], "diskio_hide": ["loop.*", "/dev/loop.*"], "history_size": 1200.0}, "folders": {"folders_disable": ["False"], "history_size": 1200.0}, "fs": {"fs_alias": ["/:Root"], "fs_careful": 50.0, "fs_critical": 90.0, "fs_disable": ["False"], "fs_hide": ["/boot.*", "/snap.*"], "fs_warning": 70.0, "history_size": 1200.0}, "gpu": {"gpu_disable": ["False"], "gpu_mem_careful": 50.0, "gpu_mem_critical": 90.0, "gpu_mem_warning": 70.0, "gpu_proc_careful": 50.0, "gpu_proc_critical": 90.0, "gpu_proc_warning": 70.0, "history_size": 1200.0}, "help": {"history_size": 1200.0}, "ip": {"history_size": 1200.0, "ip_censys_fields": ["location:continent", "location:country", "autonomous_system:name"], "ip_censys_url": ["https://search.censys.io/api"], "ip_disable": ["False"], "ip_public_ip_disabled": ["False"], "ip_public_refresh_interval": 300.0}, "load": {"history_size": 1200.0, "load_careful": 0.7, "load_critical": 5.0, "load_disable": ["False"], "load_warning": 1.0}, "mem": {"history_size": 1200.0, "mem_careful": 50.0, "mem_critical": 90.0, "mem_disable": ["False"], "mem_warning": 70.0}, "memswap": {"history_size": 1200.0, "memswap_careful": 50.0, "memswap_critical": 90.0, "memswap_disable": ["False"], "memswap_warning": 70.0}, "network": {"history_size": 1200.0, "network_alias": ["wlp2s0:WIFI"], "network_disable": ["False"], "network_rx_careful": 70.0, "network_rx_critical": 90.0, "network_rx_warning": 80.0, "network_tx_careful": 70.0, "network_tx_critical": 90.0, "network_tx_warning": 80.0}, "now": {"history_size": 1200.0}, "percpu": {"history_size": 1200.0, "percpu_disable": ["False"], "percpu_iowait_careful": 50.0, "percpu_iowait_critical": 90.0, "percpu_iowait_warning": 70.0, "percpu_system_careful": 50.0, "percpu_system_critical": 90.0, "percpu_system_warning": 70.0, "percpu_user_careful": 50.0, "percpu_user_critical": 90.0, "percpu_user_warning": 70.0}, "ports": {"history_size": 1200.0, "ports_disable": ["False"], "ports_port_default_gateway": ["True"], "ports_refresh": 30.0, "ports_timeout": 3.0}, "processcount": {"history_size": 1200.0, "processcount_disable": ["False"]}, "processlist": {"history_size": 1200.0, "processlist_cpu_careful": 50.0, "processlist_cpu_critical": 90.0, "processlist_cpu_warning": 70.0, "processlist_disable": ["False"], "processlist_mem_careful": 50.0, "processlist_mem_critical": 90.0, "processlist_mem_warning": 70.0, "processlist_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"]}, "psutilversion": {"history_size": 1200.0}, "quicklook": {"history_size": 1200.0, "quicklook_cpu_careful": 50.0, "quicklook_cpu_critical": 90.0, "quicklook_cpu_warning": 70.0, "quicklook_disable": ["False"], "quicklook_mem_careful": 50.0, "quicklook_mem_critical": 90.0, "quicklook_mem_warning": 70.0, "quicklook_percentage_char": ["|"], "quicklook_swap_careful": 50.0, "quicklook_swap_critical": 90.0, "quicklook_swap_warning": 70.0}, "sensors": {"history_size": 1200.0, "sensors_battery_careful": 80.0, "sensors_battery_critical": 95.0, "sensors_battery_warning": 90.0, "sensors_disable": ["False"], "sensors_refresh": 4.0, "sensors_temperature_core_careful": 60.0, "sensors_temperature_core_critical": 80.0, "sensors_temperature_core_warning": 70.0, "sensors_temperature_hdd_careful": 45.0, "sensors_temperature_hdd_critical": 60.0, "sensors_temperature_hdd_warning": 52.0}, "system": {"history_size": 1200.0, "system_disable": ["False"], "system_refresh": 60}, "uptime": {"history_size": 1200.0}, "version": {"history_size": 1200.0}, "wifi": {"history_size": 1200.0, "wifi_careful": -65.0, "wifi_critical": -85.0, "wifi_disable": ["False"], "wifi_warning": -75.0}} Limits/thresholds for the cpu plugin:: # curl http://localhost:61208/api/4/cpu/limits {"cpu_ctx_switches_careful": 160000.0, "cpu_ctx_switches_critical": 200000.0, "cpu_ctx_switches_warning": 180000.0, "cpu_disable": ["False"], "cpu_iowait_careful": 20.0, "cpu_iowait_critical": 25.0, "cpu_iowait_warning": 22.5, "cpu_steal_careful": 50.0, "cpu_steal_critical": 90.0, "cpu_steal_warning": 70.0, "cpu_system_careful": 50.0, "cpu_system_critical": 90.0, "cpu_system_log": ["False"], "cpu_system_warning": 70.0, "cpu_total_careful": 65.0, "cpu_total_critical": 85.0, "cpu_total_log": ["True"], "cpu_total_warning": 75.0, "cpu_user_careful": 50.0, "cpu_user_critical": 90.0, "cpu_user_log": ["False"], "cpu_user_warning": 70.0, "history_size": 1200.0}