.. _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 [] 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*) * **global_msg**: Global alert message (unit is *string*) 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.5245327949523926}, {"count": 0, "countmax": 20.0, "countmin": None, "key": "name", "name": "Python", "refresh": 3.0, "regex": True, "result": None, "timer": 0.5243725776672363}] 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.5245327949523926}]} GET cloud --------- Get plugin stats:: # curl http://localhost:61208/api/4/cloud {} 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": "/portainer", "cpu": {"total": 0.0}, "cpu_percent": 0.0, "created": "2022-10-29T14:59:10.266701439Z", "engine": "docker", "id": "3abd51c615968482d9ccff5afc629f267f6dda113ed68b75b432615fae3b49fb", "image": ["portainer/portainer-ce:2.9.3"], "io": {"cumulative_ior": 40960, "cumulative_iow": 741376}, "key": "name", "memory": {"cache": None, "limit": 7823568896, "max_usage": None, "rss": None, "usage": 13950976}, "memory_usage": 13950976, "name": "portainer", "network": {"cumulative_rx": 1265768, "cumulative_tx": 1496}, "status": "running", "uptime": "5 days"}] 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": ["portainer"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/containers/name/portainer {"portainer": [{"command": "/portainer", "cpu": {"total": 0.0}, "cpu_percent": 0.0, "created": "2022-10-29T14:59:10.266701439Z", "engine": "docker", "id": "3abd51c615968482d9ccff5afc629f267f6dda113ed68b75b432615fae3b49fb", "image": ["portainer/portainer-ce:2.9.3"], "io": {"cumulative_ior": 40960, "cumulative_iow": 741376}, "key": "name", "memory": {"cache": None, "limit": 7823568896, "max_usage": None, "rss": None, "usage": 13950976}, "memory_usage": 13950976, "name": "portainer", "network": {"cumulative_rx": 1265768, "cumulative_tx": 1496}, "status": "running", "uptime": "5 days"}]} 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": 1045187154, "guest": 0.0, "idle": 61.8, "interrupts": 480320693, "iowait": 1.2, "irq": 0.0, "nice": 0.0, "soft_interrupts": 212881982, "steal": 0.0, "syscalls": 0, "system": 3.8, "total": 37.0, "user": 33.2} 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*) * **guest**: *(Linux)*: time spent running a virtual CPU for guest operating systems under the control of the Linux kernel (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*) * **ctx_switches_rate_per_sec**: 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 per second (unit is *number* per second) * **ctx_switches_gauge**: 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 (cumulative) (unit is *number*) * **interrupts**: number of interrupts per second (unit is *number*) * **interrupts_rate_per_sec**: number of interrupts per second per second (unit is *number* per second) * **interrupts_gauge**: number of interrupts per second (cumulative) (unit is *number*) * **soft_interrupts**: number of software interrupts per second. Always set to 0 on Windows and SunOS (unit is *number*) * **soft_interrupts_rate_per_sec**: number of software interrupts per second. Always set to 0 on Windows and SunOS per second (unit is *number* per second) * **soft_interrupts_gauge**: number of software interrupts per second. Always set to 0 on Windows and SunOS (cumulative) (unit is *number*) * **syscalls**: number of system calls per second. Always 0 on Linux OS (unit is *number*) * **syscalls_rate_per_sec**: number of system calls per second. Always 0 on Linux OS per second (unit is *number* per second) * **syscalls_gauge**: number of system calls per second. Always 0 on Linux OS (cumulative) (unit is *number*) * **cpucore**: Total number of CPU core (unit is *number*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) * **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": 37.0} GET diskio ---------- Get plugin stats:: # curl http://localhost:61208/api/4/diskio [{"disk_name": "sda", "key": "disk_name", "read_bytes": 103780120576, "read_count": 5592700, "write_bytes": 205655142400, "write_count": 2536615}, {"disk_name": "sda1", "key": "disk_name", "read_bytes": 24269824, "read_count": 659, "write_bytes": 0, "write_count": 44}] Fields descriptions: * **disk_name**: Disk name (unit is *None*) * **read_count**: Number of reads (unit is *number*) * **read_count_rate_per_sec**: Number of reads per second (unit is *number* per second) * **read_count_gauge**: Number of reads (cumulative) (unit is *number*) * **write_count**: Number of writes (unit is *number*) * **write_count_rate_per_sec**: Number of writes per second (unit is *number* per second) * **write_count_gauge**: Number of writes (cumulative) (unit is *number*) * **read_bytes**: Number of bytes read (unit is *byte*) * **read_bytes_rate_per_sec**: Number of bytes read per second (unit is *byte* per second) * **read_bytes_gauge**: Number of bytes read (cumulative) (unit is *byte*) * **write_bytes**: Number of bytes written (unit is *byte*) * **write_bytes_rate_per_sec**: Number of bytes written per second (unit is *byte* per second) * **write_bytes_gauge**: Number of bytes written (cumulative) (unit is *byte*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) 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": 103780120576, "read_count": 5592700, "write_bytes": 205655142400, "write_count": 2536615}]} GET folders ----------- Get plugin stats:: # curl http://localhost:61208/api/4/folders [] Fields descriptions: * **path**: Absolute path (unit is *None*) * **size**: Folder size in bytes (unit is *byte*) * **refresh**: Refresh interval in seconds (unit is *second*) * **errno**: Return code when retrieving folder size (0 is no error) (unit is *number*) * **careful**: Careful threshold in MB (unit is *megabyte*) * **warning**: Warning threshold in MB (unit is *megabyte*) * **critical**: Critical threshold in MB (unit is *megabyte*) GET fs ------ Get plugin stats:: # curl http://localhost:61208/api/4/fs [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 36362936320, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 84.3, "size": 243334156288, "used": 194583764992}, {"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// {"/": [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 36362936320, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 84.3, "size": 243334156288, "used": 194583764992}]} GET gpu ------- Get plugin stats:: # curl http://localhost:61208/api/4/gpu [] Fields descriptions: * **gpu_id**: GPU identification (unit is *None*) * **name**: GPU name (unit is *None*) * **mem**: Memory consumption (unit is *percent*) * **proc**: GPU processor consumption (unit is *percent*) * **temperature**: GPU temperature (unit is *celsius*) * **fan_speed**: GPU fan speed (unit is *roundperminute*) GET help -------- Get plugin stats:: # curl http://localhost:61208/api/4/help None 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 irq ------- Get plugin stats:: # curl http://localhost:61208/api/4/irq [] Fields descriptions: * **irq_line**: IRQ line name (unit is *None*) * **irq_rate**: IRQ rate per second (unit is *numberpersecond*) GET load -------- Get plugin stats:: # curl http://localhost:61208/api/4/load {"cpucore": 4, "min1": 1.55322265625, "min15": 1.49072265625, "min5": 1.41357421875} 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": 1.55322265625} GET mem ------- Get plugin stats:: # curl http://localhost:61208/api/4/mem {"active": 2619305984, "available": 2272538624, "buffers": 671969280, "cached": 2384011264, "free": 2272538624, "inactive": 3767078912, "percent": 71.0, "shared": 712904704, "total": 7823568896, "used": 5551030272} 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": 7823568896} GET memswap ----------- Get plugin stats:: # curl http://localhost:61208/api/4/memswap {"free": 6404341760, "percent": 20.8, "sin": 8074964992, "sout": 16575467520, "time_since_update": 1, "total": 8082419712, "used": 1678077952} 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, "bytes_all": 0, "bytes_all_gauge": 9304990504, "bytes_recv": 0, "bytes_recv_gauge": 8751597319, "bytes_sent": 0, "bytes_sent_gauge": 553393185, "interface_name": "wlp2s0", "key": "interface_name", "speed": 0, "time_since_update": 0.4305286407470703}, {"alias": None, "bytes_all": 0, "bytes_all_gauge": 0, "bytes_recv": 0, "bytes_recv_gauge": 0, "bytes_sent": 0, "bytes_sent_gauge": 0, "interface_name": "br-40875d2e2716", "key": "interface_name", "speed": 0, "time_since_update": 0.4305286407470703}] Fields descriptions: * **interface_name**: Interface name (unit is *None*) * **alias**: Interface alias name (optional) (unit is *None*) * **bytes_recv**: Number of bytes received (unit is *byte*) * **bytes_recv_rate_per_sec**: Number of bytes received per second (unit is *byte* per second) * **bytes_recv_gauge**: Number of bytes received (cumulative) (unit is *byte*) * **bytes_sent**: Number of bytes sent (unit is *byte*) * **bytes_sent_rate_per_sec**: Number of bytes sent per second (unit is *byte* per second) * **bytes_sent_gauge**: Number of bytes sent (cumulative) (unit is *byte*) * **bytes_all**: Number of bytes received and sent (unit is *byte*) * **bytes_all_rate_per_sec**: Number of bytes received and sent per second (unit is *byte* per second) * **bytes_all_gauge**: Number of bytes received and sent (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": ["wlp2s0", "br-40875d2e2716", "br_grafana", "lxdbr0", "veth05608da0", "mpqemubr0", "veth601e59cb", "vethfd301c0"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/4/network/interface_name/wlp2s0 {"wlp2s0": [{"alias": None, "bytes_all": 0, "bytes_all_gauge": 9304990504, "bytes_recv": 0, "bytes_recv_gauge": 8751597319, "bytes_sent": 0, "bytes_sent_gauge": 553393185, "interface_name": "wlp2s0", "key": "interface_name", "speed": 0, "time_since_update": 0.4305286407470703}]} GET now ------- Get plugin stats:: # curl http://localhost:61208/api/4/now "2024-04-05 19:35:30 CEST" GET percpu ---------- Get plugin stats:: # curl http://localhost:61208/api/4/percpu [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, "idle": 46.0, "iowait": 2.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 4.0, "total": 54.0, "user": 37.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": 4.0, "total": 56.0, "user": 41.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.006157, "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.006157, "timeout": 3}]} GET processcount ---------------- Get plugin stats:: # curl http://localhost:61208/api/4/processcount {"pid_max": 0, "running": 1, "sleeping": 337, "thread": 1577, "total": 407} 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": 407} GET processlist --------------- Get plugin stats:: # curl http://localhost:61208/api/4/processlist [] Fields descriptions: * **pid**: Process identifier (ID) (unit is *number*) * **name**: Process name (unit is *string*) * **cmdline**: Command line with arguments (unit is *list*) * **username**: Process owner (unit is *string*) * **num_threads**: Number of threads (unit is *number*) * **cpu_percent**: Process CPU consumption (unit is *percent*) * **memory_percent**: Process memory consumption (unit is *percent*) * **memory_info**: Process memory information (dict with rss, vms, shared, text, lib, data, dirty keys) (unit is *byte*) * **status**: Process status (unit is *string*) * **nice**: Process nice value (unit is *number*) * **cpu_times**: Process CPU times (dict with user, system, iowait keys) (unit is *second*) * **gids**: Process group IDs (dict with real, effective, saved keys) (unit is *number*) * **io_counters**: Process IO counters (list with read_count, write_count, read_bytes, write_bytes, io_tag keys) (unit is *byte*)