diff --git a/conf/glances.conf b/conf/glances.conf index c8eacf3d..0fdf4651 100644 --- a/conf/glances.conf +++ b/conf/glances.conf @@ -205,10 +205,6 @@ nf_conntrack_percent_critical=90 [wifi] disable=False -# Define the list of hidden wireless network interfaces (comma-separated regexp) -hide=lo,docker.* -# Define the list of wireless network interfaces to be show (comma-separated) -#show=docker.* # Define SIGNAL thresholds in db (lower is better...) # Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength careful=-65 diff --git a/docs/_static/wifi.png b/docs/_static/wifi.png index 328c556e..954e9076 100644 Binary files a/docs/_static/wifi.png and b/docs/_static/wifi.png differ diff --git a/docs/_static/wifi2.png b/docs/_static/wifi2.png new file mode 100644 index 00000000..f2089761 Binary files /dev/null and b/docs/_static/wifi2.png differ diff --git a/docs/aoa/wifi.rst b/docs/aoa/wifi.rst index d8a38e16..81452bcd 100644 --- a/docs/aoa/wifi.rst +++ b/docs/aoa/wifi.rst @@ -3,14 +3,16 @@ Wi-Fi ===== -*Availability: Linux* +*Availability: Linux only* + +If ``nmcli`` is available on the system, Glances displays the hotspot name, +the security type and the Wi-Fi signal quality: .. image:: ../_static/wifi.png -Glances displays the Wi-Fi signal quality. +or, as a backup, the file ``/proc/net/wireless`` is used to display the signal quality: -.. note:: - Stats are grabbed from the ``/proc/net/wireless`` file (so Linux only). +.. image:: ../_static/wifi2.png In the configuration file, you can define signal quality thresholds: @@ -18,16 +20,12 @@ In the configuration file, you can define signal quality thresholds: - ``"Good"`` quality between -85 and -60dBm - ``"Excellent"`` between -60 and -40dBm -It's also possible to disable the scan on a specific interface from the -configuration file (``[wifi]`` section). For example, if you want to -hide the loopback interface (lo) and all the virtual docker interfaces: +Thresholds for the signal quality can be defined in the configuration file: .. code-block:: ini [wifi] - hide=lo,docker.* - #show=wlp2s0 - # Define SIGNAL thresholds in dBm (lower is better...) + disable=False careful=-65 warning=-75 critical=-85 diff --git a/docs/api.rst b/docs/api.rst index 2206ac63..04d51eb5 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -84,14 +84,14 @@ GET alert Get plugin stats:: # curl http://localhost:61208/api/3/alert - [[1690221756.0, + [[1690293736.0, -1, "WARNING", "MEM", - 73.52308859142421, - 73.52308859142421, - 73.52308859142421, - 73.52308859142421, + 77.54053433873582, + 77.54053433873582, + 77.54053433873582, + 77.54053433873582, 1, [], "", @@ -111,7 +111,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.16022157669067383}, + "timer": 0.23587393760681152}, {"count": 0, "countmax": 20.0, "countmin": None, @@ -120,7 +120,7 @@ Get plugin stats:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.1601276397705078}] + "timer": 0.2357802391052246}] Get a specific field:: @@ -138,7 +138,7 @@ Get a specific item when field matches the given value:: "refresh": 3.0, "regex": True, "result": None, - "timer": 0.16022157669067383}]} + "timer": 0.23587393760681152}]} GET connections --------------- @@ -164,11 +164,11 @@ Get plugin stats:: "Id": "3abd51c615968482d9ccff5afc629f267f6dda113ed68b75b432615fae3b49fb", "Image": ["portainer/portainer-ce:2.9.3"], "Status": "running", - "Uptime": "2 weeks", + "Uptime": "an hour", "cpu": {"total": 0.0}, "cpu_percent": 0.0, "engine": "docker", - "io": {"cumulative_ior": 5931008, "cumulative_iow": 6717440}, + "io": {"cumulative_ior": 29429760, "cumulative_iow": 2326528}, "io_r": None, "io_w": None, "key": "name", @@ -176,10 +176,10 @@ Get plugin stats:: "limit": 7836184576, "max_usage": None, "rss": None, - "usage": 15683584}, - "memory_usage": 15683584, + "usage": 21876736}, + "memory_usage": 21876736, "name": "portainer", - "network": {"cumulative_rx": 3537709, "cumulative_tx": 0}, + "network": {"cumulative_rx": 401604, "cumulative_tx": 0}, "network_rx": None, "network_tx": None}, {"Command": ["top"], @@ -188,15 +188,15 @@ Get plugin stats:: "Image": "["docker.io/library/ubuntu:latest"]", "Status": "running", "Uptime": "2 months", - "cpu": {"total": 6.527343974782009e-06}, - "cpu_percent": 6.527343974782009e-06, + "cpu": {"total": 6.7650116939635326e-06}, + "cpu_percent": 6.7650116939635326e-06, "engine": "podman", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_r": 0.0, "io_w": 0.0, "key": "name", - "memory": {"limit": 7836184576.0, "usage": 1081344.0}, - "memory_usage": 1081344.0, + "memory": {"limit": 7836184576.0, "usage": 1093632.0}, + "memory_usage": 1093632.0, "name": "frosty_bouman", "network": {"rx": 0.0, "time_since_update": 1, "tx": 0.0}, "network_rx": 0.0, @@ -209,8 +209,8 @@ Get plugin stats:: "Image": "["k8s.gcr.io/pause:3.5"]", "Status": "running", "Uptime": "2 months", - "cpu": {"total": 3.162306945021642e-10}, - "cpu_percent": 3.162306945021642e-10, + "cpu": {"total": 3.177554220933258e-10}, + "cpu_percent": 3.177554220933258e-10, "engine": "podman", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_r": 0.0, @@ -255,19 +255,19 @@ Get plugin stats:: "ctx_switches": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 73.6, + "idle": 70.8, "interrupts": 0, "iowait": 0.0, "irq": 0.0, "nice": 0.0, "soft_interrupts": 0, - "softirq": 0.0, + "softirq": 0.7, "steal": 0.0, "syscalls": 0, - "system": 3.8, + "system": 4.4, "time_since_update": 1, - "total": 26.4, - "user": 22.6} + "total": 29.2, + "user": 24.1} Fields descriptions: @@ -290,7 +290,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/3/cpu/total - {"total": 26.4} + {"total": 29.2} GET diskio ---------- @@ -336,13 +336,13 @@ Get plugin stats:: # curl http://localhost:61208/api/3/fs [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", - "free": 26173812736, + "free": 25133506560, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", - "percent": 88.7, + "percent": 89.1, "size": 243334156288, - "used": 204772888576}, + "used": 205813194752}, {"device_name": "zsfpool", "free": 41811968, "fs_type": "zfs", @@ -361,13 +361,13 @@ Get a specific item when field matches the given value:: # curl http://localhost:61208/api/3/fs/mnt_point// {"/": [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", - "free": 26173812736, + "free": 25133506560, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", - "percent": 88.7, + "percent": 89.1, "size": 243334156288, - "used": 204772888576}]} + "used": 205813194752}]} GET ip ------ @@ -375,17 +375,17 @@ GET ip Get plugin stats:: # curl http://localhost:61208/api/3/ip - {"address": "192.168.0.32", - "gateway": "192.168.0.254", + {"address": "192.168.1.14", + "gateway": "192.168.1.1", "mask": "255.255.255.0", "mask_cidr": 24, - "public_address": "91.166.228.228", + "public_address": "92.151.148.66", "public_info_human": ""} Get a specific field:: # curl http://localhost:61208/api/3/ip/gateway - {"gateway": "192.168.0.254"} + {"gateway": "192.168.1.1"} GET load -------- @@ -393,7 +393,10 @@ GET load Get plugin stats:: # curl http://localhost:61208/api/3/load - {"cpucore": 4, "min1": 1.04296875, "min15": 1.11474609375, "min5": 0.9052734375} + {"cpucore": 4, + "min1": 1.18505859375, + "min15": 1.17724609375, + "min5": 1.23779296875} Fields descriptions: @@ -405,7 +408,7 @@ Fields descriptions: Get a specific field:: # curl http://localhost:61208/api/3/load/min1 - {"min1": 1.04296875} + {"min1": 1.18505859375} GET mem ------- @@ -413,16 +416,16 @@ GET mem Get plugin stats:: # curl http://localhost:61208/api/3/mem - {"active": 2751746048, - "available": 2074779648, - "buffers": 127934464, - "cached": 2468466688, - "free": 2074779648, - "inactive": 3784257536, - "percent": 73.5, - "shared": 544108544, + {"active": 3179450368, + "available": 1759965184, + "buffers": 139554816, + "cached": 2369826816, + "free": 1759965184, + "inactive": 3354943488, + "percent": 77.5, + "shared": 580452352, "total": 7836184576, - "used": 5761404928} + "used": 6076219392} Fields descriptions: @@ -449,13 +452,13 @@ GET memswap Get plugin stats:: # curl http://localhost:61208/api/3/memswap - {"free": 5769068544, - "percent": 28.6, - "sin": 30049615872, - "sout": 43714748416, + {"free": 5171486720, + "percent": 36.0, + "sin": 30833557504, + "sout": 44998725632, "time_since_update": 1, "total": 8082419712, - "used": 2313351168} + "used": 2910932992} Fields descriptions: @@ -479,29 +482,29 @@ Get plugin stats:: # curl http://localhost:61208/api/3/network [{"alias": None, - "cumulative_cx": 1243428214, - "cumulative_rx": 621714107, - "cumulative_tx": 621714107, - "cx": 0, + "cumulative_cx": 1271814348, + "cumulative_rx": 635907174, + "cumulative_tx": 635907174, + "cx": 1070, "interface_name": "lo", "is_up": True, "key": "interface_name", - "rx": 0, + "rx": 535, "speed": 0, "time_since_update": 1, - "tx": 0}, + "tx": 535}, {"alias": None, - "cumulative_cx": 42045848970, - "cumulative_rx": 40404482049, - "cumulative_tx": 1641366921, - "cx": 451, + "cumulative_cx": 43280474609, + "cumulative_rx": 41602144558, + "cumulative_tx": 1678330051, + "cx": 4727, "interface_name": "wlp2s0", "is_up": True, "key": "interface_name", - "rx": 211, + "rx": 663, "speed": 0, "time_since_update": 1, - "tx": 240}] + "tx": 4064}] Fields descriptions: @@ -524,25 +527,25 @@ Get a specific field:: "wlp2s0", "docker0", "br_grafana", - "veth868647c", "mpqemubr0", + "veth0868fe1", "vboxnet0"]} Get a specific item when field matches the given value:: # curl http://localhost:61208/api/3/network/interface_name/lo {"lo": [{"alias": None, - "cumulative_cx": 1243428214, - "cumulative_rx": 621714107, - "cumulative_tx": 621714107, - "cx": 0, + "cumulative_cx": 1271814348, + "cumulative_rx": 635907174, + "cumulative_tx": 635907174, + "cx": 1070, "interface_name": "lo", "is_up": True, "key": "interface_name", - "rx": 0, + "rx": 535, "speed": 0, "time_since_update": 1, - "tx": 0}]} + "tx": 535}]} GET now ------- @@ -550,7 +553,7 @@ GET now Get plugin stats:: # curl http://localhost:61208/api/3/now - "2023-07-24 20:02:36 CEST" + "2023-07-25 16:02:16 CEST" GET percpu ---------- @@ -561,29 +564,29 @@ Get plugin stats:: [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 4.0, + "idle": 30.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 3.0, - "total": 96.0, - "user": 18.0}, + "system": 2.0, + "total": 70.0, + "user": 4.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, - "idle": 23.0, + "idle": 30.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, - "system": 1.0, - "total": 77.0, - "user": 2.0}] + "system": 0.0, + "total": 70.0, + "user": 4.0}] Get a specific field:: @@ -597,30 +600,30 @@ Get plugin stats:: # curl http://localhost:61208/api/3/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.003764, + "status": 0.005154, "timeout": 3}] Get a specific field:: # curl http://localhost:61208/api/3/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/3/ports/host/192.168.0.254 - {"192.168.0.254": [{"description": "DefaultGateway", - "host": "192.168.0.254", - "indice": "port_0", - "port": 0, - "refresh": 30, - "rtt_warning": None, - "status": 0.003764, - "timeout": 3}]} + # curl http://localhost:61208/api/3/ports/host/192.168.1.1 + {"192.168.1.1": [{"description": "DefaultGateway", + "host": "192.168.1.1", + "indice": "port_0", + "port": 0, + "refresh": 30, + "rtt_warning": None, + "status": 0.005154, + "timeout": 3}]} GET processcount ---------------- @@ -628,12 +631,12 @@ GET processcount Get plugin stats:: # curl http://localhost:61208/api/3/processcount - {"pid_max": 0, "running": 1, "sleeping": 317, "thread": 1548, "total": 386} + {"pid_max": 0, "running": 1, "sleeping": 323, "thread": 1643, "total": 391} Get a specific field:: # curl http://localhost:61208/api/3/processcount/total - {"total": 386} + {"total": 391} GET psutilversion ----------------- @@ -649,15 +652,41 @@ GET quicklook Get plugin stats:: # curl http://localhost:61208/api/3/quicklook - {"cpu": 26.4, + {"cpu": 29.2, "cpu_hz": 3000000000.0, - "cpu_hz_current": 2704714500.0, + "cpu_hz_current": 2649443250.0, "cpu_name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz", - "mem": 73.5, + "mem": 77.5, "percpu": [{"cpu_number": 0, "guest": 0.0, "guest_nice": 0.0, - "idle": 4.0, + "idle": 30.0, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 2.0, + "total": 70.0, + "user": 4.0}, + {"cpu_number": 1, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 30.0, + "iowait": 0.0, + "irq": 0.0, + "key": "cpu_number", + "nice": 0.0, + "softirq": 0.0, + "steal": 0.0, + "system": 0.0, + "total": 70.0, + "user": 4.0}, + {"cpu_number": 2, + "guest": 0.0, + "guest_nice": 0.0, + "idle": 14.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", @@ -665,53 +694,27 @@ Get plugin stats:: "softirq": 0.0, "steal": 0.0, "system": 3.0, - "total": 96.0, - "user": 18.0}, - {"cpu_number": 1, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 23.0, - "iowait": 0.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 1.0, - "total": 77.0, - "user": 2.0}, - {"cpu_number": 2, - "guest": 0.0, - "guest_nice": 0.0, - "idle": 25.0, - "iowait": 1.0, - "irq": 0.0, - "key": "cpu_number", - "nice": 0.0, - "softirq": 0.0, - "steal": 0.0, - "system": 0.0, - "total": 75.0, - "user": 1.0}, + "total": 86.0, + "user": 17.0}, {"cpu_number": 3, "guest": 0.0, "guest_nice": 0.0, - "idle": 25.0, + "idle": 24.0, "iowait": 0.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, - "softirq": 0.0, + "softirq": 1.0, "steal": 0.0, - "system": 1.0, - "total": 75.0, - "user": 2.0}], - "swap": 28.6} + "system": 2.0, + "total": 76.0, + "user": 9.0}], + "swap": 36.0} Get a specific field:: # curl http://localhost:61208/api/3/quicklook/cpu - {"cpu": 26.4} + {"cpu": 29.2} GET sensors ----------- @@ -782,33 +785,7 @@ GET uptime Get plugin stats:: # curl http://localhost:61208/api/3/uptime - "77 days, 7:00:32" - -GET wifi --------- - -Get plugin stats:: - - # curl http://localhost:61208/api/3/wifi - [{"key": "ssid", - "noise": -256.0, - "quality": 54.0, - "signal": -56.0, - "ssid": "wlp2s0"}] - -Get a specific field:: - - # curl http://localhost:61208/api/3/wifi/ssid - {"ssid": ["wlp2s0"]} - -Get a specific item when field matches the given value:: - - # curl http://localhost:61208/api/3/wifi/ssid/wlp2s0 - {"wlp2s0": [{"key": "ssid", - "noise": -256.0, - "quality": 54.0, - "signal": -56.0, - "ssid": "wlp2s0"}]} + "78 days, 3:00:11" GET all stats ------------- @@ -824,33 +801,33 @@ GET stats history History of a plugin:: # curl http://localhost:61208/api/3/cpu/history - {"system": [["2023-07-24T20:02:36.054025", 3.8], - ["2023-07-24T20:02:37.801975", 3.8], - ["2023-07-24T20:02:38.828873", 1.3]], - "user": [["2023-07-24T20:02:36.054019", 22.6], - ["2023-07-24T20:02:37.801964", 22.6], - ["2023-07-24T20:02:38.828867", 15.0]]} + {"system": [["2023-07-25T16:02:16.701846", 4.4], + ["2023-07-25T16:02:18.501052", 4.4], + ["2023-07-25T16:02:19.527073", 3.0]], + "user": [["2023-07-25T16:02:16.701836", 24.1], + ["2023-07-25T16:02:18.501045", 24.1], + ["2023-07-25T16:02:19.527068", 16.6]]} Limit history to last 2 values:: # curl http://localhost:61208/api/3/cpu/history/2 - {"system": [["2023-07-24T20:02:37.801975", 3.8], - ["2023-07-24T20:02:38.828873", 1.3]], - "user": [["2023-07-24T20:02:37.801964", 22.6], - ["2023-07-24T20:02:38.828867", 15.0]]} + {"system": [["2023-07-25T16:02:18.501052", 4.4], + ["2023-07-25T16:02:19.527073", 3.0]], + "user": [["2023-07-25T16:02:18.501045", 24.1], + ["2023-07-25T16:02:19.527068", 16.6]]} History for a specific field:: # curl http://localhost:61208/api/3/cpu/system/history - {"system": [["2023-07-24T20:02:36.054025", 3.8], - ["2023-07-24T20:02:37.801975", 3.8], - ["2023-07-24T20:02:38.828873", 1.3]]} + {"system": [["2023-07-25T16:02:16.701846", 4.4], + ["2023-07-25T16:02:18.501052", 4.4], + ["2023-07-25T16:02:19.527073", 3.0]]} Limit history for a specific field to last 2 values:: # curl http://localhost:61208/api/3/cpu/system/history - {"system": [["2023-07-24T20:02:37.801975", 3.8], - ["2023-07-24T20:02:38.828873", 1.3]]} + {"system": [["2023-07-25T16:02:18.501052", 4.4], + ["2023-07-25T16:02:19.527073", 3.0]]} GET limits (used for thresholds) -------------------------------- @@ -1036,7 +1013,6 @@ All limits/thresholds:: "wifi_careful": -65.0, "wifi_critical": -85.0, "wifi_disable": ["False"], - "wifi_hide": ["lo", "docker.*"], "wifi_warning": -75.0}} Limits/thresholds for the cpu plugin:: diff --git a/docs/man/glances.1 b/docs/man/glances.1 index 6fbbdfd7..6e90746c 100644 --- a/docs/man/glances.1 +++ b/docs/man/glances.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GLANCES" "1" "Jul 24, 2023" "4.0.0_beta01" "Glances" +.TH "GLANCES" "1" "Jul 25, 2023" "4.0.0_beta01" "Glances" .SH NAME glances \- An eye on your system .SH SYNOPSIS diff --git a/glances/outputs/static/js/components/plugin-wifi.vue b/glances/outputs/static/js/components/plugin-wifi.vue index 5fc31f8c..9fa0aa52 100644 --- a/glances/outputs/static/js/components/plugin-wifi.vue +++ b/glances/outputs/static/js/components/plugin-wifi.vue @@ -8,6 +8,9 @@
{{ $filters.limitTo(hotspot.ssid, 20) }} + + {{ hotspot.security }} +
@@ -42,6 +45,7 @@ export default { return { ssid: hotspotData['ssid'], signal: hotspotData['signal'], + security: hotspotData['security'] }; }) .filter(Boolean); diff --git a/glances/outputs/static/public/glances.js b/glances/outputs/static/public/glances.js index f2db21d7..578068ed 100644 --- a/glances/outputs/static/public/glances.js +++ b/glances/outputs/static/public/glances.js @@ -28,4 +28,4 @@ function n(e){return"[object Object]"===Object.prototype.toString.call(e)}Object * https://jaywcjlove.github.io/hotkeys-js * Licensed under the MIT license */ -var ho="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function go(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function mo(e,t){for(var n=t.slice(0,t.length-1),r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var vo={backspace:8,"⌫":8,tab:9,clear:12,enter:13,"↩":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ho?173:189,"=":ho?61:187,";":ho?59:186,"'":222,"[":219,"]":221,"\\":220},yo={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},wo={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},xo={16:!1,18:!1,17:!1,91:!1},_o={},ko=1;ko<20;ko++)vo["f".concat(ko)]=111+ko;var So=[],Co=!1,To="all",Ao=[],Eo=function(e){return vo[e.toLowerCase()]||yo[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function Oo(e){To=e||"all"}function Io(){return To||"all"}var Po=function(e){var t=e.key,n=e.scope,r=e.method,i=e.splitKey,s=void 0===i?"+":i;bo(t).forEach((function(e){var t=e.split(s),i=t.length,o=t[i-1],a="*"===o?"*":Eo(o);if(_o[a]){n||(n=Io());var l=i>1?mo(yo,t):[];_o[a]=_o[a].filter((function(e){return!((!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,i=!0,s=0;s0,xo)Object.prototype.hasOwnProperty.call(xo,s)&&(!xo[s]&&t.mods.indexOf(+s)>-1||xo[s]&&-1===t.mods.indexOf(+s))&&(i=!1);(0!==t.mods.length||xo[16]||xo[18]||xo[17]||xo[91])&&!i&&"*"!==t.shortcut||(t.keys=[],t.keys=t.keys.concat(So),!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function Lo(e,t){var n=_o["*"],r=e.keyCode||e.which||e.charCode;if(Do.filter.call(this,e)){if(93!==r&&224!==r||(r=91),-1===So.indexOf(r)&&229!==r&&So.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=wo[t];e[t]&&-1===So.indexOf(n)?So.push(n):!e[t]&&So.indexOf(n)>-1?So.splice(So.indexOf(n),1):"metaKey"===t&&e[t]&&3===So.length&&(e.ctrlKey||e.shiftKey||e.altKey||(So=So.slice(So.indexOf(n))))})),r in xo){for(var i in xo[r]=!0,yo)yo[i]===r&&(Do[i]=!0);if(!n)return}for(var s in xo)Object.prototype.hasOwnProperty.call(xo,s)&&(xo[s]=e[wo[s]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===So.indexOf(17)&&So.push(17),-1===So.indexOf(18)&&So.push(18),xo[17]=!0,xo[18]=!0);var o=Io();if(n)for(var a=0;a1&&(i=mo(yo,e)),(e="*"===(e=e[e.length-1])?"*":Eo(e))in _o||(_o[e]=[]),_o[e].push({keyup:l,keydown:c,scope:s,mods:i,shortcut:r[a],method:n,key:r[a],splitKey:u,element:o});void 0!==o&&!function(e){return Ao.indexOf(e)>-1}(o)&&window&&(Ao.push(o),go(o,"keydown",(function(e){Lo(e,o)}),d),Co||(Co=!0,go(window,"focus",(function(){So=[]}),d)),go(o,"keyup",(function(e){Lo(e,o),function(e){var t=e.keyCode||e.which||e.charCode,n=So.indexOf(t);if(n>=0&&So.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&So.splice(0,So.length),93!==t&&224!==t||(t=91),t in xo)for(var r in xo[t]=!1,yo)yo[r]===t&&(Do[r]=!1)}(e)}),d))}var Mo={getPressedKeyString:function(){return So.map((function(e){return t=e,Object.keys(vo).find((function(e){return vo[e]===t}))||function(e){return Object.keys(yo).find((function(t){return yo[t]===e}))}(e)||String.fromCharCode(e);var t}))},setScope:Oo,getScope:Io,deleteScope:function(e,t){var n,r;for(var i in e||(e=Io()),_o)if(Object.prototype.hasOwnProperty.call(_o,i))for(n=_o[i],r=0;r1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(_o).forEach((function(n){_o[n].filter((function(n){return n.scope===t&&n.shortcut===e})).forEach((function(e){e&&e.method&&e.method()}))}))},unbind:function(e){if(void 0===e)Object.keys(_o).forEach((function(e){return delete _o[e]}));else if(Array.isArray(e))e.forEach((function(e){e.key&&Po(e)}));else if("object"==typeof e)e.key&&Po(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=this.limits[e][l]){var c=l.lastIndexOf("_");return l.substring(c+1)+s}}return"ok"+s}getAlertLog(e,t,n,r){return this.getAlert(e,t,n,r,!0)}};const zo=new class{data=void 0;init(e=60){let t;const n=()=>(qo.status="PENDING",Promise.all([fetch("api/3/all",{method:"GET"}).then((e=>e.json())),fetch("api/3/all/views",{method:"GET"}).then((e=>e.json()))]).then((e=>{const t={stats:e[0],views:e[1],isBsd:"FreeBSD"===e[0].system.os_name,isLinux:"Linux"===e[0].system.os_name,isSunOS:"SunOS"===e[0].system.os_name,isMac:"Darwin"===e[0].system.os_name,isWindows:"Windows"===e[0].system.os_name};this.data=t,qo.data=t,qo.status="SUCCESS"})).catch((e=>{console.log(e),qo.status="FAILURE"})).then((()=>{t&&clearTimeout(t),t=setTimeout(n,1e3*e)})));n(),fetch("api/3/all/limits",{method:"GET"}).then((e=>e.json())).then((e=>{Fo.setLimits(e)})),fetch("api/3/args",{method:"GET"}).then((e=>e.json())).then(((e={})=>{qo.args={...qo.args,...e}})),fetch("api/3/config",{method:"GET"}).then((e=>e.json())).then(((e={})=>{qo.config={...qo.config,...e}}))}getData(){return this.data}};const $o=new class{constructor(){this.favico=new(Uo())({animation:"none"})}badge(e){this.favico.badge(e)}reset(){this.favico.reset()}},Ho={key:0},Vo={class:"container-fluid"},Go={class:"row"},Wo={class:"col-sm-12 col-lg-24"},Zo=wi("div",{class:"row"}," ",-1),Ko={class:"row"},Qo={class:"col-sm-12 col-lg-24"},Xo=wi("div",{class:"row"}," ",-1),Jo={class:"divTable",style:{width:"100%"}},Yo={class:"divTableBody"},ea={class:"divTableRow"},ta={class:"divTableHead"},na={class:"divTableHead"},ra={class:"divTableHead"},ia={class:"divTableHead"},sa={class:"divTableRow"},oa={class:"divTableCell"},aa={class:"divTableCell"},la={class:"divTableCell"},ca={class:"divTableCell"},ua={class:"divTableRow"},da={class:"divTableCell"},fa={class:"divTableCell"},pa={class:"divTableCell"},ha={class:"divTableCell"},ga={class:"divTableRow"},ma={class:"divTableCell"},ba={class:"divTableCell"},va={class:"divTableCell"},ya={class:"divTableCell"},wa={class:"divTableRow"},xa={class:"divTableCell"},_a={class:"divTableCell"},ka={class:"divTableCell"},Sa={class:"divTableCell"},Ca={class:"divTableRow"},Ta={class:"divTableCell"},Aa={class:"divTableCell"},Ea={class:"divTableCell"},Oa={class:"divTableCell"},Ia={class:"divTableRow"},Pa={class:"divTableCell"},Na={class:"divTableCell"},La={class:"divTableCell"},Da={class:"divTableCell"},Ma={class:"divTableRow"},ja={class:"divTableCell"},Ra={class:"divTableCell"},qa={class:"divTableCell"},Ba={class:"divTableCell"},Ua={class:"divTableRow"},Fa=wi("div",{class:"divTableCell"}," ",-1),za={class:"divTableCell"},$a={class:"divTableCell"},Ha={class:"divTableCell"},Va={class:"divTableRow"},Ga=wi("div",{class:"divTableCell"}," ",-1),Wa={class:"divTableCell"},Za={class:"divTableCell"},Ka={class:"divTableCell"},Qa={class:"divTableRow"},Xa=wi("div",{class:"divTableCell"}," ",-1),Ja={class:"divTableCell"},Ya={class:"divTableCell"},el={class:"divTableCell"},tl={class:"divTableRow"},nl=wi("div",{class:"divTableCell"}," ",-1),rl={class:"divTableCell"},il=wi("div",{class:"divTableCell"}," ",-1),sl={class:"divTableCell"},ol={class:"divTableRow"},al=wi("div",{class:"divTableCell"}," ",-1),ll={class:"divTableCell"},cl=wi("div",{class:"divTableCell"}," ",-1),ul=wi("div",{class:"divTableCell"}," ",-1),dl={class:"divTableRow"},fl=wi("div",{class:"divTableCell"}," ",-1),pl={class:"divTableCell"},hl=wi("div",{class:"divTableCell"}," ",-1),gl=wi("div",{class:"divTableCell"}," ",-1),ml={class:"divTableRow"},bl=wi("div",{class:"divTableCell"}," ",-1),vl={class:"divTableCell"},yl=wi("div",{class:"divTableCell"}," ",-1),wl=wi("div",{class:"divTableCell"}," ",-1),xl={class:"divTableRow"},_l=wi("div",{class:"divTableCell"}," ",-1),kl={class:"divTableCell"},Sl=wi("div",{class:"divTableCell"}," ",-1),Cl=wi("div",{class:"divTableCell"}," ",-1),Tl={class:"divTableRow"},Al=wi("div",{class:"divTableCell"}," ",-1),El={class:"divTableCell"},Ol=wi("div",{class:"divTableCell"}," ",-1),Il=wi("div",{class:"divTableCell"}," ",-1),Pl={class:"divTableRow"},Nl=wi("div",{class:"divTableCell"}," ",-1),Ll={class:"divTableCell"},Dl=wi("div",{class:"divTableCell"}," ",-1),Ml=wi("div",{class:"divTableCell"}," ",-1),jl={class:"divTableRow"},Rl=wi("div",{class:"divTableCell"}," ",-1),ql={class:"divTableCell"},Bl=wi("div",{class:"divTableCell"}," ",-1),Ul=wi("div",{class:"divTableCell"}," ",-1),Fl={class:"divTableRow"},zl=wi("div",{class:"divTableCell"}," ",-1),$l={class:"divTableCell"},Hl=wi("div",{class:"divTableCell"}," ",-1),Vl=wi("div",{class:"divTableCell"}," ",-1),Gl={class:"divTableRow"},Wl=wi("div",{class:"divTableCell"}," ",-1),Zl={class:"divTableCell"},Kl=wi("div",{class:"divTableCell"}," ",-1),Ql=wi("div",{class:"divTableCell"}," ",-1),Xl=wi("div",null,[wi("p",null,[Si(" For an exhaustive list of key bindings, "),wi("a",{href:"https://glances.readthedocs.io/en/latest/cmds.html#interactive-commands"},"click here"),Si(". ")])],-1),Jl=wi("div",null,[wi("p",null,[Si("Press "),wi("b",null,"h"),Si(" to came back to Glances.")])],-1);const Yl={data:()=>({help:void 0}),mounted(){fetch("api/3/help",{method:"GET"}).then((e=>e.json())).then((e=>this.help=e))}};var ec=n(3744);const tc=(0,ec.Z)(Yl,[["render",function(e,t,n,r,i,s){return i.help?(li(),pi("div",Ho,[wi("div",Vo,[wi("div",Go,[wi("div",Wo,pe(i.help.version)+" "+pe(i.help.psutil_version),1)]),Zo,wi("div",Ko,[wi("div",Qo,pe(i.help.configuration_file),1)]),Xo]),wi("div",Jo,[wi("div",Yo,[wi("div",ea,[wi("div",ta,pe(i.help.header_sort.replace(":","")),1),wi("div",na,pe(i.help.header_show_hide.replace(":","")),1),wi("div",ra,pe(i.help.header_toggle.replace(":","")),1),wi("div",ia,pe(i.help.header_miscellaneous.replace(":","")),1)]),wi("div",sa,[wi("div",oa,pe(i.help.sort_auto),1),wi("div",aa,pe(i.help.show_hide_application_monitoring),1),wi("div",la,pe(i.help.toggle_bits_bytes),1),wi("div",ca,pe(i.help.misc_erase_process_filter),1)]),wi("div",ua,[wi("div",da,pe(i.help.sort_cpu),1),wi("div",fa,pe(i.help.show_hide_diskio),1),wi("div",pa,pe(i.help.toggle_count_rate),1),wi("div",ha,pe(i.help.misc_generate_history_graphs),1)]),wi("div",ga,[wi("div",ma,pe(i.help.sort_io_rate),1),wi("div",ba,pe(i.help.show_hide_containers),1),wi("div",va,pe(i.help.toggle_used_free),1),wi("div",ya,pe(i.help.misc_help),1)]),wi("div",wa,[wi("div",xa,pe(i.help.sort_mem),1),wi("div",_a,pe(i.help.show_hide_top_extended_stats),1),wi("div",ka,pe(i.help.toggle_bar_sparkline),1),wi("div",Sa,pe(i.help.misc_accumulate_processes_by_program),1)]),wi("div",Ca,[wi("div",Ta,pe(i.help.sort_process_name),1),wi("div",Aa,pe(i.help.show_hide_filesystem),1),wi("div",Ea,pe(i.help.toggle_separate_combined),1),wi("div",Oa,pe(i.help.misc_kill_process)+" - N/A in WebUI ",1)]),wi("div",Ia,[wi("div",Pa,pe(i.help.sort_cpu_times),1),wi("div",Na,pe(i.help.show_hide_gpu),1),wi("div",La,pe(i.help.toggle_live_cumulative),1),wi("div",Da,pe(i.help.misc_reset_processes_summary_min_max),1)]),wi("div",Ma,[wi("div",ja,pe(i.help.sort_user),1),wi("div",Ra,pe(i.help.show_hide_ip),1),wi("div",qa,pe(i.help.toggle_linux_percentage),1),wi("div",Ba,pe(i.help.misc_quit),1)]),wi("div",Ua,[Fa,wi("div",za,pe(i.help.show_hide_tcp_connection),1),wi("div",$a,pe(i.help.toggle_cpu_individual_combined),1),wi("div",Ha,pe(i.help.misc_reset_history),1)]),wi("div",Va,[Ga,wi("div",Wa,pe(i.help.show_hide_alert),1),wi("div",Za,pe(i.help.toggle_gpu_individual_combined),1),wi("div",Ka,pe(i.help.misc_delete_warning_alerts),1)]),wi("div",Qa,[Xa,wi("div",Ja,pe(i.help.show_hide_network),1),wi("div",Ya,pe(i.help.toggle_short_full),1),wi("div",el,pe(i.help.misc_delete_warning_and_critical_alerts),1)]),wi("div",tl,[nl,wi("div",rl,pe(i.help.sort_cpu_times),1),il,wi("div",sl,pe(i.help.misc_edit_process_filter_pattern)+" - N/A in WebUI ",1)]),wi("div",ol,[al,wi("div",ll,pe(i.help.show_hide_irq),1),cl,ul]),wi("div",dl,[fl,wi("div",pl,pe(i.help.show_hide_raid_plugin),1),hl,gl]),wi("div",ml,[bl,wi("div",vl,pe(i.help.show_hide_sensors),1),yl,wl]),wi("div",xl,[_l,wi("div",kl,pe(i.help.show_hide_wifi_module),1),Sl,Cl]),wi("div",Tl,[Al,wi("div",El,pe(i.help.show_hide_processes),1),Ol,Il]),wi("div",Pl,[Nl,wi("div",Ll,pe(i.help.show_hide_left_sidebar),1),Dl,Ml]),wi("div",jl,[Rl,wi("div",ql,pe(i.help.show_hide_quick_look),1),Bl,Ul]),wi("div",Fl,[zl,wi("div",$l,pe(i.help.show_hide_cpu_mem_swap),1),Hl,Vl]),wi("div",Gl,[Wl,wi("div",Zl,pe(i.help.show_hide_all),1),Kl,Ql])])]),Xl,Jl])):Ti("v-if",!0)}]]),nc={class:"plugin"},rc={id:"alerts"},ic={key:0,class:"title"},sc={key:1,class:"title"},oc={id:"alert"},ac={class:"table"},lc={class:"table-cell text-left"};var cc=n(6486);const uc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.alert},alerts(){return(this.stats||[]).map((e=>{const t={};if(t.name=e[3],t.level=e[2],t.begin=1e3*e[0],t.end=1e3*e[1],t.ongoing=-1==e[1],t.min=e[6],t.mean=e[5],t.max=e[4],!t.ongoing){const e=t.end-t.begin,n=parseInt(e/1e3%60),r=parseInt(e/6e4%60),i=parseInt(e/36e5%24);t.duration=(0,cc.padStart)(i,2,"0")+":"+(0,cc.padStart)(r,2,"0")+":"+(0,cc.padStart)(n,2,"0")}return t}))},hasAlerts(){return this.countAlerts>0},countAlerts(){return this.alerts.length},hasOngoingAlerts(){return this.countOngoingAlerts>0},countOngoingAlerts(){return this.alerts.filter((({ongoing:e})=>e)).length}},watch:{countOngoingAlerts(){this.countOngoingAlerts?$o.badge(this.countOngoingAlerts):$o.reset()}},methods:{formatDate:e=>new Date(e).toISOString().slice(0,19).replace(/[^\d-:]/," ")}},dc=(0,ec.Z)(uc,[["render",function(e,t,n,r,i,s){return li(),pi("div",nc,[wi("section",rc,[s.hasAlerts?(li(),pi("span",ic," Warning or critical alerts (last "+pe(s.countAlerts)+" entries) ",1)):(li(),pi("span",sc,"No warning or critical alert detected"))]),wi("section",oc,[wi("div",ac,[(li(!0),pi(ni,null,pr(s.alerts,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",lc,[Si(pe(s.formatDate(t.begin))+" ("+pe(t.ongoing?"ongoing":t.duration)+") - ",1),On(wi("span",null,pe(t.level)+" on ",513),[[Ds,!t.ongoing]]),wi("span",{class:ce(t.level.toLowerCase())},pe(t.name),3),Si(" ("+pe(e.$filters.number(t.max,1))+") ",1)])])))),128))])])])}]]),fc={key:0,id:"cloud",class:"plugin"},pc={class:"title"};const hc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.cloud},provider(){return void 0!==this.stats.id?`${stats.platform}`:null},instance(){const{stats:e}=this;return void 0!==this.stats.id?`${e.type} instance ${e.name} (${e.region})`:null}}},gc=(0,ec.Z)(hc,[["render",function(e,t,n,r,i,s){return s.instance||s.provider?(li(),pi("section",fc,[wi("span",pc,pe(s.provider),1),Si(" "+pe(s.instance),1)])):Ti("v-if",!0)}]]),mc={class:"plugin",id:"connections"},bc=wi("div",{class:"table-row"},[wi("div",{class:"table-cell text-left title"},"TCP CONNECTIONS"),wi("div",{class:"table-cell"})],-1),vc={class:"table-row"},yc=wi("div",{class:"table-cell text-left"},"Listen",-1),wc=wi("div",{class:"table-cell"},null,-1),xc={class:"table-cell"},_c={class:"table-row"},kc=wi("div",{class:"table-cell text-left"},"Initiated",-1),Sc=wi("div",{class:"table-cell"},null,-1),Cc={class:"table-cell"},Tc={class:"table-row"},Ac=wi("div",{class:"table-cell text-left"},"Established",-1),Ec=wi("div",{class:"table-cell"},null,-1),Oc={class:"table-cell"},Ic={class:"table-row"},Pc=wi("div",{class:"table-cell text-left"},"Terminated",-1),Nc=wi("div",{class:"table-cell"},null,-1),Lc={class:"table-cell"},Dc={class:"table-row"},Mc=wi("div",{class:"table-cell text-left"},"Tracked",-1),jc=wi("div",{class:"table-cell"},null,-1);const Rc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.connections},view(){return this.data.views.connections},listen(){return this.stats.LISTEN},initiated(){return this.stats.initiated},established(){return this.stats.ESTABLISHED},terminated(){return this.stats.terminated},tracked(){return{count:this.stats.nf_conntrack_count,max:this.stats.nf_conntrack_max}}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},qc=(0,ec.Z)(Rc,[["render",function(e,t,n,r,i,s){return li(),pi("section",mc,[bc,wi("div",vc,[yc,wc,wi("div",xc,pe(s.listen),1)]),wi("div",_c,[kc,Sc,wi("div",Cc,pe(s.initiated),1)]),wi("div",Tc,[Ac,Ec,wi("div",Oc,pe(s.established),1)]),wi("div",Ic,[Pc,Nc,wi("div",Lc,pe(s.terminated),1)]),wi("div",Dc,[Mc,jc,wi("div",{class:ce(["table-cell",s.getDecoration("nf_conntrack_percent")])},pe(s.tracked.count)+"/"+pe(s.tracked.max),3)])])}]]),Bc={id:"cpu",class:"plugin"},Uc={class:"row"},Fc={class:"col-sm-24 col-md-12 col-lg-8"},zc={class:"table"},$c={class:"table-row"},Hc=wi("div",{class:"table-cell text-left title"},"CPU",-1),Vc={class:"table-row"},Gc=wi("div",{class:"table-cell text-left"},"user:",-1),Wc={class:"table-row"},Zc=wi("div",{class:"table-cell text-left"},"system:",-1),Kc={class:"table-row"},Qc=wi("div",{class:"table-cell text-left"},"iowait:",-1),Xc={class:"table-row"},Jc=wi("div",{class:"table-cell text-left"},"dpc:",-1),Yc={class:"hidden-xs hidden-sm col-md-12 col-lg-8"},eu={class:"table"},tu={class:"table-row"},nu=wi("div",{class:"table-cell text-left"},"idle:",-1),ru={class:"table-cell"},iu={class:"table-row"},su=wi("div",{class:"table-cell text-left"},"irq:",-1),ou={class:"table-cell"},au={class:"table-row"},lu=wi("div",{class:"table-cell text-left"},"inter:",-1),cu={class:"table-cell"},uu={class:"table-row"},du=wi("div",{class:"table-cell text-left"},"nice:",-1),fu={class:"table-cell"},pu={key:0,class:"table-row"},hu=wi("div",{class:"table-cell text-left"},"ctx_sw:",-1),gu={class:"table-row"},mu=wi("div",{class:"table-cell text-left"},"steal:",-1),bu={key:1,class:"table-row"},vu=wi("div",{class:"table-cell text-left"},"syscal:",-1),yu={class:"table-cell"},wu={class:"hidden-xs hidden-sm hidden-md col-lg-8"},xu={class:"table"},_u={key:0,class:"table-row"},ku=wi("div",{class:"table-cell text-left"},"ctx_sw:",-1),Su={key:1,class:"table-row"},Cu=wi("div",{class:"table-cell text-left"},"inter:",-1),Tu={class:"table-cell"},Au={key:2,class:"table-row"},Eu=wi("div",{class:"table-cell text-left"},"sw_int:",-1),Ou={class:"table-cell"};const Iu={props:{data:{type:Object}},computed:{stats(){return this.data.stats.cpu},view(){return this.data.views.cpu},isLinux(){return this.data.isLinux},isSunOS(){return this.data.isSunOS},isWindows(){return this.data.isWindows},total(){return this.stats.total},user(){return this.stats.user},system(){return this.stats.system},idle(){return this.stats.idle},nice(){return this.stats.nice},irq(){return this.stats.irq},iowait(){return this.stats.iowait},dpc(){return this.stats.dpc},steal(){return this.stats.steal},ctx_switches(){const{stats:e}=this;return e.ctx_switches?Math.floor(e.ctx_switches/e.time_since_update):null},interrupts(){const{stats:e}=this;return e.interrupts?Math.floor(e.interrupts/e.time_since_update):null},soft_interrupts(){const{stats:e}=this;return e.soft_interrupts?Math.floor(e.soft_interrupts/e.time_since_update):null},syscalls(){const{stats:e}=this;return e.syscalls?Math.floor(e.syscalls/e.time_since_update):null}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Pu=(0,ec.Z)(Iu,[["render",function(e,t,n,r,i,s){return li(),pi("section",Bc,[wi("div",Uc,[wi("div",Fc,[wi("div",zc,[wi("div",$c,[Hc,wi("div",{class:ce(["table-cell",s.getDecoration("total")])},pe(s.total)+"%",3)]),wi("div",Vc,[Gc,wi("div",{class:ce(["table-cell",s.getDecoration("user")])},pe(s.user)+"%",3)]),wi("div",Wc,[Zc,wi("div",{class:ce(["table-cell",s.getDecoration("system")])},pe(s.system)+"%",3)]),On(wi("div",Kc,[Qc,wi("div",{class:ce(["table-cell",s.getDecoration("iowait")])},pe(s.iowait)+"%",3)],512),[[Ds,null!=s.iowait]]),On(wi("div",Xc,[Jc,wi("div",{class:ce(["table-cell",s.getDecoration("dpc")])},pe(s.dpc)+"%",3)],512),[[Ds,null==s.iowait&&null!=s.dpc]])])]),wi("div",Yc,[wi("div",eu,[wi("div",tu,[nu,wi("div",ru,pe(s.idle)+"%",1)]),On(wi("div",iu,[su,wi("div",ou,pe(s.irq)+"%",1)],512),[[Ds,null!=s.irq]]),Ti(" If no irq, display interrupts "),On(wi("div",au,[lu,wi("div",cu,pe(s.interrupts),1)],512),[[Ds,null==s.irq]]),On(wi("div",uu,[du,wi("div",fu,pe(s.nice)+"%",1)],512),[[Ds,null!=s.nice]]),Ti(" If no nice, display ctx_switches "),null==s.nice&&s.ctx_switches?(li(),pi("div",pu,[hu,wi("div",{class:ce(["table-cell",s.getDecoration("ctx_switches")])},pe(s.ctx_switches),3)])):Ti("v-if",!0),On(wi("div",gu,[mu,wi("div",{class:ce(["table-cell",s.getDecoration("steal")])},pe(s.steal)+"%",3)],512),[[Ds,null!=s.steal]]),!s.isLinux&&s.syscalls?(li(),pi("div",bu,[vu,wi("div",yu,pe(s.syscalls),1)])):Ti("v-if",!0)])]),wi("div",wu,[wi("div",xu,[Ti(" If not already display instead of nice, then display ctx_switches "),null!=s.nice&&s.ctx_switches?(li(),pi("div",_u,[ku,wi("div",{class:ce(["table-cell",s.getDecoration("ctx_switches")])},pe(s.ctx_switches),3)])):Ti("v-if",!0),Ti(" If not already display instead of irq, then display interrupts "),null!=s.irq&&s.interrupts?(li(),pi("div",Su,[Cu,wi("div",Tu,pe(s.interrupts),1)])):Ti("v-if",!0),s.isWindows||s.isSunOS||!s.soft_interrupts?Ti("v-if",!0):(li(),pi("div",Au,[Eu,wi("div",Ou,pe(s.soft_interrupts),1)]))])])])])}]]),Nu={class:"plugin",id:"diskio"},Lu={key:0,class:"table-row"},Du=wi("div",{class:"table-cell text-left title"},"DISK I/O",-1),Mu={class:"table-cell"},ju={class:"table-cell"},Ru={class:"table-cell"},qu={class:"table-cell"},Bu={class:"table-cell text-left"};var Uu=n(1036),Fu=n.n(Uu);function zu(e,t){return $u(e=8*Math.round(e),t)+"b"}function $u(e,t){if(t=t||!1,isNaN(parseFloat(e))||!isFinite(e)||0==e)return e;const n=["Y","Z","E","P","T","G","M","K"],r={Y:12089258196146292e8,Z:11805916207174113e5,E:0x1000000000000000,P:0x4000000000000,T:1099511627776,G:1073741824,M:1048576,K:1024};for(var i=0;i1){var a=0;return o<10?a=2:o<100&&(a=1),t?a="MK"==s?0:(0,cc.min)([1,a]):"K"==s&&(a=0),parseFloat(o).toFixed(a)+s}}return e.toFixed(0)}function Hu(e){return void 0===e||""===e?"?":e}function Vu(e,t,n){return t=t||0,n=n||" ",String(e).padStart(t,n)}function Gu(e,t){return"function"!=typeof e.slice&&(e=String(e)),e.slice(0,t)}function Wu(e,t){return t=t||8,e.length>t?"_"+e.substring(e.length-t+1):e}function Zu(e){if(void 0===e)return e;var t=function(e){var t=document.createElement("div");return t.innerText=e,t.innerHTML}(e),n=t.replace(/\n/g,"
");return Fu()(n)}function Ku(e,t){return new Intl.NumberFormat(void 0,"number"==typeof t?{maximumFractionDigits:t}:t).format(e)}function Qu(e){for(var t=0,n=0;n({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.diskio},disks(){const e=this.stats.map((e=>{const t=e.time_since_update;return{name:e.disk_name,bitrate:{txps:$u(e.read_bytes/t),rxps:$u(e.write_bytes/t)},count:{txps:$u(e.read_count/t),rxps:$u(e.write_count/t)},alias:void 0!==e.alias?e.alias:null}}));return(0,cc.orderBy)(e,["name"])}}},Yu=(0,ec.Z)(Ju,[["render",function(e,t,n,r,i,s){return li(),pi("section",Nu,[s.disks.length>0?(li(),pi("div",Lu,[Du,On(wi("div",Mu,"R/s",512),[[Ds,!s.args.diskio_iops]]),On(wi("div",ju,"W/s",512),[[Ds,!s.args.diskio_iops]]),On(wi("div",Ru,"IOR/s",512),[[Ds,s.args.diskio_iops]]),On(wi("div",qu,"IOW/s",512),[[Ds,s.args.diskio_iops]])])):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.disks,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Bu,pe(e.$filters.minSize(t.alias?t.alias:t.name,32)),1),On(wi("div",{class:"table-cell"},pe(t.bitrate.txps),513),[[Ds,!s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.bitrate.rxps),513),[[Ds,!s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.count.txps),513),[[Ds,s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.count.rxps),513),[[Ds,s.args.diskio_iops]])])))),128))])}]]),ed={key:0,id:"containers-plugin",class:"plugin"},td=wi("span",{class:"title"},"CONTAINERS",-1),nd={class:"table"},rd={class:"table-row"},id=wi("div",{class:"table-cell text-left"},"Engine",-1),sd=wi("div",{class:"table-cell text-left"},"Pod",-1),od=wi("div",{class:"table-cell"},"Status",-1),ad=wi("div",{class:"table-cell"},"Uptime",-1),ld=Ci('
/MAX
IOR/s
IOW/s
RX/s
TX/s
Command
',6),cd={class:"table-cell text-left"},ud={class:"table-cell text-left"},dd={class:"table-cell text-left"},fd={class:"table-cell"},pd={class:"table-cell"},hd={class:"table-cell"},gd={class:"table-cell"},md={class:"table-cell"},bd={class:"table-cell"},vd={class:"table-cell"},yd={class:"table-cell"},wd={class:"table-cell text-left"};const xd={props:{data:{type:Object}},data:()=>({store:qo,sorter:void 0}),computed:{args(){return this.store.args||{}},sortProcessesKey(){return this.args.sort_processes_key},stats(){return this.data.stats.containers},containers(){const{sorter:e}=this,t=(this.stats&&this.stats.containers||[]).map((e=>({id:e.Id,name:e.name,status:e.Status,uptime:e.Uptime,cpu_percent:e.cpu.total,memory_usage:null!=e.memory.usage?e.memory.usage:"?",limit:null!=e.memory.limit?e.memory.limit:"?",ior:null!=e.io.ior?e.io.ior:"?",iow:null!=e.io.iow?e.io.iow:"?",io_time_since_update:e.io.time_since_update,rx:null!=e.network.rx?e.network.rx:"?",tx:null!=e.network.tx?e.network.tx:"?",net_time_since_update:e.network.time_since_update,command:e.Command.join(" "),image:e.Image,engine:e.engine,pod_id:e.pod_id})));return(0,cc.orderBy)(t,[e.column].reduce(((e,t)=>("memory_percent"===t&&(t=["memory_usage"]),e.concat(t))),[]),[e.isReverseColumn(e.column)?"desc":"asc"])}},watch:{sortProcessesKey:{immediate:!0,handler(e){e&&!["cpu_percent","memory_percent","name"].includes(e)||(this.sorter={column:this.args.sort_processes_key||"cpu_percent",auto:!this.args.sort_processes_key,isReverseColumn:function(e){return!["name"].includes(e)},getColumnLabel:function(e){return{io_counters:"disk IO",cpu_percent:"CPU consumption",memory_usage:"memory consumption",cpu_times:"uptime",name:"container name",None:"None"}[e]||e}})}}}},_d=(0,ec.Z)(xd,[["render",function(e,t,n,r,i,s){return s.containers.length?(li(),pi("section",ed,[td,Si(" "+pe(s.containers.length)+" sorted by "+pe(i.sorter.getColumnLabel(i.sorter.column))+" ",1),wi("div",nd,[wi("div",rd,[id,sd,wi("div",{class:ce(["table-cell text-left",["sortable","name"===i.sorter.column&&"sort"]]),onClick:t[0]||(t[0]=e=>s.args.sort_processes_key="name")}," Name ",2),od,ad,wi("div",{class:ce(["table-cell",["sortable","cpu_percent"===i.sorter.column&&"sort"]]),onClick:t[1]||(t[1]=e=>s.args.sort_processes_key="cpu_percent")}," CPU% ",2),wi("div",{class:ce(["table-cell",["sortable","memory_percent"===i.sorter.column&&"sort"]]),onClick:t[2]||(t[2]=e=>s.args.sort_processes_key="memory_percent")}," MEM ",2),ld]),(li(!0),pi(ni,null,pr(s.containers,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",cd,pe(t.engine),1),wi("div",ud,pe(t.pod_id||"-"),1),wi("div",dd,pe(t.name),1),wi("div",{class:ce(["table-cell","Paused"==t.status?"careful":"ok"])},pe(t.status),3),wi("div",fd,pe(t.uptime),1),wi("div",pd,pe(e.$filters.number(t.cpu_percent,1)),1),wi("div",hd,pe(e.$filters.bytes(t.memory_usage)),1),wi("div",gd,pe(e.$filters.bytes(t.limit)),1),wi("div",md,pe(e.$filters.bits(t.ior/t.io_time_since_update)),1),wi("div",bd,pe(e.$filters.bits(t.iow/t.io_time_since_update)),1),wi("div",vd,pe(e.$filters.bits(t.rx/t.net_time_since_update)),1),wi("div",yd,pe(e.$filters.bits(t.tx/t.net_time_since_update)),1),wi("div",wd,pe(t.command),1)])))),128))])])):Ti("v-if",!0)}]]),kd={class:"plugin",id:"folders"},Sd={key:0,class:"table-row"},Cd=[wi("div",{class:"table-cell text-left title"},"FOLDERS",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"Size",-1)],Td={class:"table-cell text-left"},Ad=wi("div",{class:"table-cell"},null,-1);const Ed={props:{data:{type:Object}},computed:{stats(){return this.data.stats.folders},folders(){return this.stats.map((e=>({path:e.path,size:e.size,careful:e.careful,warning:e.warning,critical:e.critical})))}},methods:{getDecoration(e){if(Number.isInteger(e.size))return null!==e.critical&&e.size>1e6*e.critical?"critical":null!==e.warning&&e.size>1e6*e.warning?"warning":null!==e.careful&&e.size>1e6*e.careful?"careful":"ok"}}},Od=(0,ec.Z)(Ed,[["render",function(e,t,n,r,i,s){return li(),pi("section",kd,[s.folders.length>0?(li(),pi("div",Sd,Cd)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.folders,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Td,pe(t.path),1),Ad,wi("div",{class:ce(["table-cell",s.getDecoration(t)])},pe(e.$filters.bytes(t.size)),3)])))),128))])}]]),Id={class:"plugin",id:"fs"},Pd={class:"table-row"},Nd=wi("div",{class:"table-cell text-left title"},"FILE SYS",-1),Ld={class:"table-cell"},Dd=wi("div",{class:"table-cell"},"Total",-1),Md={class:"table-cell text-left"},jd={key:0,class:"visible-lg-inline"},Rd={class:"table-cell"};const qd={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.fs},view(){return this.data.views.fs},fileSystems(){const e=this.stats.map((e=>{let t=e.mnt_point;return t.length>22&&(t="_"+e.mnt_point.slice(-21)),{name:e.device_name,mountPoint:e.mnt_point,shortMountPoint:t,percent:e.percent,size:e.size,used:e.used,free:e.free}}));return(0,cc.orderBy)(e,["mnt_point"])}},methods:{getDecoration(e,t){if(null!=this.view[e][t])return this.view[e][t].decoration.toLowerCase()}}},Bd=(0,ec.Z)(qd,[["render",function(e,t,n,r,i,s){return li(),pi("section",Id,[wi("div",Pd,[Nd,wi("div",Ld,[On(wi("span",null,"Used",512),[[Ds,!s.args.fs_free_space]]),On(wi("span",null,"Free",512),[[Ds,s.args.fs_free_space]])]),Dd]),(li(!0),pi(ni,null,pr(s.fileSystems,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Md,[Si(pe(t.shortMountPoint)+" ",1),t.shortMountPoint.length<=12?(li(),pi("span",jd," ("+pe(t.name)+") ",1)):Ti("v-if",!0)]),wi("div",{class:ce(["table-cell",s.getDecoration(t.mountPoint,"used")])},[On(wi("span",null,pe(e.$filters.bytes(t.used)),513),[[Ds,!s.args.fs_free_space]]),On(wi("span",null,pe(e.$filters.bytes(t.free)),513),[[Ds,s.args.fs_free_space]])],2),wi("div",Rd,pe(e.$filters.bytes(t.size)),1)])))),128))])}]]),Ud={id:"gpu",class:"plugin"},Fd={class:"gpu-name title"},zd={class:"table"},$d={key:0,class:"table-row"},Hd=wi("div",{class:"table-cell text-left"},"proc:",-1),Vd={key:1,class:"table-cell"},Gd={key:1,class:"table-row"},Wd=wi("div",{class:"table-cell text-left"},"mem:",-1),Zd={key:1,class:"table-cell"},Kd={key:2,class:"table-row"},Qd=wi("div",{class:"table-cell text-left"},"temperature::",-1),Xd={key:1,class:"table-cell"},Jd={class:"table-cell text-left"},Yd={key:1},ef={key:3},tf={key:5};const nf={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.gpu},view(){return this.data.views.gpu},gpus(){return this.stats},name(){let e="GPU";const{stats:t}=this;return 1===t.length?e=t[0].name:t.length&&(e=`${t.length} GPU ${t[0].name}`),e},mean(){const e={proc:null,mem:null,temperature:null},{stats:t}=this;if(!t.length)return e;for(let n of t)e.proc+=n.proc,e.mem+=n.mem,e.temperature+=n.temperature;return e.proc=e.proc/t.length,e.mem=e.mem/t.length,e.temperature=e.temperature/t.length,e}},methods:{getDecoration(e,t){if(void 0!==this.view[e][t])return this.view[e][t].decoration.toLowerCase()},getMeanDecoration(e){return this.getDecoration(0,e)}}},rf=(0,ec.Z)(nf,[["render",function(e,t,n,r,i,s){return li(),pi("section",Ud,[wi("div",Fd,pe(s.name),1),wi("div",zd,[s.args.meangpu||1===s.gpus.length?(li(),pi("div",$d,[Hd,null!=s.mean.proc?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("proc")])},pe(e.$filters.number(s.mean.proc,0))+"% ",3)):Ti("v-if",!0),null==s.mean.proc?(li(),pi("div",Vd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),s.args.meangpu||1===s.gpus.length?(li(),pi("div",Gd,[Wd,null!=s.mean.mem?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("mem")])},pe(e.$filters.number(s.mean.mem,0))+"% ",3)):Ti("v-if",!0),null==s.mean.mem?(li(),pi("div",Zd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),s.args.meangpu||1===s.gpus.length?(li(),pi("div",Kd,[Qd,null!=s.mean.temperature?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("temperature")])},pe(e.$filters.number(s.mean.temperature,0))+"° ",3)):Ti("v-if",!0),null==s.mean.temperature?(li(),pi("div",Xd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),!s.args.meangpu&&s.gpus.length>1?(li(!0),pi(ni,{key:3},pr(s.gpus,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Jd,[Si(pe(t.gpu_id)+": ",1),null!=t.proc?(li(),pi("span",{key:0,class:ce(s.getDecoration(t.gpu_id,"proc"))},pe(e.$filters.number(t.proc,0))+"% ",3)):Ti("v-if",!0),null==t.proc?(li(),pi("span",Yd,"N/A")):Ti("v-if",!0),Si(" mem: "),null!=t.mem?(li(),pi("span",{key:2,class:ce(s.getDecoration(t.gpu_id,"mem"))},pe(e.$filters.number(t.mem,0))+"% ",3)):Ti("v-if",!0),null==t.mem?(li(),pi("span",ef,"N/A")):Ti("v-if",!0),Si(" temp: "),null!=t.temperature?(li(),pi("span",{key:4,class:ce(s.getDecoration(t.gpu_id,"temperature"))},pe(e.$filters.number(t.temperature,0))+"C ",3)):Ti("v-if",!0),null==t.temperature?(li(),pi("span",tf,"N/A")):Ti("v-if",!0)])])))),128)):Ti("v-if",!0)])])}]]),sf={key:0,class:"plugin",id:"ip"},of={key:0,class:"title"},af={key:1},lf={key:2,class:"title"},cf={key:3},uf={key:4};const df={props:{data:{type:Object}},computed:{ipStats(){return this.data.stats.ip},address(){return this.ipStats.address},gateway(){return this.ipStats.gateway},maskCdir(){return this.ipStats.mask_cidr},publicAddress(){return this.ipStats.public_address},publicInfo(){return this.ipStats.public_info_human}}},ff=(0,ec.Z)(df,[["render",function(e,t,n,r,i,s){return null!=s.address?(li(),pi("section",sf,[null!=s.address?(li(),pi("span",of,"IP")):Ti("v-if",!0),null!=s.address?(li(),pi("span",af,pe(s.address)+"/"+pe(s.maskCdir),1)):Ti("v-if",!0),null!=s.publicAddress?(li(),pi("span",lf,"Pub")):Ti("v-if",!0),null!=s.publicAddress?(li(),pi("span",cf,pe(s.publicAddress),1)):Ti("v-if",!0),null!=s.publicInfo?(li(),pi("span",uf,pe(s.publicInfo),1)):Ti("v-if",!0)])):Ti("v-if",!0)}]]),pf={class:"plugin",id:"irq"},hf={key:0,class:"table-row"},gf=[wi("div",{class:"table-cell text-left title"},"IRQ",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"Rate/s",-1)],mf={class:"table-cell text-left"},bf=wi("div",{class:"table-cell"},null,-1),vf={class:"table-cell"};const yf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.irq},irqs(){return this.stats.map((e=>({irq_line:e.irq_line,irq_rate:e.irq_rate})))}}},wf=(0,ec.Z)(yf,[["render",function(e,t,n,r,i,s){return li(),pi("section",pf,[s.irqs.length>0?(li(),pi("div",hf,gf)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.irqs,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",mf,pe(e.irq_line),1),bf,wi("div",vf,[wi("span",null,pe(e.irq_rate),1)])])))),128))])}]]),xf={key:0,id:"load",class:"plugin"},_f={class:"table"},kf={class:"table-row"},Sf=wi("div",{class:"table-cell text-left title"},"LOAD",-1),Cf={class:"table-cell"},Tf={class:"table-row"},Af=wi("div",{class:"table-cell text-left"},"1 min:",-1),Ef={class:"table-cell"},Of={class:"table-row"},If=wi("div",{class:"table-cell text-left"},"5 min:",-1),Pf={class:"table-row"},Nf=wi("div",{class:"table-cell text-left"},"15 min:",-1);const Lf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.load},view(){return this.data.views.load},cpucore(){return this.stats.cpucore},min1(){return this.stats.min1},min5(){return this.stats.min5},min15(){return this.stats.min15}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Df=(0,ec.Z)(Lf,[["render",function(e,t,n,r,i,s){return null!=s.cpucore?(li(),pi("section",xf,[wi("div",_f,[wi("div",kf,[Sf,wi("div",Cf,pe(s.cpucore)+"-core",1)]),wi("div",Tf,[Af,wi("div",Ef,pe(e.$filters.number(s.min1,2)),1)]),wi("div",Of,[If,wi("div",{class:ce(["table-cell",s.getDecoration("min5")])},pe(e.$filters.number(s.min5,2)),3)]),wi("div",Pf,[Nf,wi("div",{class:ce(["table-cell",s.getDecoration("min15")])},pe(e.$filters.number(s.min15,2)),3)])])])):Ti("v-if",!0)}]]),Mf={id:"mem",class:"plugin"},jf={class:"table"},Rf={class:"table-row"},qf=wi("div",{class:"table-cell text-left title"},"MEM",-1),Bf={class:"table-row"},Uf=wi("div",{class:"table-cell text-left"},"total:",-1),Ff={class:"table-cell"},zf={class:"table-row"},$f=wi("div",{class:"table-cell text-left"},"used:",-1),Hf={class:"table-row"},Vf=wi("div",{class:"table-cell text-left"},"free:",-1),Gf={class:"table-cell"};const Wf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.mem},view(){return this.data.views.mem},percent(){return this.stats.percent},total(){return this.stats.total},used(){return this.stats.used},free(){return this.stats.free}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Zf=(0,ec.Z)(Wf,[["render",function(e,t,n,r,i,s){return li(),pi("section",Mf,[wi("div",jf,[wi("div",Rf,[qf,wi("div",{class:ce(["table-cell",s.getDecoration("percent")])},pe(s.percent)+"%",3)]),wi("div",Bf,[Uf,wi("div",Ff,pe(e.$filters.bytes(s.total)),1)]),wi("div",zf,[$f,wi("div",{class:ce(["table-cell",s.getDecoration("used")])},pe(e.$filters.bytes(s.used,2)),3)]),wi("div",Hf,[Vf,wi("div",Gf,pe(e.$filters.bytes(s.free)),1)])])])}]]),Kf={id:"mem-more",class:"plugin"},Qf={class:"table"},Xf={class:"table-row"},Jf=wi("div",{class:"table-cell text-left"},"active:",-1),Yf={class:"table-cell"},ep={class:"table-row"},tp=wi("div",{class:"table-cell text-left"},"inactive:",-1),np={class:"table-cell"},rp={class:"table-row"},ip=wi("div",{class:"table-cell text-left"},"buffers:",-1),sp={class:"table-cell"},op={class:"table-row"},ap=wi("div",{class:"table-cell text-left"},"cached:",-1),lp={class:"table-cell"};const cp={props:{data:{type:Object}},computed:{stats(){return this.data.stats.mem},active(){return this.stats.active},inactive(){return this.stats.inactive},buffers(){return this.stats.buffers},cached(){return this.stats.cached}}},up=(0,ec.Z)(cp,[["render",function(e,t,n,r,i,s){return li(),pi("section",Kf,[wi("div",Qf,[On(wi("div",Xf,[Jf,wi("div",Yf,pe(e.$filters.bytes(s.active)),1)],512),[[Ds,null!=s.active]]),On(wi("div",ep,[tp,wi("div",np,pe(e.$filters.bytes(s.inactive)),1)],512),[[Ds,null!=s.inactive]]),On(wi("div",rp,[ip,wi("div",sp,pe(e.$filters.bytes(s.buffers)),1)],512),[[Ds,null!=s.buffers]]),On(wi("div",op,[ap,wi("div",lp,pe(e.$filters.bytes(s.cached)),1)],512),[[Ds,null!=s.cached]])])])}]]),dp={id:"memswap",class:"plugin"},fp={class:"table"},pp={class:"table-row"},hp=wi("div",{class:"table-cell text-left title"},"SWAP",-1),gp={class:"table-row"},mp=wi("div",{class:"table-cell text-left"},"total:",-1),bp={class:"table-cell"},vp={class:"table-row"},yp=wi("div",{class:"table-cell text-left"},"used:",-1),wp={class:"table-row"},xp=wi("div",{class:"table-cell text-left"},"free:",-1),_p={class:"table-cell"};const kp={props:{data:{type:Object}},computed:{stats(){return this.data.stats.memswap},view(){return this.data.views.memswap},percent(){return this.stats.percent},total(){return this.stats.total},used(){return this.stats.used},free(){return this.stats.free}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Sp=(0,ec.Z)(kp,[["render",function(e,t,n,r,i,s){return li(),pi("section",dp,[wi("div",fp,[wi("div",pp,[hp,wi("div",{class:ce(["table-cell",s.getDecoration("percent")])},pe(s.percent)+"%",3)]),wi("div",gp,[mp,wi("div",bp,pe(e.$filters.bytes(s.total)),1)]),wi("div",vp,[yp,wi("div",{class:ce(["table-cell",s.getDecoration("used")])},pe(e.$filters.bytes(s.used)),3)]),wi("div",wp,[xp,wi("div",_p,pe(e.$filters.bytes(s.free)),1)])])])}]]),Cp={class:"plugin",id:"network"},Tp={class:"table-row"},Ap=wi("div",{class:"table-cell text-left title"},"NETWORK",-1),Ep={class:"table-cell"},Op={class:"table-cell"},Ip={class:"table-cell"},Pp={class:"table-cell"},Np={class:"table-cell"},Lp={class:"table-cell"},Dp={class:"table-cell"},Mp={class:"table-cell"},jp={class:"table-cell text-left"},Rp={class:"visible-lg-inline"},qp={class:"hidden-lg"},Bp={class:"table-cell"},Up={class:"table-cell"};const Fp={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.network},networks(){const e=this.stats.map((e=>{const t=void 0!==e.alias?e.alias:null;return{interfaceName:e.interface_name,ifname:t||e.interface_name,rx:e.rx,tx:e.tx,cx:e.cx,time_since_update:e.time_since_update,cumulativeRx:e.cumulative_rx,cumulativeTx:e.cumulative_tx,cumulativeCx:e.cumulative_cx}}));return(0,cc.orderBy)(e,["interfaceName"])}}},zp=(0,ec.Z)(Fp,[["render",function(e,t,n,r,i,s){return li(),pi("section",Cp,[wi("div",Tp,[Ap,On(wi("div",Ep,"Rx/s",512),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Op,"Tx/s",512),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Ip,null,512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Pp,"Rx+Tx/s",512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Np,"Rx",512),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Lp,"Tx",512),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Dp,null,512),[[Ds,s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Mp,"Rx+Tx",512),[[Ds,s.args.network_cumul&&s.args.network_sum]])]),(li(!0),pi(ni,null,pr(s.networks,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",jp,[wi("span",Rp,pe(t.ifname),1),wi("span",qp,pe(e.$filters.minSize(t.ifname)),1)]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.rx/t.time_since_update):e.$filters.bits(t.rx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.tx/t.time_since_update):e.$filters.bits(t.tx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Bp,null,512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cx/t.time_since_update):e.$filters.bits(t.cx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeRx):e.$filters.bits(t.cumulativeRx)),513),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeTx):e.$filters.bits(t.cumulativeTx)),513),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Up,null,512),[[Ds,s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeCx):e.$filters.bits(t.cumulativeCx)),513),[[Ds,s.args.network_cumul&&s.args.network_sum]])])))),128))])}]]),$p={id:"now",class:"plugin"},Hp={class:"table-row"},Vp={class:"table-cell text-left"};const Gp={props:{data:{type:Object}},computed:{value(){return this.data.stats.now}}},Wp=(0,ec.Z)(Gp,[["render",function(e,t,n,r,i,s){return li(),pi("section",$p,[wi("div",Hp,[wi("div",Vp,pe(s.value),1)])])}]]),Zp={id:"percpu",class:"plugin"},Kp={class:"table-row"},Qp={class:"table-cell text-left title"},Xp={key:0},Jp={class:"table-row"},Yp=wi("div",{class:"table-cell text-left"},"user:",-1),eh={class:"table-row"},th=wi("div",{class:"table-cell text-left"},"system:",-1),nh={class:"table-row"},rh=wi("div",{class:"table-cell text-left"},"idle:",-1),ih={key:0,class:"table-row"},sh=wi("div",{class:"table-cell text-left"},"iowait:",-1),oh={key:1,class:"table-row"},ah=wi("div",{class:"table-cell text-left"},"steal:",-1);const lh={props:{data:{type:Object}},computed:{percpuStats(){return this.data.stats.percpu},cpusChunks(){const e=this.percpuStats.map((e=>({number:e.cpu_number,total:e.total,user:e.user,system:e.system,idle:e.idle,iowait:e.iowait,steal:e.steal})));return(0,cc.chunk)(e,4)}},methods:{getUserAlert:e=>Fo.getAlert("percpu","percpu_user_",e.user),getSystemAlert:e=>Fo.getAlert("percpu","percpu_system_",e.system)}},ch=(0,ec.Z)(lh,[["render",function(e,t,n,r,i,s){return li(),pi("section",Zp,[(li(!0),pi(ni,null,pr(s.cpusChunks,((e,t)=>(li(),pi("div",{class:"table",key:t},[wi("div",Kp,[wi("div",Qp,[0===t?(li(),pi("span",Xp,"PER CPU")):Ti("v-if",!0)]),(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:"table-cell",key:t},pe(e.total)+"% ",1)))),128))]),wi("div",Jp,[Yp,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getUserAlert(e)]),key:t},pe(e.user)+"% ",3)))),128))]),wi("div",eh,[th,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.system)+"% ",3)))),128))]),wi("div",nh,[rh,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:"table-cell",key:t},pe(e.idle)+"% ",1)))),128))]),e[0].iowait?(li(),pi("div",ih,[sh,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.iowait)+"% ",3)))),128))])):Ti("v-if",!0),e[0].steal?(li(),pi("div",oh,[ah,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.steal)+"% ",3)))),128))])):Ti("v-if",!0)])))),128))])}]]),uh={class:"plugin",id:"ports"},dh={class:"table-cell text-left"},fh=wi("div",{class:"table-cell"},null,-1),ph={key:0},hh={key:1},gh={key:2},mh={key:3},bh={key:0},vh={key:1},yh={key:2};const wh={props:{data:{type:Object}},computed:{stats(){return this.data.stats.ports},ports(){return this.stats}},methods:{getPortDecoration:e=>null===e.status?"careful":!1===e.status?"critical":null!==e.rtt_warning&&e.status>e.rtt_warning?"warning":"ok",getWebDecoration:e=>null===e.status?"careful":-1===[200,301,302].indexOf(e.status)?"critical":null!==e.rtt_warning&&e.elapsed>e.rtt_warning?"warning":"ok"}},xh=(0,ec.Z)(wh,[["render",function(e,t,n,r,i,s){return li(),pi("section",uh,[(li(!0),pi(ni,null,pr(s.ports,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",dh,[Ti(" prettier-ignore "),Si(" "+pe(e.$filters.minSize(t.description?t.description:t.host+" "+t.port,20)),1)]),fh,t.host?(li(),pi("div",{key:0,class:ce([s.getPortDecoration(t),"table-cell"])},["null"==t.status?(li(),pi("span",ph,"Scanning")):"false"==t.status?(li(),pi("span",hh,"Timeout")):"true"==t.status?(li(),pi("span",gh,"Open")):(li(),pi("span",mh,pe(e.$filters.number(1e3*t.status,0))+"ms",1))],2)):Ti("v-if",!0),t.url?(li(),pi("div",{key:1,class:ce([s.getWebDecoration(t),"table-cell"])},["null"==t.status?(li(),pi("span",bh,"Scanning")):"Error"==t.status?(li(),pi("span",vh,"Error")):(li(),pi("span",yh,"Code "+pe(t.status),1))],2)):Ti("v-if",!0)])))),128))])}]]),_h={key:0},kh={key:1},Sh={key:0,class:"row"},Ch={class:"col-lg-18"};const Th={id:"amps",class:"plugin"},Ah={class:"table"},Eh={key:0,class:"table-cell text-left"},Oh=["innerHTML"];const Ih={props:{data:{type:Object}},computed:{stats(){return this.data.stats.amps},processes(){return this.stats.filter((e=>null!==e.result))}},methods:{getNameDecoration(e){const t=e.count,n=e.countmin,r=e.countmax;let i="ok";return i=t>0?(null===n||t>=n)&&(null===r||t<=r)?"ok":"careful":null===n?"ok":"critical",i}}},Ph=(0,ec.Z)(Ih,[["render",function(e,t,n,r,i,s){return li(),pi("section",Th,[wi("div",Ah,[(li(!0),pi(ni,null,pr(s.processes,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",{class:ce(["table-cell text-left",s.getNameDecoration(t)])},pe(t.name),3),t.regex?(li(),pi("div",Eh,pe(t.count),1)):Ti("v-if",!0),wi("div",{class:"table-cell text-left process-result",innerHTML:e.$filters.nl2br(t.result)},null,8,Oh)])))),128))])])}]]),Nh={id:"processcount",class:"plugin"},Lh=wi("span",{class:"title"},"TASKS",-1),Dh={class:"title"};const Mh={props:{data:{type:Object},sorter:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.processcount},total(){return this.stats.total||0},running(){return this.stats.running||0},sleeping(){return this.stats.sleeping||0},stopped(){return this.stats.stopped||0},thread(){return this.stats.thread||0}}},jh=(0,ec.Z)(Mh,[["render",function(e,t,n,r,i,s){return li(),pi("section",Nh,[Lh,wi("span",null,pe(s.total)+" ("+pe(s.thread)+" thr),",1),wi("span",null,pe(s.running)+" run,",1),wi("span",null,pe(s.sleeping)+" slp,",1),wi("span",null,pe(s.stopped)+" oth",1),wi("span",null,pe(s.args.programs?"Programs":"Threads"),1),wi("span",Dh,pe(n.sorter.auto?"sorted automatically":"sorted"),1),wi("span",null,"by "+pe(n.sorter.getColumnLabel(n.sorter.column)),1)])}]]),Rh={id:"processlist-plugin",class:"plugin"},qh={class:"table"},Bh={class:"table-row"},Uh=wi("div",{class:"table-cell hidden-xs hidden-sm"},"VIRT",-1),Fh=wi("div",{class:"table-cell hidden-xs hidden-sm"},"RES",-1),zh=wi("div",{class:"table-cell"},"PID",-1),$h=wi("div",{class:"table-cell"},"NI",-1),Hh=wi("div",{class:"table-cell"},"S",-1),Vh={class:"table-cell hidden-xs hidden-sm"},Gh={class:"table-cell hidden-xs hidden-sm"},Wh={class:"table-cell"},Zh={class:"table-cell text-left"},Kh={key:0,class:"table-cell hidden-xs hidden-sm"},Qh={key:1,class:"table-cell hidden-xs hidden-sm"},Xh={class:"table-cell text-left hidden-xs hidden-sm"};const Jh={props:{data:{type:Object},sorter:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},config(){return this.store.config||{}},stats(){return this.data.stats.processlist},processes(){const{sorter:e}=this,t=this.data.stats.isWindows,n=(this.stats||[]).map((e=>(e.memvirt="?",e.memres="?",e.memory_info&&(e.memvirt=e.memory_info[1],e.memres=e.memory_info[0]),e.timeplus="?",e.timemillis="?",e.cpu_times&&(e.timeplus=Xu(e.cpu_times),e.timemillis=Qu(e.cpu_times)),null===e.num_threads&&(e.num_threads=-1),null===e.cpu_percent&&(e.cpu_percent=-1),null===e.memory_percent&&(e.memory_percent=-1),e.io_read=null,e.io_write=null,e.io_counters&&(e.io_read=(e.io_counters[0]-e.io_counters[2])/e.time_since_update,e.io_write=(e.io_counters[1]-e.io_counters[3])/e.time_since_update),e.isNice=void 0!==e.nice&&(t&&32!=e.nice||!t&&0!=e.nice),Array.isArray(e.cmdline)&&(e.cmdline=e.cmdline.join(" ").replace(/\n/g," ")),null===e.cmdline&&(e.cmdline=e.name),t&&null!==e.username&&(e.username=(0,cc.last)(e.username.split("\\"))),e)));return(0,cc.orderBy)(n,[e.column].reduce(((e,t)=>("io_counters"===t&&(t=["io_read","io_write"]),e.concat(t))),[]),[e.isReverseColumn(e.column)?"desc":"asc"]).slice(0,this.limit)},ioReadWritePresent(){return(this.stats||[]).some((({io_counters:e})=>e))},limit(){return void 0!==this.config.outputs?this.config.outputs.max_processes_display:void 0}},methods:{getCpuPercentAlert:e=>Fo.getAlert("processlist","processlist_cpu_",e.cpu_percent),getMemoryPercentAlert:e=>Fo.getAlert("processlist","processlist_mem_",e.cpu_percent)}},Yh={components:{GlancesPluginAmps:Ph,GlancesPluginProcesscount:jh,GlancesPluginProcesslist:(0,ec.Z)(Jh,[["render",function(e,t,n,r,i,s){return li(),pi(ni,null,[Ti(" prettier-ignore "),wi("section",Rh,[wi("div",qh,[wi("div",Bh,[wi("div",{class:ce(["table-cell",["sortable","cpu_percent"===n.sorter.column&&"sort"]]),onClick:t[0]||(t[0]=t=>e.$emit("update:sorter","cpu_percent"))}," CPU% ",2),wi("div",{class:ce(["table-cell",["sortable","memory_percent"===n.sorter.column&&"sort"]]),onClick:t[1]||(t[1]=t=>e.$emit("update:sorter","memory_percent"))}," MEM% ",2),Uh,Fh,zh,wi("div",{class:ce(["table-cell text-left",["sortable","username"===n.sorter.column&&"sort"]]),onClick:t[2]||(t[2]=t=>e.$emit("update:sorter","username"))}," USER ",2),wi("div",{class:ce(["table-cell hidden-xs hidden-sm",["sortable","timemillis"===n.sorter.column&&"sort"]]),onClick:t[3]||(t[3]=t=>e.$emit("update:sorter","timemillis"))}," TIME+ ",2),wi("div",{class:ce(["table-cell text-left hidden-xs hidden-sm",["sortable","num_threads"===n.sorter.column&&"sort"]]),onClick:t[4]||(t[4]=t=>e.$emit("update:sorter","num_threads"))}," THR ",2),$h,Hh,On(wi("div",{class:ce(["table-cell hidden-xs hidden-sm",["sortable","io_counters"===n.sorter.column&&"sort"]]),onClick:t[5]||(t[5]=t=>e.$emit("update:sorter","io_counters"))}," IOR/s ",2),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:ce(["table-cell text-left hidden-xs hidden-sm",["sortable","io_counters"===n.sorter.column&&"sort"]]),onClick:t[6]||(t[6]=t=>e.$emit("update:sorter","io_counters"))}," IOW/s ",2),[[Ds,s.ioReadWritePresent]]),wi("div",{class:ce(["table-cell text-left",["sortable","name"===n.sorter.column&&"sort"]]),onClick:t[7]||(t[7]=t=>e.$emit("update:sorter","name"))}," Command ",2)]),(li(!0),pi(ni,null,pr(s.processes,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",{class:ce(["table-cell",s.getCpuPercentAlert(t)])},pe(-1==t.cpu_percent?"?":e.$filters.number(t.cpu_percent,1)),3),wi("div",{class:ce(["table-cell",s.getMemoryPercentAlert(t)])},pe(-1==t.memory_percent?"?":e.$filters.number(t.memory_percent,1)),3),wi("div",Vh,pe(e.$filters.bytes(t.memvirt)),1),wi("div",Gh,pe(e.$filters.bytes(t.memres)),1),wi("div",Wh,pe(t.pid),1),wi("div",Zh,pe(t.username),1),"?"!=t.timeplus?(li(),pi("div",Kh,[On(wi("span",{class:"highlight"},pe(t.timeplus.hours)+"h",513),[[Ds,t.timeplus.hours>0]]),Si(" "+pe(e.$filters.leftPad(t.timeplus.minutes,2,"0"))+":"+pe(e.$filters.leftPad(t.timeplus.seconds,2,"0"))+" ",1),On(wi("span",null,"."+pe(e.$filters.leftPad(t.timeplus.milliseconds,2,"0")),513),[[Ds,t.timeplus.hours<=0]])])):Ti("v-if",!0),"?"==t.timeplus?(li(),pi("div",Qh,"?")):Ti("v-if",!0),wi("div",Xh,pe(-1==t.num_threads?"?":t.num_threads),1),wi("div",{class:ce(["table-cell",{nice:t.isNice}])},pe(e.$filters.exclamation(t.nice)),3),wi("div",{class:ce(["table-cell",{status:"R"==t.status}])},pe(t.status),3),On(wi("div",{class:"table-cell hidden-xs hidden-sm"},pe(e.$filters.bytes(t.io_read)),513),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:"table-cell text-left hidden-xs hidden-sm"},pe(e.$filters.bytes(t.io_write)),513),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:"table-cell text-left"},pe(t.name),513),[[Ds,s.args.process_short_name]]),On(wi("div",{class:"table-cell text-left"},pe(t.cmdline),513),[[Ds,!s.args.process_short_name]])])))),128))])])],2112)}]])},props:{data:{type:Object}},data:()=>({store:qo,sorter:void 0}),computed:{args(){return this.store.args||{}},sortProcessesKey(){return this.args.sort_processes_key}},watch:{sortProcessesKey:{immediate:!0,handler(e){e&&!["cpu_percent","memory_percent","username","timemillis","num_threads","io_counters","name"].includes(e)||(this.sorter={column:this.args.sort_processes_key||"cpu_percent",auto:!this.args.sort_processes_key,isReverseColumn:function(e){return!["username","name"].includes(e)},getColumnLabel:function(e){return{io_counters:"disk IO",cpu_percent:"CPU consumption",memory_percent:"memory consumption",cpu_times:"process time",username:"user name",name:"process name",timemillis:"process time",None:"None"}[e]||e}})}}}},eg=(0,ec.Z)(Yh,[["render",function(e,t,n,r,i,s){const o=cr("glances-plugin-processcount"),a=cr("glances-plugin-amps"),l=cr("glances-plugin-processlist");return s.args.disable_process?(li(),pi("div",_h,"PROCESSES DISABLED (press 'z' to display)")):(li(),pi("div",kh,[xi(o,{sorter:i.sorter,data:n.data},null,8,["sorter","data"]),s.args.disable_amps?Ti("v-if",!0):(li(),pi("div",Sh,[wi("div",Ch,[xi(a,{data:n.data},null,8,["data"])])])),xi(l,{sorter:i.sorter,data:n.data,"onUpdate:sorter":t[0]||(t[0]=e=>s.args.sort_processes_key=e)},null,8,["sorter","data"])]))}]]),tg={id:"quicklook",class:"plugin"},ng={class:"cpu-name"},rg={class:"table"},ig={key:0,class:"table-row"},sg=wi("div",{class:"table-cell text-left"},"CPU",-1),og={class:"table-cell"},ag={class:"progress"},lg=["aria-valuenow"],cg={class:"table-cell"},ug={class:"table-cell text-left"},dg={class:"table-cell"},fg={class:"progress"},pg=["aria-valuenow"],hg={class:"table-cell"},gg={class:"table-row"},mg=wi("div",{class:"table-cell text-left"},"MEM",-1),bg={class:"table-cell"},vg={class:"progress"},yg=["aria-valuenow"],wg={class:"table-cell"},xg={class:"table-row"},_g=wi("div",{class:"table-cell text-left"},"SWAP",-1),kg={class:"table-cell"},Sg={class:"progress"},Cg=["aria-valuenow"],Tg={class:"table-cell"};const Ag={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.quicklook},view(){return this.data.views.quicklook},mem(){return this.stats.mem},cpu(){return this.stats.cpu},cpu_name(){return this.stats.cpu_name},cpu_hz_current(){return this.stats.cpu_hz_current},cpu_hz(){return this.stats.cpu_hz},swap(){return this.stats.swap},percpus(){return this.stats.percpu.map((({cpu_number:e,total:t})=>({number:e,total:t})))}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Eg=(0,ec.Z)(Ag,[["render",function(e,t,n,r,i,s){return li(),pi("section",tg,[wi("div",ng,pe(s.cpu_name),1),wi("div",rg,[s.args.percpu?Ti("v-if",!0):(li(),pi("div",ig,[sg,wi("div",og,[wi("div",ag,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("cpu")}`),role:"progressbar","aria-valuenow":s.cpu,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.cpu}%;`)},"   ",14,lg)])]),wi("div",cg,pe(s.cpu)+"%",1)])),s.args.percpu?(li(!0),pi(ni,{key:1},pr(s.percpus,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",ug,"CPU"+pe(e.number),1),wi("div",dg,[wi("div",fg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("cpu")}`),role:"progressbar","aria-valuenow":e.total,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${e.total}%;`)},"   ",14,pg)])]),wi("div",hg,pe(e.total)+"%",1)])))),128)):Ti("v-if",!0),wi("div",gg,[mg,wi("div",bg,[wi("div",vg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("mem")}`),role:"progressbar","aria-valuenow":s.mem,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.mem}%;`)},"   ",14,yg)])]),wi("div",wg,pe(s.mem)+"%",1)]),wi("div",xg,[_g,wi("div",kg,[wi("div",Sg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("swap")}`),role:"progressbar","aria-valuenow":s.swap,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.swap}%;`)},"   ",14,Cg)])]),wi("div",Tg,pe(s.swap)+"%",1)])])])}]]),Og={class:"plugin",id:"raid"},Ig={key:0,class:"table-row"},Pg=[wi("div",{class:"table-cell text-left title"},"RAID disks",-1),wi("div",{class:"table-cell"},"Used",-1),wi("div",{class:"table-cell"},"Total",-1)],Ng={class:"table-cell text-left"},Lg={class:"warning"};const Dg={props:{data:{type:Object}},computed:{stats(){return this.data.stats.raid},disks(){const e=Object.entries(this.stats).map((([e,t])=>{const n=Object.entries(t.components).map((([e,t])=>({number:t,name:e})));return{name:e,type:null==t.type?"UNKNOWN":t.type,used:t.used,available:t.available,status:t.status,degraded:t.used0}},methods:{getAlert:e=>e.inactive?"critical":e.degraded?"warning":"ok"}},Mg=(0,ec.Z)(Dg,[["render",function(e,t,n,r,i,s){return li(),pi("section",Og,[s.hasDisks?(li(),pi("div",Ig,Pg)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.disks,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",Ng,[Si(pe(e.type.toUppercase())+" "+pe(e.name)+" ",1),On(wi("div",Lg,"└─ Degraded mode",512),[[Ds,e.degraded]]),On(wi("div",null,"   └─ "+pe(e.config),513),[[Ds,e.degraded]]),On(wi("div",{class:"critical"},"└─ Status "+pe(e.status),513),[[Ds,e.inactive]]),e.inactive?(li(!0),pi(ni,{key:0},pr(e.components,((t,n)=>(li(),pi("div",{key:n},"    "+pe(n===e.components.length-1?"└─":"├─")+" disk "+pe(t.number)+": "+pe(t.name),1)))),128)):Ti("v-if",!0)]),On(wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.used),3),[[Ds,!e.inactive]]),On(wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.available),3),[[Ds,!e.inactive]])])))),128))])}]]),jg={id:"smart",class:"plugin"},Rg=wi("div",{class:"table-row"},[wi("div",{class:"table-cell text-left title"},"SMART disks"),wi("div",{class:"table-cell"}),wi("div",{class:"table-cell"})],-1),qg={class:"table-row"},Bg={class:"table-cell text-left text-truncate"},Ug=wi("div",{class:"table-cell"},null,-1),Fg=wi("div",{class:"table-cell"},null,-1),zg={class:"table-cell text-left"},$g=wi("div",{class:"table-cell"},null,-1),Hg={class:"table-cell text-truncate"};const Vg={props:{data:{type:Object}},computed:{stats(){return this.data.stats.smart},drives(){return(Array.isArray(this.stats)?this.stats:[]).map((e=>{const t=e.DeviceName,n=Object.entries(e).filter((([e])=>"DeviceName"!==e)).sort((([,e],[,t])=>e.namet.name?1:0)).map((([e,t])=>t));return{name:t,details:n}}))}}},Gg=(0,ec.Z)(Vg,[["render",function(e,t,n,r,i,s){return li(),pi("section",jg,[Rg,(li(!0),pi(ni,null,pr(s.drives,((e,t)=>(li(),pi(ni,{key:t},[wi("div",qg,[wi("div",Bg,pe(e.name),1),Ug,Fg]),(li(!0),pi(ni,null,pr(e.details,((e,t)=>(li(),pi("div",{key:t,class:"table-row"},[wi("div",zg,"  "+pe(e.name),1),$g,wi("div",Hg,[wi("span",null,pe(e.raw),1)])])))),128))],64)))),128))])}]]),Wg={class:"plugin",id:"sensors"},Zg={key:0,class:"table-row"},Kg=[wi("div",{class:"table-cell text-left title"},"SENSORS",-1)],Qg={class:"table-cell text-left"},Xg={class:"table-cell"};const Jg={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.sensors},sensors(){return this.stats.filter((e=>!(Array.isArray(e.value)&&0===e.value.length||0===e.value))).map((e=>(this.args.fahrenheit&&"battery"!=e.type&&"fan_speed"!=e.type&&(e.value=parseFloat(1.8*e.value+32).toFixed(1),e.unit="F"),e)))}},methods:{getAlert(e){const t="battery"==e.type?100-e.value:e.value;return Fo.getAlert("sensors","sensors_"+e.type+"_",t)}}},Yg=(0,ec.Z)(Jg,[["render",function(e,t,n,r,i,s){return li(),pi("section",Wg,[s.sensors.length>0?(li(),pi("div",Zg,Kg)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.sensors,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",Qg,pe(e.label),1),wi("div",Xg,pe(e.unit),1),wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.value),3)])))),128))])}]]),em={class:"plugin",id:"system"},tm={key:0,class:"critical"},nm={class:"title"},rm={key:1,class:"hidden-xs hidden-sm"},im={key:2,class:"hidden-xs hidden-sm"};const sm={props:{data:{type:Object}},data:()=>({store:qo}),computed:{stats(){return this.data.stats.system},isLinux(){return this.data.isLinux},hostname(){return this.stats.hostname},platform(){return this.stats.platform},os(){return{name:this.stats.os_name,version:this.stats.os_version}},humanReadableName(){return this.stats.hr_name},isDisconnected(){return"FAILURE"===this.store.status}}},om=(0,ec.Z)(sm,[["render",function(e,t,n,r,i,s){return li(),pi("section",em,[s.isDisconnected?(li(),pi("span",tm,"Disconnected from")):Ti("v-if",!0),wi("span",nm,pe(s.hostname),1),s.isLinux?(li(),pi("span",rm," ("+pe(s.humanReadableName)+" / "+pe(s.os.name)+" "+pe(s.os.version)+") ",1)):Ti("v-if",!0),s.isLinux?Ti("v-if",!0):(li(),pi("span",im," ("+pe(s.os.name)+" "+pe(s.os.version)+" "+pe(s.platform)+") ",1))])}]]),am={class:"plugin",id:"uptime"};const lm={props:{data:{type:Object}},computed:{value(){return this.data.stats.uptime}}},cm=(0,ec.Z)(lm,[["render",function(e,t,n,r,i,s){return li(),pi("section",am,[wi("span",null,"Uptime: "+pe(s.value),1)])}]]),um={class:"plugin",id:"wifi"},dm={key:0,class:"table-row"},fm=[wi("div",{class:"table-cell text-left title"},"WIFI",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"dBm",-1)],pm={class:"table-cell text-left"},hm=wi("div",{class:"table-cell"},null,-1);const gm={props:{data:{type:Object}},computed:{stats(){return this.data.stats.wifi},view(){return this.data.views.wifi},hotspots(){const e=this.stats.map((e=>{if(""!==e.ssid)return{ssid:e.ssid,signal:e.signal}})).filter(Boolean);return(0,cc.orderBy)(e,["ssid"])}},methods:{getDecoration(e,t){if(void 0!==this.view[e.ssid][t])return this.view[e.ssid][t].decoration.toLowerCase()}}},mm={components:{GlancesHelp:tc,GlancesPluginAlert:dc,GlancesPluginCloud:gc,GlancesPluginConnections:qc,GlancesPluginCpu:Pu,GlancesPluginDiskio:Yu,GlancesPluginContainers:_d,GlancesPluginFolders:Od,GlancesPluginFs:Bd,GlancesPluginGpu:rf,GlancesPluginIp:ff,GlancesPluginIrq:wf,GlancesPluginLoad:Df,GlancesPluginMem:Zf,GlancesPluginMemMore:up,GlancesPluginMemswap:Sp,GlancesPluginNetwork:zp,GlancesPluginNow:Wp,GlancesPluginPercpu:ch,GlancesPluginPorts:xh,GlancesPluginProcess:eg,GlancesPluginQuicklook:Eg,GlancesPluginRaid:Mg,GlancesPluginSensors:Yg,GlancesPluginSmart:Gg,GlancesPluginSystem:om,GlancesPluginUptime:cm,GlancesPluginWifi:(0,ec.Z)(gm,[["render",function(e,t,n,r,i,s){return li(),pi("section",um,[s.hotspots.length>0?(li(),pi("div",dm,fm)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.hotspots,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",pm,pe(e.$filters.limitTo(t.ssid,20)),1),hm,wi("div",{class:ce(["table-cell",s.getDecoration(t,"signal")])},pe(t.signal),3)])))),128))])}]])},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},data(){return this.store.data||{}},dataLoaded(){return void 0!==this.store.data},hasGpu(){return this.store.data.stats.gpu.length>0},isLinux(){return this.store.data.isLinux},title(){const{data:e}=this,t=e.stats&&e.stats.system&&e.stats.system.hostname||"";return t?`${t} - Glances`:"Glances"}},watch:{title(){document&&(document.title=this.title)}},methods:{setupHotKeys(){Do("a",(()=>{this.store.args.sort_processes_key=null})),Do("c",(()=>{this.store.args.sort_processes_key="cpu_percent"})),Do("m",(()=>{this.store.args.sort_processes_key="memory_percent"})),Do("u",(()=>{this.store.args.sort_processes_key="username"})),Do("p",(()=>{this.store.args.sort_processes_key="name"})),Do("i",(()=>{this.store.args.sort_processes_key="io_counters"})),Do("t",(()=>{this.store.args.sort_processes_key="timemillis"})),Do("shift+A",(()=>{this.store.args.disable_amps=!this.store.args.disable_amps})),Do("d",(()=>{this.store.args.disable_diskio=!this.store.args.disable_diskio})),Do("shift+Q",(()=>{this.store.args.enable_irq=!this.store.args.enable_irq})),Do("f",(()=>{this.store.args.disable_fs=!this.store.args.disable_fs})),Do("j",(()=>{this.store.args.programs=!this.store.args.programs})),Do("k",(()=>{this.store.args.disable_connections=!this.store.args.disable_connections})),Do("n",(()=>{this.store.args.disable_network=!this.store.args.disable_network})),Do("s",(()=>{this.store.args.disable_sensors=!this.store.args.disable_sensors})),Do("2",(()=>{this.store.args.disable_left_sidebar=!this.store.args.disable_left_sidebar})),Do("z",(()=>{this.store.args.disable_process=!this.store.args.disable_process})),Do("/",(()=>{this.store.args.process_short_name=!this.store.args.process_short_name})),Do("shift+D",(()=>{this.store.args.disable_containers=!this.store.args.disable_containers})),Do("b",(()=>{this.store.args.byte=!this.store.args.byte})),Do("shift+B",(()=>{this.store.args.diskio_iops=!this.store.args.diskio_iops})),Do("l",(()=>{this.store.args.disable_alert=!this.store.args.disable_alert})),Do("1",(()=>{this.store.args.percpu=!this.store.args.percpu})),Do("h",(()=>{this.store.args.help_tag=!this.store.args.help_tag})),Do("shift+T",(()=>{this.store.args.network_sum=!this.store.args.network_sum})),Do("shift+U",(()=>{this.store.args.network_cumul=!this.store.args.network_cumul})),Do("shift+F",(()=>{this.store.args.fs_free_space=!this.store.args.fs_free_space})),Do("3",(()=>{this.store.args.disable_quicklook=!this.store.args.disable_quicklook})),Do("6",(()=>{this.store.args.meangpu=!this.store.args.meangpu})),Do("shift+G",(()=>{this.store.args.disable_gpu=!this.store.args.disable_gpu})),Do("5",(()=>{this.store.args.disable_quicklook=!this.store.args.disable_quicklook,this.store.args.disable_cpu=!this.store.args.disable_cpu,this.store.args.disable_mem=!this.store.args.disable_mem,this.store.args.disable_memswap=!this.store.args.disable_memswap,this.store.args.disable_load=!this.store.args.disable_load,this.store.args.disable_gpu=!this.store.args.disable_gpu})),Do("shift+I",(()=>{this.store.args.disable_ip=!this.store.args.disable_ip})),Do("shift+P",(()=>{this.store.args.disable_ports=!this.store.args.disable_ports})),Do("shift+W",(()=>{this.store.args.disable_wifi=!this.store.args.disable_wifi}))}},mounted(){const e=window.__GLANCES__||{},t=isFinite(e["refresh-time"])?parseInt(e["refresh-time"],10):void 0;zo.init(t),this.setupHotKeys()},beforeUnmount(){Do.unbind()}};const bm=((...e)=>{const t=qs().createApp(...e);const{mount:n}=t;return t.mount=e=>{const r=Bs(e);if(!r)return;const i=t._component;L(i)||i.render||i.template||(i.template=r.innerHTML),r.innerHTML="";const s=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t})((0,ec.Z)(mm,[["render",function(e,t,n,r,i,s){const o=cr("glances-help"),a=cr("glances-plugin-system"),l=cr("glances-plugin-ip"),c=cr("glances-plugin-uptime"),u=cr("glances-plugin-cloud"),d=cr("glances-plugin-quicklook"),f=cr("glances-plugin-cpu"),p=cr("glances-plugin-percpu"),h=cr("glances-plugin-gpu"),g=cr("glances-plugin-mem"),m=cr("glances-plugin-mem-more"),b=cr("glances-plugin-memswap"),v=cr("glances-plugin-load"),y=cr("glances-plugin-network"),w=cr("glances-plugin-connections"),x=cr("glances-plugin-wifi"),_=cr("glances-plugin-ports"),k=cr("glances-plugin-diskio"),S=cr("glances-plugin-fs"),C=cr("glances-plugin-irq"),T=cr("glances-plugin-smart"),A=cr("glances-plugin-folders"),E=cr("glances-plugin-raid"),O=cr("glances-plugin-sensors"),I=cr("glances-plugin-now"),P=cr("glances-plugin-containers"),N=cr("glances-plugin-process"),L=cr("glances-plugin-alert");return s.dataLoaded?s.args.help_tag?(li(),hi(o,{key:1})):(li(),pi("main",zs,[wi("div",$s,[wi("div",Hs,[wi("div",Vs,[wi("div",Gs,[xi(a,{data:s.data},null,8,["data"])]),s.args.disable_ip?Ti("v-if",!0):(li(),pi("div",Ws,[xi(l,{data:s.data},null,8,["data"])])),wi("div",Zs,[xi(c,{data:s.data},null,8,["data"])])])])]),wi("div",Ks,[wi("div",Qs,[wi("div",Xs,[wi("div",Js,[xi(u,{data:s.data},null,8,["data"])])])]),wi("div",Ys,[s.args.disable_quicklook?Ti("v-if",!0):(li(),pi("div",eo,[xi(d,{data:s.data},null,8,["data"])])),s.args.disable_cpu||s.args.percpu?Ti("v-if",!0):(li(),pi("div",to,[xi(f,{data:s.data},null,8,["data"])])),!s.args.disable_cpu&&s.args.percpu?(li(),pi("div",no,[xi(p,{data:s.data},null,8,["data"])])):Ti("v-if",!0),!s.args.disable_gpu&&s.hasGpu?(li(),pi("div",ro,[xi(h,{data:s.data},null,8,["data"])])):Ti("v-if",!0),s.args.disable_mem?Ti("v-if",!0):(li(),pi("div",io,[xi(g,{data:s.data},null,8,["data"])])),Ti(" NOTE: display if MEM enabled and GPU disabled "),s.args.disable_mem||!s.args.disable_gpu&&s.hasGpu?Ti("v-if",!0):(li(),pi("div",so,[xi(m,{data:s.data},null,8,["data"])])),s.args.disable_memswap?Ti("v-if",!0):(li(),pi("div",oo,[xi(b,{data:s.data},null,8,["data"])])),s.args.disable_load?Ti("v-if",!0):(li(),pi("div",ao,[xi(v,{data:s.data},null,8,["data"])]))])]),wi("div",lo,[wi("div",co,[s.args.disable_left_sidebar?Ti("v-if",!0):(li(),pi("div",uo,[wi("div",fo,[s.args.disable_network?Ti("v-if",!0):(li(),hi(y,{key:0,id:"plugin-network",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.isLinux&&!s.args.disable_connections?(li(),hi(w,{key:1,id:"plugin-connections",class:"plugin table-row-group",data:s.data},null,8,["data"])):Ti("v-if",!0),s.args.disable_wifi?Ti("v-if",!0):(li(),hi(x,{key:2,id:"plugin-wifi",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_ports?Ti("v-if",!0):(li(),hi(_,{key:3,id:"plugin-ports",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_diskio?Ti("v-if",!0):(li(),hi(k,{key:4,id:"plugin-diskio",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_fs?Ti("v-if",!0):(li(),hi(S,{key:5,id:"plugin-fs",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_irq?Ti("v-if",!0):(li(),hi(C,{key:6,id:"plugin-irq",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_smart?Ti("v-if",!0):(li(),hi(T,{key:7,id:"plugin-smart",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_folders?Ti("v-if",!0):(li(),hi(A,{key:8,id:"plugin-folders",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.raid?Ti("v-if",!0):(li(),hi(E,{key:9,id:"plugin-raid",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_sensors?Ti("v-if",!0):(li(),hi(O,{key:10,id:"plugin-sensors",class:"plugin table-row-group",data:s.data},null,8,["data"])),xi(I,{id:"plugin-now",class:"plugin table-row-group",data:s.data},null,8,["data"])])])),wi("div",po,[s.args.disable_containers?Ti("v-if",!0):(li(),hi(P,{key:0,data:s.data},null,8,["data"])),xi(N,{data:s.data},null,8,["data"]),s.args.disable_alert?Ti("v-if",!0):(li(),hi(L,{key:1,data:s.data},null,8,["data"]))])])])])):(li(),pi("div",Us,Fs))}]]));bm.config.globalProperties.$filters=e,bm.mount("#app")})()})(); \ No newline at end of file +var ho="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function go(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function mo(e,t){for(var n=t.slice(0,t.length-1),r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var vo={backspace:8,"⌫":8,tab:9,clear:12,enter:13,"↩":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ho?173:189,"=":ho?61:187,";":ho?59:186,"'":222,"[":219,"]":221,"\\":220},yo={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},wo={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},xo={16:!1,18:!1,17:!1,91:!1},_o={},ko=1;ko<20;ko++)vo["f".concat(ko)]=111+ko;var So=[],Co=!1,To="all",Ao=[],Eo=function(e){return vo[e.toLowerCase()]||yo[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function Oo(e){To=e||"all"}function Io(){return To||"all"}var Po=function(e){var t=e.key,n=e.scope,r=e.method,i=e.splitKey,s=void 0===i?"+":i;bo(t).forEach((function(e){var t=e.split(s),i=t.length,o=t[i-1],a="*"===o?"*":Eo(o);if(_o[a]){n||(n=Io());var l=i>1?mo(yo,t):[];_o[a]=_o[a].filter((function(e){return!((!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,i=!0,s=0;s0,xo)Object.prototype.hasOwnProperty.call(xo,s)&&(!xo[s]&&t.mods.indexOf(+s)>-1||xo[s]&&-1===t.mods.indexOf(+s))&&(i=!1);(0!==t.mods.length||xo[16]||xo[18]||xo[17]||xo[91])&&!i&&"*"!==t.shortcut||(t.keys=[],t.keys=t.keys.concat(So),!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function Lo(e,t){var n=_o["*"],r=e.keyCode||e.which||e.charCode;if(Do.filter.call(this,e)){if(93!==r&&224!==r||(r=91),-1===So.indexOf(r)&&229!==r&&So.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=wo[t];e[t]&&-1===So.indexOf(n)?So.push(n):!e[t]&&So.indexOf(n)>-1?So.splice(So.indexOf(n),1):"metaKey"===t&&e[t]&&3===So.length&&(e.ctrlKey||e.shiftKey||e.altKey||(So=So.slice(So.indexOf(n))))})),r in xo){for(var i in xo[r]=!0,yo)yo[i]===r&&(Do[i]=!0);if(!n)return}for(var s in xo)Object.prototype.hasOwnProperty.call(xo,s)&&(xo[s]=e[wo[s]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===So.indexOf(17)&&So.push(17),-1===So.indexOf(18)&&So.push(18),xo[17]=!0,xo[18]=!0);var o=Io();if(n)for(var a=0;a1&&(i=mo(yo,e)),(e="*"===(e=e[e.length-1])?"*":Eo(e))in _o||(_o[e]=[]),_o[e].push({keyup:l,keydown:c,scope:s,mods:i,shortcut:r[a],method:n,key:r[a],splitKey:u,element:o});void 0!==o&&!function(e){return Ao.indexOf(e)>-1}(o)&&window&&(Ao.push(o),go(o,"keydown",(function(e){Lo(e,o)}),d),Co||(Co=!0,go(window,"focus",(function(){So=[]}),d)),go(o,"keyup",(function(e){Lo(e,o),function(e){var t=e.keyCode||e.which||e.charCode,n=So.indexOf(t);if(n>=0&&So.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&So.splice(0,So.length),93!==t&&224!==t||(t=91),t in xo)for(var r in xo[t]=!1,yo)yo[r]===t&&(Do[r]=!1)}(e)}),d))}var Mo={getPressedKeyString:function(){return So.map((function(e){return t=e,Object.keys(vo).find((function(e){return vo[e]===t}))||function(e){return Object.keys(yo).find((function(t){return yo[t]===e}))}(e)||String.fromCharCode(e);var t}))},setScope:Oo,getScope:Io,deleteScope:function(e,t){var n,r;for(var i in e||(e=Io()),_o)if(Object.prototype.hasOwnProperty.call(_o,i))for(n=_o[i],r=0;r1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(_o).forEach((function(n){_o[n].filter((function(n){return n.scope===t&&n.shortcut===e})).forEach((function(e){e&&e.method&&e.method()}))}))},unbind:function(e){if(void 0===e)Object.keys(_o).forEach((function(e){return delete _o[e]}));else if(Array.isArray(e))e.forEach((function(e){e.key&&Po(e)}));else if("object"==typeof e)e.key&&Po(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=this.limits[e][l]){var c=l.lastIndexOf("_");return l.substring(c+1)+s}}return"ok"+s}getAlertLog(e,t,n,r){return this.getAlert(e,t,n,r,!0)}};const zo=new class{data=void 0;init(e=60){let t;const n=()=>(qo.status="PENDING",Promise.all([fetch("api/3/all",{method:"GET"}).then((e=>e.json())),fetch("api/3/all/views",{method:"GET"}).then((e=>e.json()))]).then((e=>{const t={stats:e[0],views:e[1],isBsd:"FreeBSD"===e[0].system.os_name,isLinux:"Linux"===e[0].system.os_name,isSunOS:"SunOS"===e[0].system.os_name,isMac:"Darwin"===e[0].system.os_name,isWindows:"Windows"===e[0].system.os_name};this.data=t,qo.data=t,qo.status="SUCCESS"})).catch((e=>{console.log(e),qo.status="FAILURE"})).then((()=>{t&&clearTimeout(t),t=setTimeout(n,1e3*e)})));n(),fetch("api/3/all/limits",{method:"GET"}).then((e=>e.json())).then((e=>{Fo.setLimits(e)})),fetch("api/3/args",{method:"GET"}).then((e=>e.json())).then(((e={})=>{qo.args={...qo.args,...e}})),fetch("api/3/config",{method:"GET"}).then((e=>e.json())).then(((e={})=>{qo.config={...qo.config,...e}}))}getData(){return this.data}};const $o=new class{constructor(){this.favico=new(Uo())({animation:"none"})}badge(e){this.favico.badge(e)}reset(){this.favico.reset()}},Ho={key:0},Vo={class:"container-fluid"},Go={class:"row"},Wo={class:"col-sm-12 col-lg-24"},Zo=wi("div",{class:"row"}," ",-1),Ko={class:"row"},Qo={class:"col-sm-12 col-lg-24"},Xo=wi("div",{class:"row"}," ",-1),Jo={class:"divTable",style:{width:"100%"}},Yo={class:"divTableBody"},ea={class:"divTableRow"},ta={class:"divTableHead"},na={class:"divTableHead"},ra={class:"divTableHead"},ia={class:"divTableHead"},sa={class:"divTableRow"},oa={class:"divTableCell"},aa={class:"divTableCell"},la={class:"divTableCell"},ca={class:"divTableCell"},ua={class:"divTableRow"},da={class:"divTableCell"},fa={class:"divTableCell"},pa={class:"divTableCell"},ha={class:"divTableCell"},ga={class:"divTableRow"},ma={class:"divTableCell"},ba={class:"divTableCell"},va={class:"divTableCell"},ya={class:"divTableCell"},wa={class:"divTableRow"},xa={class:"divTableCell"},_a={class:"divTableCell"},ka={class:"divTableCell"},Sa={class:"divTableCell"},Ca={class:"divTableRow"},Ta={class:"divTableCell"},Aa={class:"divTableCell"},Ea={class:"divTableCell"},Oa={class:"divTableCell"},Ia={class:"divTableRow"},Pa={class:"divTableCell"},Na={class:"divTableCell"},La={class:"divTableCell"},Da={class:"divTableCell"},Ma={class:"divTableRow"},ja={class:"divTableCell"},Ra={class:"divTableCell"},qa={class:"divTableCell"},Ba={class:"divTableCell"},Ua={class:"divTableRow"},Fa=wi("div",{class:"divTableCell"}," ",-1),za={class:"divTableCell"},$a={class:"divTableCell"},Ha={class:"divTableCell"},Va={class:"divTableRow"},Ga=wi("div",{class:"divTableCell"}," ",-1),Wa={class:"divTableCell"},Za={class:"divTableCell"},Ka={class:"divTableCell"},Qa={class:"divTableRow"},Xa=wi("div",{class:"divTableCell"}," ",-1),Ja={class:"divTableCell"},Ya={class:"divTableCell"},el={class:"divTableCell"},tl={class:"divTableRow"},nl=wi("div",{class:"divTableCell"}," ",-1),rl={class:"divTableCell"},il=wi("div",{class:"divTableCell"}," ",-1),sl={class:"divTableCell"},ol={class:"divTableRow"},al=wi("div",{class:"divTableCell"}," ",-1),ll={class:"divTableCell"},cl=wi("div",{class:"divTableCell"}," ",-1),ul=wi("div",{class:"divTableCell"}," ",-1),dl={class:"divTableRow"},fl=wi("div",{class:"divTableCell"}," ",-1),pl={class:"divTableCell"},hl=wi("div",{class:"divTableCell"}," ",-1),gl=wi("div",{class:"divTableCell"}," ",-1),ml={class:"divTableRow"},bl=wi("div",{class:"divTableCell"}," ",-1),vl={class:"divTableCell"},yl=wi("div",{class:"divTableCell"}," ",-1),wl=wi("div",{class:"divTableCell"}," ",-1),xl={class:"divTableRow"},_l=wi("div",{class:"divTableCell"}," ",-1),kl={class:"divTableCell"},Sl=wi("div",{class:"divTableCell"}," ",-1),Cl=wi("div",{class:"divTableCell"}," ",-1),Tl={class:"divTableRow"},Al=wi("div",{class:"divTableCell"}," ",-1),El={class:"divTableCell"},Ol=wi("div",{class:"divTableCell"}," ",-1),Il=wi("div",{class:"divTableCell"}," ",-1),Pl={class:"divTableRow"},Nl=wi("div",{class:"divTableCell"}," ",-1),Ll={class:"divTableCell"},Dl=wi("div",{class:"divTableCell"}," ",-1),Ml=wi("div",{class:"divTableCell"}," ",-1),jl={class:"divTableRow"},Rl=wi("div",{class:"divTableCell"}," ",-1),ql={class:"divTableCell"},Bl=wi("div",{class:"divTableCell"}," ",-1),Ul=wi("div",{class:"divTableCell"}," ",-1),Fl={class:"divTableRow"},zl=wi("div",{class:"divTableCell"}," ",-1),$l={class:"divTableCell"},Hl=wi("div",{class:"divTableCell"}," ",-1),Vl=wi("div",{class:"divTableCell"}," ",-1),Gl={class:"divTableRow"},Wl=wi("div",{class:"divTableCell"}," ",-1),Zl={class:"divTableCell"},Kl=wi("div",{class:"divTableCell"}," ",-1),Ql=wi("div",{class:"divTableCell"}," ",-1),Xl=wi("div",null,[wi("p",null,[Si(" For an exhaustive list of key bindings, "),wi("a",{href:"https://glances.readthedocs.io/en/latest/cmds.html#interactive-commands"},"click here"),Si(". ")])],-1),Jl=wi("div",null,[wi("p",null,[Si("Press "),wi("b",null,"h"),Si(" to came back to Glances.")])],-1);const Yl={data:()=>({help:void 0}),mounted(){fetch("api/3/help",{method:"GET"}).then((e=>e.json())).then((e=>this.help=e))}};var ec=n(3744);const tc=(0,ec.Z)(Yl,[["render",function(e,t,n,r,i,s){return i.help?(li(),pi("div",Ho,[wi("div",Vo,[wi("div",Go,[wi("div",Wo,pe(i.help.version)+" "+pe(i.help.psutil_version),1)]),Zo,wi("div",Ko,[wi("div",Qo,pe(i.help.configuration_file),1)]),Xo]),wi("div",Jo,[wi("div",Yo,[wi("div",ea,[wi("div",ta,pe(i.help.header_sort.replace(":","")),1),wi("div",na,pe(i.help.header_show_hide.replace(":","")),1),wi("div",ra,pe(i.help.header_toggle.replace(":","")),1),wi("div",ia,pe(i.help.header_miscellaneous.replace(":","")),1)]),wi("div",sa,[wi("div",oa,pe(i.help.sort_auto),1),wi("div",aa,pe(i.help.show_hide_application_monitoring),1),wi("div",la,pe(i.help.toggle_bits_bytes),1),wi("div",ca,pe(i.help.misc_erase_process_filter),1)]),wi("div",ua,[wi("div",da,pe(i.help.sort_cpu),1),wi("div",fa,pe(i.help.show_hide_diskio),1),wi("div",pa,pe(i.help.toggle_count_rate),1),wi("div",ha,pe(i.help.misc_generate_history_graphs),1)]),wi("div",ga,[wi("div",ma,pe(i.help.sort_io_rate),1),wi("div",ba,pe(i.help.show_hide_containers),1),wi("div",va,pe(i.help.toggle_used_free),1),wi("div",ya,pe(i.help.misc_help),1)]),wi("div",wa,[wi("div",xa,pe(i.help.sort_mem),1),wi("div",_a,pe(i.help.show_hide_top_extended_stats),1),wi("div",ka,pe(i.help.toggle_bar_sparkline),1),wi("div",Sa,pe(i.help.misc_accumulate_processes_by_program),1)]),wi("div",Ca,[wi("div",Ta,pe(i.help.sort_process_name),1),wi("div",Aa,pe(i.help.show_hide_filesystem),1),wi("div",Ea,pe(i.help.toggle_separate_combined),1),wi("div",Oa,pe(i.help.misc_kill_process)+" - N/A in WebUI ",1)]),wi("div",Ia,[wi("div",Pa,pe(i.help.sort_cpu_times),1),wi("div",Na,pe(i.help.show_hide_gpu),1),wi("div",La,pe(i.help.toggle_live_cumulative),1),wi("div",Da,pe(i.help.misc_reset_processes_summary_min_max),1)]),wi("div",Ma,[wi("div",ja,pe(i.help.sort_user),1),wi("div",Ra,pe(i.help.show_hide_ip),1),wi("div",qa,pe(i.help.toggle_linux_percentage),1),wi("div",Ba,pe(i.help.misc_quit),1)]),wi("div",Ua,[Fa,wi("div",za,pe(i.help.show_hide_tcp_connection),1),wi("div",$a,pe(i.help.toggle_cpu_individual_combined),1),wi("div",Ha,pe(i.help.misc_reset_history),1)]),wi("div",Va,[Ga,wi("div",Wa,pe(i.help.show_hide_alert),1),wi("div",Za,pe(i.help.toggle_gpu_individual_combined),1),wi("div",Ka,pe(i.help.misc_delete_warning_alerts),1)]),wi("div",Qa,[Xa,wi("div",Ja,pe(i.help.show_hide_network),1),wi("div",Ya,pe(i.help.toggle_short_full),1),wi("div",el,pe(i.help.misc_delete_warning_and_critical_alerts),1)]),wi("div",tl,[nl,wi("div",rl,pe(i.help.sort_cpu_times),1),il,wi("div",sl,pe(i.help.misc_edit_process_filter_pattern)+" - N/A in WebUI ",1)]),wi("div",ol,[al,wi("div",ll,pe(i.help.show_hide_irq),1),cl,ul]),wi("div",dl,[fl,wi("div",pl,pe(i.help.show_hide_raid_plugin),1),hl,gl]),wi("div",ml,[bl,wi("div",vl,pe(i.help.show_hide_sensors),1),yl,wl]),wi("div",xl,[_l,wi("div",kl,pe(i.help.show_hide_wifi_module),1),Sl,Cl]),wi("div",Tl,[Al,wi("div",El,pe(i.help.show_hide_processes),1),Ol,Il]),wi("div",Pl,[Nl,wi("div",Ll,pe(i.help.show_hide_left_sidebar),1),Dl,Ml]),wi("div",jl,[Rl,wi("div",ql,pe(i.help.show_hide_quick_look),1),Bl,Ul]),wi("div",Fl,[zl,wi("div",$l,pe(i.help.show_hide_cpu_mem_swap),1),Hl,Vl]),wi("div",Gl,[Wl,wi("div",Zl,pe(i.help.show_hide_all),1),Kl,Ql])])]),Xl,Jl])):Ti("v-if",!0)}]]),nc={class:"plugin"},rc={id:"alerts"},ic={key:0,class:"title"},sc={key:1,class:"title"},oc={id:"alert"},ac={class:"table"},lc={class:"table-cell text-left"};var cc=n(6486);const uc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.alert},alerts(){return(this.stats||[]).map((e=>{const t={};if(t.name=e[3],t.level=e[2],t.begin=1e3*e[0],t.end=1e3*e[1],t.ongoing=-1==e[1],t.min=e[6],t.mean=e[5],t.max=e[4],!t.ongoing){const e=t.end-t.begin,n=parseInt(e/1e3%60),r=parseInt(e/6e4%60),i=parseInt(e/36e5%24);t.duration=(0,cc.padStart)(i,2,"0")+":"+(0,cc.padStart)(r,2,"0")+":"+(0,cc.padStart)(n,2,"0")}return t}))},hasAlerts(){return this.countAlerts>0},countAlerts(){return this.alerts.length},hasOngoingAlerts(){return this.countOngoingAlerts>0},countOngoingAlerts(){return this.alerts.filter((({ongoing:e})=>e)).length}},watch:{countOngoingAlerts(){this.countOngoingAlerts?$o.badge(this.countOngoingAlerts):$o.reset()}},methods:{formatDate:e=>new Date(e).toISOString().slice(0,19).replace(/[^\d-:]/," ")}},dc=(0,ec.Z)(uc,[["render",function(e,t,n,r,i,s){return li(),pi("div",nc,[wi("section",rc,[s.hasAlerts?(li(),pi("span",ic," Warning or critical alerts (last "+pe(s.countAlerts)+" entries) ",1)):(li(),pi("span",sc,"No warning or critical alert detected"))]),wi("section",oc,[wi("div",ac,[(li(!0),pi(ni,null,pr(s.alerts,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",lc,[Si(pe(s.formatDate(t.begin))+" ("+pe(t.ongoing?"ongoing":t.duration)+") - ",1),On(wi("span",null,pe(t.level)+" on ",513),[[Ds,!t.ongoing]]),wi("span",{class:ce(t.level.toLowerCase())},pe(t.name),3),Si(" ("+pe(e.$filters.number(t.max,1))+") ",1)])])))),128))])])])}]]),fc={key:0,id:"cloud",class:"plugin"},pc={class:"title"};const hc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.cloud},provider(){return void 0!==this.stats.id?`${stats.platform}`:null},instance(){const{stats:e}=this;return void 0!==this.stats.id?`${e.type} instance ${e.name} (${e.region})`:null}}},gc=(0,ec.Z)(hc,[["render",function(e,t,n,r,i,s){return s.instance||s.provider?(li(),pi("section",fc,[wi("span",pc,pe(s.provider),1),Si(" "+pe(s.instance),1)])):Ti("v-if",!0)}]]),mc={class:"plugin",id:"connections"},bc=wi("div",{class:"table-row"},[wi("div",{class:"table-cell text-left title"},"TCP CONNECTIONS"),wi("div",{class:"table-cell"})],-1),vc={class:"table-row"},yc=wi("div",{class:"table-cell text-left"},"Listen",-1),wc=wi("div",{class:"table-cell"},null,-1),xc={class:"table-cell"},_c={class:"table-row"},kc=wi("div",{class:"table-cell text-left"},"Initiated",-1),Sc=wi("div",{class:"table-cell"},null,-1),Cc={class:"table-cell"},Tc={class:"table-row"},Ac=wi("div",{class:"table-cell text-left"},"Established",-1),Ec=wi("div",{class:"table-cell"},null,-1),Oc={class:"table-cell"},Ic={class:"table-row"},Pc=wi("div",{class:"table-cell text-left"},"Terminated",-1),Nc=wi("div",{class:"table-cell"},null,-1),Lc={class:"table-cell"},Dc={class:"table-row"},Mc=wi("div",{class:"table-cell text-left"},"Tracked",-1),jc=wi("div",{class:"table-cell"},null,-1);const Rc={props:{data:{type:Object}},computed:{stats(){return this.data.stats.connections},view(){return this.data.views.connections},listen(){return this.stats.LISTEN},initiated(){return this.stats.initiated},established(){return this.stats.ESTABLISHED},terminated(){return this.stats.terminated},tracked(){return{count:this.stats.nf_conntrack_count,max:this.stats.nf_conntrack_max}}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},qc=(0,ec.Z)(Rc,[["render",function(e,t,n,r,i,s){return li(),pi("section",mc,[bc,wi("div",vc,[yc,wc,wi("div",xc,pe(s.listen),1)]),wi("div",_c,[kc,Sc,wi("div",Cc,pe(s.initiated),1)]),wi("div",Tc,[Ac,Ec,wi("div",Oc,pe(s.established),1)]),wi("div",Ic,[Pc,Nc,wi("div",Lc,pe(s.terminated),1)]),wi("div",Dc,[Mc,jc,wi("div",{class:ce(["table-cell",s.getDecoration("nf_conntrack_percent")])},pe(s.tracked.count)+"/"+pe(s.tracked.max),3)])])}]]),Bc={id:"cpu",class:"plugin"},Uc={class:"row"},Fc={class:"col-sm-24 col-md-12 col-lg-8"},zc={class:"table"},$c={class:"table-row"},Hc=wi("div",{class:"table-cell text-left title"},"CPU",-1),Vc={class:"table-row"},Gc=wi("div",{class:"table-cell text-left"},"user:",-1),Wc={class:"table-row"},Zc=wi("div",{class:"table-cell text-left"},"system:",-1),Kc={class:"table-row"},Qc=wi("div",{class:"table-cell text-left"},"iowait:",-1),Xc={class:"table-row"},Jc=wi("div",{class:"table-cell text-left"},"dpc:",-1),Yc={class:"hidden-xs hidden-sm col-md-12 col-lg-8"},eu={class:"table"},tu={class:"table-row"},nu=wi("div",{class:"table-cell text-left"},"idle:",-1),ru={class:"table-cell"},iu={class:"table-row"},su=wi("div",{class:"table-cell text-left"},"irq:",-1),ou={class:"table-cell"},au={class:"table-row"},lu=wi("div",{class:"table-cell text-left"},"inter:",-1),cu={class:"table-cell"},uu={class:"table-row"},du=wi("div",{class:"table-cell text-left"},"nice:",-1),fu={class:"table-cell"},pu={key:0,class:"table-row"},hu=wi("div",{class:"table-cell text-left"},"ctx_sw:",-1),gu={class:"table-row"},mu=wi("div",{class:"table-cell text-left"},"steal:",-1),bu={key:1,class:"table-row"},vu=wi("div",{class:"table-cell text-left"},"syscal:",-1),yu={class:"table-cell"},wu={class:"hidden-xs hidden-sm hidden-md col-lg-8"},xu={class:"table"},_u={key:0,class:"table-row"},ku=wi("div",{class:"table-cell text-left"},"ctx_sw:",-1),Su={key:1,class:"table-row"},Cu=wi("div",{class:"table-cell text-left"},"inter:",-1),Tu={class:"table-cell"},Au={key:2,class:"table-row"},Eu=wi("div",{class:"table-cell text-left"},"sw_int:",-1),Ou={class:"table-cell"};const Iu={props:{data:{type:Object}},computed:{stats(){return this.data.stats.cpu},view(){return this.data.views.cpu},isLinux(){return this.data.isLinux},isSunOS(){return this.data.isSunOS},isWindows(){return this.data.isWindows},total(){return this.stats.total},user(){return this.stats.user},system(){return this.stats.system},idle(){return this.stats.idle},nice(){return this.stats.nice},irq(){return this.stats.irq},iowait(){return this.stats.iowait},dpc(){return this.stats.dpc},steal(){return this.stats.steal},ctx_switches(){const{stats:e}=this;return e.ctx_switches?Math.floor(e.ctx_switches/e.time_since_update):null},interrupts(){const{stats:e}=this;return e.interrupts?Math.floor(e.interrupts/e.time_since_update):null},soft_interrupts(){const{stats:e}=this;return e.soft_interrupts?Math.floor(e.soft_interrupts/e.time_since_update):null},syscalls(){const{stats:e}=this;return e.syscalls?Math.floor(e.syscalls/e.time_since_update):null}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Pu=(0,ec.Z)(Iu,[["render",function(e,t,n,r,i,s){return li(),pi("section",Bc,[wi("div",Uc,[wi("div",Fc,[wi("div",zc,[wi("div",$c,[Hc,wi("div",{class:ce(["table-cell",s.getDecoration("total")])},pe(s.total)+"%",3)]),wi("div",Vc,[Gc,wi("div",{class:ce(["table-cell",s.getDecoration("user")])},pe(s.user)+"%",3)]),wi("div",Wc,[Zc,wi("div",{class:ce(["table-cell",s.getDecoration("system")])},pe(s.system)+"%",3)]),On(wi("div",Kc,[Qc,wi("div",{class:ce(["table-cell",s.getDecoration("iowait")])},pe(s.iowait)+"%",3)],512),[[Ds,null!=s.iowait]]),On(wi("div",Xc,[Jc,wi("div",{class:ce(["table-cell",s.getDecoration("dpc")])},pe(s.dpc)+"%",3)],512),[[Ds,null==s.iowait&&null!=s.dpc]])])]),wi("div",Yc,[wi("div",eu,[wi("div",tu,[nu,wi("div",ru,pe(s.idle)+"%",1)]),On(wi("div",iu,[su,wi("div",ou,pe(s.irq)+"%",1)],512),[[Ds,null!=s.irq]]),Ti(" If no irq, display interrupts "),On(wi("div",au,[lu,wi("div",cu,pe(s.interrupts),1)],512),[[Ds,null==s.irq]]),On(wi("div",uu,[du,wi("div",fu,pe(s.nice)+"%",1)],512),[[Ds,null!=s.nice]]),Ti(" If no nice, display ctx_switches "),null==s.nice&&s.ctx_switches?(li(),pi("div",pu,[hu,wi("div",{class:ce(["table-cell",s.getDecoration("ctx_switches")])},pe(s.ctx_switches),3)])):Ti("v-if",!0),On(wi("div",gu,[mu,wi("div",{class:ce(["table-cell",s.getDecoration("steal")])},pe(s.steal)+"%",3)],512),[[Ds,null!=s.steal]]),!s.isLinux&&s.syscalls?(li(),pi("div",bu,[vu,wi("div",yu,pe(s.syscalls),1)])):Ti("v-if",!0)])]),wi("div",wu,[wi("div",xu,[Ti(" If not already display instead of nice, then display ctx_switches "),null!=s.nice&&s.ctx_switches?(li(),pi("div",_u,[ku,wi("div",{class:ce(["table-cell",s.getDecoration("ctx_switches")])},pe(s.ctx_switches),3)])):Ti("v-if",!0),Ti(" If not already display instead of irq, then display interrupts "),null!=s.irq&&s.interrupts?(li(),pi("div",Su,[Cu,wi("div",Tu,pe(s.interrupts),1)])):Ti("v-if",!0),s.isWindows||s.isSunOS||!s.soft_interrupts?Ti("v-if",!0):(li(),pi("div",Au,[Eu,wi("div",Ou,pe(s.soft_interrupts),1)]))])])])])}]]),Nu={class:"plugin",id:"diskio"},Lu={key:0,class:"table-row"},Du=wi("div",{class:"table-cell text-left title"},"DISK I/O",-1),Mu={class:"table-cell"},ju={class:"table-cell"},Ru={class:"table-cell"},qu={class:"table-cell"},Bu={class:"table-cell text-left"};var Uu=n(1036),Fu=n.n(Uu);function zu(e,t){return $u(e=8*Math.round(e),t)+"b"}function $u(e,t){if(t=t||!1,isNaN(parseFloat(e))||!isFinite(e)||0==e)return e;const n=["Y","Z","E","P","T","G","M","K"],r={Y:12089258196146292e8,Z:11805916207174113e5,E:0x1000000000000000,P:0x4000000000000,T:1099511627776,G:1073741824,M:1048576,K:1024};for(var i=0;i1){var a=0;return o<10?a=2:o<100&&(a=1),t?a="MK"==s?0:(0,cc.min)([1,a]):"K"==s&&(a=0),parseFloat(o).toFixed(a)+s}}return e.toFixed(0)}function Hu(e){return void 0===e||""===e?"?":e}function Vu(e,t,n){return t=t||0,n=n||" ",String(e).padStart(t,n)}function Gu(e,t){return"function"!=typeof e.slice&&(e=String(e)),e.slice(0,t)}function Wu(e,t){return t=t||8,e.length>t?"_"+e.substring(e.length-t+1):e}function Zu(e){if(void 0===e)return e;var t=function(e){var t=document.createElement("div");return t.innerText=e,t.innerHTML}(e),n=t.replace(/\n/g,"
");return Fu()(n)}function Ku(e,t){return new Intl.NumberFormat(void 0,"number"==typeof t?{maximumFractionDigits:t}:t).format(e)}function Qu(e){for(var t=0,n=0;n({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.diskio},disks(){const e=this.stats.map((e=>{const t=e.time_since_update;return{name:e.disk_name,bitrate:{txps:$u(e.read_bytes/t),rxps:$u(e.write_bytes/t)},count:{txps:$u(e.read_count/t),rxps:$u(e.write_count/t)},alias:void 0!==e.alias?e.alias:null}}));return(0,cc.orderBy)(e,["name"])}}},Yu=(0,ec.Z)(Ju,[["render",function(e,t,n,r,i,s){return li(),pi("section",Nu,[s.disks.length>0?(li(),pi("div",Lu,[Du,On(wi("div",Mu,"R/s",512),[[Ds,!s.args.diskio_iops]]),On(wi("div",ju,"W/s",512),[[Ds,!s.args.diskio_iops]]),On(wi("div",Ru,"IOR/s",512),[[Ds,s.args.diskio_iops]]),On(wi("div",qu,"IOW/s",512),[[Ds,s.args.diskio_iops]])])):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.disks,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Bu,pe(e.$filters.minSize(t.alias?t.alias:t.name,32)),1),On(wi("div",{class:"table-cell"},pe(t.bitrate.txps),513),[[Ds,!s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.bitrate.rxps),513),[[Ds,!s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.count.txps),513),[[Ds,s.args.diskio_iops]]),On(wi("div",{class:"table-cell"},pe(t.count.rxps),513),[[Ds,s.args.diskio_iops]])])))),128))])}]]),ed={key:0,id:"containers-plugin",class:"plugin"},td=wi("span",{class:"title"},"CONTAINERS",-1),nd={class:"table"},rd={class:"table-row"},id=wi("div",{class:"table-cell text-left"},"Engine",-1),sd=wi("div",{class:"table-cell text-left"},"Pod",-1),od=wi("div",{class:"table-cell"},"Status",-1),ad=wi("div",{class:"table-cell"},"Uptime",-1),ld=Ci('
/MAX
IOR/s
IOW/s
RX/s
TX/s
Command
',6),cd={class:"table-cell text-left"},ud={class:"table-cell text-left"},dd={class:"table-cell text-left"},fd={class:"table-cell"},pd={class:"table-cell"},hd={class:"table-cell"},gd={class:"table-cell"},md={class:"table-cell"},bd={class:"table-cell"},vd={class:"table-cell"},yd={class:"table-cell"},wd={class:"table-cell text-left"};const xd={props:{data:{type:Object}},data:()=>({store:qo,sorter:void 0}),computed:{args(){return this.store.args||{}},sortProcessesKey(){return this.args.sort_processes_key},stats(){return this.data.stats.containers},containers(){const{sorter:e}=this,t=(this.stats&&this.stats.containers||[]).map((e=>({id:e.Id,name:e.name,status:e.Status,uptime:e.Uptime,cpu_percent:e.cpu.total,memory_usage:null!=e.memory.usage?e.memory.usage:"?",limit:null!=e.memory.limit?e.memory.limit:"?",ior:null!=e.io.ior?e.io.ior:"?",iow:null!=e.io.iow?e.io.iow:"?",io_time_since_update:e.io.time_since_update,rx:null!=e.network.rx?e.network.rx:"?",tx:null!=e.network.tx?e.network.tx:"?",net_time_since_update:e.network.time_since_update,command:e.Command.join(" "),image:e.Image,engine:e.engine,pod_id:e.pod_id})));return(0,cc.orderBy)(t,[e.column].reduce(((e,t)=>("memory_percent"===t&&(t=["memory_usage"]),e.concat(t))),[]),[e.isReverseColumn(e.column)?"desc":"asc"])}},watch:{sortProcessesKey:{immediate:!0,handler(e){e&&!["cpu_percent","memory_percent","name"].includes(e)||(this.sorter={column:this.args.sort_processes_key||"cpu_percent",auto:!this.args.sort_processes_key,isReverseColumn:function(e){return!["name"].includes(e)},getColumnLabel:function(e){return{io_counters:"disk IO",cpu_percent:"CPU consumption",memory_usage:"memory consumption",cpu_times:"uptime",name:"container name",None:"None"}[e]||e}})}}}},_d=(0,ec.Z)(xd,[["render",function(e,t,n,r,i,s){return s.containers.length?(li(),pi("section",ed,[td,Si(" "+pe(s.containers.length)+" sorted by "+pe(i.sorter.getColumnLabel(i.sorter.column))+" ",1),wi("div",nd,[wi("div",rd,[id,sd,wi("div",{class:ce(["table-cell text-left",["sortable","name"===i.sorter.column&&"sort"]]),onClick:t[0]||(t[0]=e=>s.args.sort_processes_key="name")}," Name ",2),od,ad,wi("div",{class:ce(["table-cell",["sortable","cpu_percent"===i.sorter.column&&"sort"]]),onClick:t[1]||(t[1]=e=>s.args.sort_processes_key="cpu_percent")}," CPU% ",2),wi("div",{class:ce(["table-cell",["sortable","memory_percent"===i.sorter.column&&"sort"]]),onClick:t[2]||(t[2]=e=>s.args.sort_processes_key="memory_percent")}," MEM ",2),ld]),(li(!0),pi(ni,null,pr(s.containers,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",cd,pe(t.engine),1),wi("div",ud,pe(t.pod_id||"-"),1),wi("div",dd,pe(t.name),1),wi("div",{class:ce(["table-cell","Paused"==t.status?"careful":"ok"])},pe(t.status),3),wi("div",fd,pe(t.uptime),1),wi("div",pd,pe(e.$filters.number(t.cpu_percent,1)),1),wi("div",hd,pe(e.$filters.bytes(t.memory_usage)),1),wi("div",gd,pe(e.$filters.bytes(t.limit)),1),wi("div",md,pe(e.$filters.bits(t.ior/t.io_time_since_update)),1),wi("div",bd,pe(e.$filters.bits(t.iow/t.io_time_since_update)),1),wi("div",vd,pe(e.$filters.bits(t.rx/t.net_time_since_update)),1),wi("div",yd,pe(e.$filters.bits(t.tx/t.net_time_since_update)),1),wi("div",wd,pe(t.command),1)])))),128))])])):Ti("v-if",!0)}]]),kd={class:"plugin",id:"folders"},Sd={key:0,class:"table-row"},Cd=[wi("div",{class:"table-cell text-left title"},"FOLDERS",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"Size",-1)],Td={class:"table-cell text-left"},Ad=wi("div",{class:"table-cell"},null,-1);const Ed={props:{data:{type:Object}},computed:{stats(){return this.data.stats.folders},folders(){return this.stats.map((e=>({path:e.path,size:e.size,careful:e.careful,warning:e.warning,critical:e.critical})))}},methods:{getDecoration(e){if(Number.isInteger(e.size))return null!==e.critical&&e.size>1e6*e.critical?"critical":null!==e.warning&&e.size>1e6*e.warning?"warning":null!==e.careful&&e.size>1e6*e.careful?"careful":"ok"}}},Od=(0,ec.Z)(Ed,[["render",function(e,t,n,r,i,s){return li(),pi("section",kd,[s.folders.length>0?(li(),pi("div",Sd,Cd)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.folders,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Td,pe(t.path),1),Ad,wi("div",{class:ce(["table-cell",s.getDecoration(t)])},pe(e.$filters.bytes(t.size)),3)])))),128))])}]]),Id={class:"plugin",id:"fs"},Pd={class:"table-row"},Nd=wi("div",{class:"table-cell text-left title"},"FILE SYS",-1),Ld={class:"table-cell"},Dd=wi("div",{class:"table-cell"},"Total",-1),Md={class:"table-cell text-left"},jd={key:0,class:"visible-lg-inline"},Rd={class:"table-cell"};const qd={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.fs},view(){return this.data.views.fs},fileSystems(){const e=this.stats.map((e=>{let t=e.mnt_point;return t.length>22&&(t="_"+e.mnt_point.slice(-21)),{name:e.device_name,mountPoint:e.mnt_point,shortMountPoint:t,percent:e.percent,size:e.size,used:e.used,free:e.free}}));return(0,cc.orderBy)(e,["mnt_point"])}},methods:{getDecoration(e,t){if(null!=this.view[e][t])return this.view[e][t].decoration.toLowerCase()}}},Bd=(0,ec.Z)(qd,[["render",function(e,t,n,r,i,s){return li(),pi("section",Id,[wi("div",Pd,[Nd,wi("div",Ld,[On(wi("span",null,"Used",512),[[Ds,!s.args.fs_free_space]]),On(wi("span",null,"Free",512),[[Ds,s.args.fs_free_space]])]),Dd]),(li(!0),pi(ni,null,pr(s.fileSystems,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Md,[Si(pe(t.shortMountPoint)+" ",1),t.shortMountPoint.length<=12?(li(),pi("span",jd," ("+pe(t.name)+") ",1)):Ti("v-if",!0)]),wi("div",{class:ce(["table-cell",s.getDecoration(t.mountPoint,"used")])},[On(wi("span",null,pe(e.$filters.bytes(t.used)),513),[[Ds,!s.args.fs_free_space]]),On(wi("span",null,pe(e.$filters.bytes(t.free)),513),[[Ds,s.args.fs_free_space]])],2),wi("div",Rd,pe(e.$filters.bytes(t.size)),1)])))),128))])}]]),Ud={id:"gpu",class:"plugin"},Fd={class:"gpu-name title"},zd={class:"table"},$d={key:0,class:"table-row"},Hd=wi("div",{class:"table-cell text-left"},"proc:",-1),Vd={key:1,class:"table-cell"},Gd={key:1,class:"table-row"},Wd=wi("div",{class:"table-cell text-left"},"mem:",-1),Zd={key:1,class:"table-cell"},Kd={key:2,class:"table-row"},Qd=wi("div",{class:"table-cell text-left"},"temperature::",-1),Xd={key:1,class:"table-cell"},Jd={class:"table-cell text-left"},Yd={key:1},ef={key:3},tf={key:5};const nf={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.gpu},view(){return this.data.views.gpu},gpus(){return this.stats},name(){let e="GPU";const{stats:t}=this;return 1===t.length?e=t[0].name:t.length&&(e=`${t.length} GPU ${t[0].name}`),e},mean(){const e={proc:null,mem:null,temperature:null},{stats:t}=this;if(!t.length)return e;for(let n of t)e.proc+=n.proc,e.mem+=n.mem,e.temperature+=n.temperature;return e.proc=e.proc/t.length,e.mem=e.mem/t.length,e.temperature=e.temperature/t.length,e}},methods:{getDecoration(e,t){if(void 0!==this.view[e][t])return this.view[e][t].decoration.toLowerCase()},getMeanDecoration(e){return this.getDecoration(0,e)}}},rf=(0,ec.Z)(nf,[["render",function(e,t,n,r,i,s){return li(),pi("section",Ud,[wi("div",Fd,pe(s.name),1),wi("div",zd,[s.args.meangpu||1===s.gpus.length?(li(),pi("div",$d,[Hd,null!=s.mean.proc?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("proc")])},pe(e.$filters.number(s.mean.proc,0))+"% ",3)):Ti("v-if",!0),null==s.mean.proc?(li(),pi("div",Vd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),s.args.meangpu||1===s.gpus.length?(li(),pi("div",Gd,[Wd,null!=s.mean.mem?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("mem")])},pe(e.$filters.number(s.mean.mem,0))+"% ",3)):Ti("v-if",!0),null==s.mean.mem?(li(),pi("div",Zd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),s.args.meangpu||1===s.gpus.length?(li(),pi("div",Kd,[Qd,null!=s.mean.temperature?(li(),pi("div",{key:0,class:ce(["table-cell",s.getMeanDecoration("temperature")])},pe(e.$filters.number(s.mean.temperature,0))+"° ",3)):Ti("v-if",!0),null==s.mean.temperature?(li(),pi("div",Xd,"N/A")):Ti("v-if",!0)])):Ti("v-if",!0),!s.args.meangpu&&s.gpus.length>1?(li(!0),pi(ni,{key:3},pr(s.gpus,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",Jd,[Si(pe(t.gpu_id)+": ",1),null!=t.proc?(li(),pi("span",{key:0,class:ce(s.getDecoration(t.gpu_id,"proc"))},pe(e.$filters.number(t.proc,0))+"% ",3)):Ti("v-if",!0),null==t.proc?(li(),pi("span",Yd,"N/A")):Ti("v-if",!0),Si(" mem: "),null!=t.mem?(li(),pi("span",{key:2,class:ce(s.getDecoration(t.gpu_id,"mem"))},pe(e.$filters.number(t.mem,0))+"% ",3)):Ti("v-if",!0),null==t.mem?(li(),pi("span",ef,"N/A")):Ti("v-if",!0),Si(" temp: "),null!=t.temperature?(li(),pi("span",{key:4,class:ce(s.getDecoration(t.gpu_id,"temperature"))},pe(e.$filters.number(t.temperature,0))+"C ",3)):Ti("v-if",!0),null==t.temperature?(li(),pi("span",tf,"N/A")):Ti("v-if",!0)])])))),128)):Ti("v-if",!0)])])}]]),sf={key:0,class:"plugin",id:"ip"},of={key:0,class:"title"},af={key:1},lf={key:2,class:"title"},cf={key:3},uf={key:4};const df={props:{data:{type:Object}},computed:{ipStats(){return this.data.stats.ip},address(){return this.ipStats.address},gateway(){return this.ipStats.gateway},maskCdir(){return this.ipStats.mask_cidr},publicAddress(){return this.ipStats.public_address},publicInfo(){return this.ipStats.public_info_human}}},ff=(0,ec.Z)(df,[["render",function(e,t,n,r,i,s){return null!=s.address?(li(),pi("section",sf,[null!=s.address?(li(),pi("span",of,"IP")):Ti("v-if",!0),null!=s.address?(li(),pi("span",af,pe(s.address)+"/"+pe(s.maskCdir),1)):Ti("v-if",!0),null!=s.publicAddress?(li(),pi("span",lf,"Pub")):Ti("v-if",!0),null!=s.publicAddress?(li(),pi("span",cf,pe(s.publicAddress),1)):Ti("v-if",!0),null!=s.publicInfo?(li(),pi("span",uf,pe(s.publicInfo),1)):Ti("v-if",!0)])):Ti("v-if",!0)}]]),pf={class:"plugin",id:"irq"},hf={key:0,class:"table-row"},gf=[wi("div",{class:"table-cell text-left title"},"IRQ",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"Rate/s",-1)],mf={class:"table-cell text-left"},bf=wi("div",{class:"table-cell"},null,-1),vf={class:"table-cell"};const yf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.irq},irqs(){return this.stats.map((e=>({irq_line:e.irq_line,irq_rate:e.irq_rate})))}}},wf=(0,ec.Z)(yf,[["render",function(e,t,n,r,i,s){return li(),pi("section",pf,[s.irqs.length>0?(li(),pi("div",hf,gf)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.irqs,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",mf,pe(e.irq_line),1),bf,wi("div",vf,[wi("span",null,pe(e.irq_rate),1)])])))),128))])}]]),xf={key:0,id:"load",class:"plugin"},_f={class:"table"},kf={class:"table-row"},Sf=wi("div",{class:"table-cell text-left title"},"LOAD",-1),Cf={class:"table-cell"},Tf={class:"table-row"},Af=wi("div",{class:"table-cell text-left"},"1 min:",-1),Ef={class:"table-cell"},Of={class:"table-row"},If=wi("div",{class:"table-cell text-left"},"5 min:",-1),Pf={class:"table-row"},Nf=wi("div",{class:"table-cell text-left"},"15 min:",-1);const Lf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.load},view(){return this.data.views.load},cpucore(){return this.stats.cpucore},min1(){return this.stats.min1},min5(){return this.stats.min5},min15(){return this.stats.min15}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Df=(0,ec.Z)(Lf,[["render",function(e,t,n,r,i,s){return null!=s.cpucore?(li(),pi("section",xf,[wi("div",_f,[wi("div",kf,[Sf,wi("div",Cf,pe(s.cpucore)+"-core",1)]),wi("div",Tf,[Af,wi("div",Ef,pe(e.$filters.number(s.min1,2)),1)]),wi("div",Of,[If,wi("div",{class:ce(["table-cell",s.getDecoration("min5")])},pe(e.$filters.number(s.min5,2)),3)]),wi("div",Pf,[Nf,wi("div",{class:ce(["table-cell",s.getDecoration("min15")])},pe(e.$filters.number(s.min15,2)),3)])])])):Ti("v-if",!0)}]]),Mf={id:"mem",class:"plugin"},jf={class:"table"},Rf={class:"table-row"},qf=wi("div",{class:"table-cell text-left title"},"MEM",-1),Bf={class:"table-row"},Uf=wi("div",{class:"table-cell text-left"},"total:",-1),Ff={class:"table-cell"},zf={class:"table-row"},$f=wi("div",{class:"table-cell text-left"},"used:",-1),Hf={class:"table-row"},Vf=wi("div",{class:"table-cell text-left"},"free:",-1),Gf={class:"table-cell"};const Wf={props:{data:{type:Object}},computed:{stats(){return this.data.stats.mem},view(){return this.data.views.mem},percent(){return this.stats.percent},total(){return this.stats.total},used(){return this.stats.used},free(){return this.stats.free}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Zf=(0,ec.Z)(Wf,[["render",function(e,t,n,r,i,s){return li(),pi("section",Mf,[wi("div",jf,[wi("div",Rf,[qf,wi("div",{class:ce(["table-cell",s.getDecoration("percent")])},pe(s.percent)+"%",3)]),wi("div",Bf,[Uf,wi("div",Ff,pe(e.$filters.bytes(s.total)),1)]),wi("div",zf,[$f,wi("div",{class:ce(["table-cell",s.getDecoration("used")])},pe(e.$filters.bytes(s.used,2)),3)]),wi("div",Hf,[Vf,wi("div",Gf,pe(e.$filters.bytes(s.free)),1)])])])}]]),Kf={id:"mem-more",class:"plugin"},Qf={class:"table"},Xf={class:"table-row"},Jf=wi("div",{class:"table-cell text-left"},"active:",-1),Yf={class:"table-cell"},ep={class:"table-row"},tp=wi("div",{class:"table-cell text-left"},"inactive:",-1),np={class:"table-cell"},rp={class:"table-row"},ip=wi("div",{class:"table-cell text-left"},"buffers:",-1),sp={class:"table-cell"},op={class:"table-row"},ap=wi("div",{class:"table-cell text-left"},"cached:",-1),lp={class:"table-cell"};const cp={props:{data:{type:Object}},computed:{stats(){return this.data.stats.mem},active(){return this.stats.active},inactive(){return this.stats.inactive},buffers(){return this.stats.buffers},cached(){return this.stats.cached}}},up=(0,ec.Z)(cp,[["render",function(e,t,n,r,i,s){return li(),pi("section",Kf,[wi("div",Qf,[On(wi("div",Xf,[Jf,wi("div",Yf,pe(e.$filters.bytes(s.active)),1)],512),[[Ds,null!=s.active]]),On(wi("div",ep,[tp,wi("div",np,pe(e.$filters.bytes(s.inactive)),1)],512),[[Ds,null!=s.inactive]]),On(wi("div",rp,[ip,wi("div",sp,pe(e.$filters.bytes(s.buffers)),1)],512),[[Ds,null!=s.buffers]]),On(wi("div",op,[ap,wi("div",lp,pe(e.$filters.bytes(s.cached)),1)],512),[[Ds,null!=s.cached]])])])}]]),dp={id:"memswap",class:"plugin"},fp={class:"table"},pp={class:"table-row"},hp=wi("div",{class:"table-cell text-left title"},"SWAP",-1),gp={class:"table-row"},mp=wi("div",{class:"table-cell text-left"},"total:",-1),bp={class:"table-cell"},vp={class:"table-row"},yp=wi("div",{class:"table-cell text-left"},"used:",-1),wp={class:"table-row"},xp=wi("div",{class:"table-cell text-left"},"free:",-1),_p={class:"table-cell"};const kp={props:{data:{type:Object}},computed:{stats(){return this.data.stats.memswap},view(){return this.data.views.memswap},percent(){return this.stats.percent},total(){return this.stats.total},used(){return this.stats.used},free(){return this.stats.free}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Sp=(0,ec.Z)(kp,[["render",function(e,t,n,r,i,s){return li(),pi("section",dp,[wi("div",fp,[wi("div",pp,[hp,wi("div",{class:ce(["table-cell",s.getDecoration("percent")])},pe(s.percent)+"%",3)]),wi("div",gp,[mp,wi("div",bp,pe(e.$filters.bytes(s.total)),1)]),wi("div",vp,[yp,wi("div",{class:ce(["table-cell",s.getDecoration("used")])},pe(e.$filters.bytes(s.used)),3)]),wi("div",wp,[xp,wi("div",_p,pe(e.$filters.bytes(s.free)),1)])])])}]]),Cp={class:"plugin",id:"network"},Tp={class:"table-row"},Ap=wi("div",{class:"table-cell text-left title"},"NETWORK",-1),Ep={class:"table-cell"},Op={class:"table-cell"},Ip={class:"table-cell"},Pp={class:"table-cell"},Np={class:"table-cell"},Lp={class:"table-cell"},Dp={class:"table-cell"},Mp={class:"table-cell"},jp={class:"table-cell text-left"},Rp={class:"visible-lg-inline"},qp={class:"hidden-lg"},Bp={class:"table-cell"},Up={class:"table-cell"};const Fp={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.network},networks(){const e=this.stats.map((e=>{const t=void 0!==e.alias?e.alias:null;return{interfaceName:e.interface_name,ifname:t||e.interface_name,rx:e.rx,tx:e.tx,cx:e.cx,time_since_update:e.time_since_update,cumulativeRx:e.cumulative_rx,cumulativeTx:e.cumulative_tx,cumulativeCx:e.cumulative_cx}}));return(0,cc.orderBy)(e,["interfaceName"])}}},zp=(0,ec.Z)(Fp,[["render",function(e,t,n,r,i,s){return li(),pi("section",Cp,[wi("div",Tp,[Ap,On(wi("div",Ep,"Rx/s",512),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Op,"Tx/s",512),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Ip,null,512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Pp,"Rx+Tx/s",512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Np,"Rx",512),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Lp,"Tx",512),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Dp,null,512),[[Ds,s.args.network_cumul&&s.args.network_sum]]),On(wi("div",Mp,"Rx+Tx",512),[[Ds,s.args.network_cumul&&s.args.network_sum]])]),(li(!0),pi(ni,null,pr(s.networks,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",jp,[wi("span",Rp,pe(t.ifname),1),wi("span",qp,pe(e.$filters.minSize(t.ifname)),1)]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.rx/t.time_since_update):e.$filters.bits(t.rx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.tx/t.time_since_update):e.$filters.bits(t.tx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Bp,null,512),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cx/t.time_since_update):e.$filters.bits(t.cx/t.time_since_update)),513),[[Ds,!s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeRx):e.$filters.bits(t.cumulativeRx)),513),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeTx):e.$filters.bits(t.cumulativeTx)),513),[[Ds,s.args.network_cumul&&!s.args.network_sum]]),On(wi("div",Up,null,512),[[Ds,s.args.network_cumul&&s.args.network_sum]]),On(wi("div",{class:"table-cell"},pe(s.args.byte?e.$filters.bytes(t.cumulativeCx):e.$filters.bits(t.cumulativeCx)),513),[[Ds,s.args.network_cumul&&s.args.network_sum]])])))),128))])}]]),$p={id:"now",class:"plugin"},Hp={class:"table-row"},Vp={class:"table-cell text-left"};const Gp={props:{data:{type:Object}},computed:{value(){return this.data.stats.now}}},Wp=(0,ec.Z)(Gp,[["render",function(e,t,n,r,i,s){return li(),pi("section",$p,[wi("div",Hp,[wi("div",Vp,pe(s.value),1)])])}]]),Zp={id:"percpu",class:"plugin"},Kp={class:"table-row"},Qp={class:"table-cell text-left title"},Xp={key:0},Jp={class:"table-row"},Yp=wi("div",{class:"table-cell text-left"},"user:",-1),eh={class:"table-row"},th=wi("div",{class:"table-cell text-left"},"system:",-1),nh={class:"table-row"},rh=wi("div",{class:"table-cell text-left"},"idle:",-1),ih={key:0,class:"table-row"},sh=wi("div",{class:"table-cell text-left"},"iowait:",-1),oh={key:1,class:"table-row"},ah=wi("div",{class:"table-cell text-left"},"steal:",-1);const lh={props:{data:{type:Object}},computed:{percpuStats(){return this.data.stats.percpu},cpusChunks(){const e=this.percpuStats.map((e=>({number:e.cpu_number,total:e.total,user:e.user,system:e.system,idle:e.idle,iowait:e.iowait,steal:e.steal})));return(0,cc.chunk)(e,4)}},methods:{getUserAlert:e=>Fo.getAlert("percpu","percpu_user_",e.user),getSystemAlert:e=>Fo.getAlert("percpu","percpu_system_",e.system)}},ch=(0,ec.Z)(lh,[["render",function(e,t,n,r,i,s){return li(),pi("section",Zp,[(li(!0),pi(ni,null,pr(s.cpusChunks,((e,t)=>(li(),pi("div",{class:"table",key:t},[wi("div",Kp,[wi("div",Qp,[0===t?(li(),pi("span",Xp,"PER CPU")):Ti("v-if",!0)]),(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:"table-cell",key:t},pe(e.total)+"% ",1)))),128))]),wi("div",Jp,[Yp,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getUserAlert(e)]),key:t},pe(e.user)+"% ",3)))),128))]),wi("div",eh,[th,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.system)+"% ",3)))),128))]),wi("div",nh,[rh,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:"table-cell",key:t},pe(e.idle)+"% ",1)))),128))]),e[0].iowait?(li(),pi("div",ih,[sh,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.iowait)+"% ",3)))),128))])):Ti("v-if",!0),e[0].steal?(li(),pi("div",oh,[ah,(li(!0),pi(ni,null,pr(e,((e,t)=>(li(),pi("div",{class:ce(["table-cell",s.getSystemAlert(e)]),key:t},pe(e.steal)+"% ",3)))),128))])):Ti("v-if",!0)])))),128))])}]]),uh={class:"plugin",id:"ports"},dh={class:"table-cell text-left"},fh=wi("div",{class:"table-cell"},null,-1),ph={key:0},hh={key:1},gh={key:2},mh={key:3},bh={key:0},vh={key:1},yh={key:2};const wh={props:{data:{type:Object}},computed:{stats(){return this.data.stats.ports},ports(){return this.stats}},methods:{getPortDecoration:e=>null===e.status?"careful":!1===e.status?"critical":null!==e.rtt_warning&&e.status>e.rtt_warning?"warning":"ok",getWebDecoration:e=>null===e.status?"careful":-1===[200,301,302].indexOf(e.status)?"critical":null!==e.rtt_warning&&e.elapsed>e.rtt_warning?"warning":"ok"}},xh=(0,ec.Z)(wh,[["render",function(e,t,n,r,i,s){return li(),pi("section",uh,[(li(!0),pi(ni,null,pr(s.ports,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",dh,[Ti(" prettier-ignore "),Si(" "+pe(e.$filters.minSize(t.description?t.description:t.host+" "+t.port,20)),1)]),fh,t.host?(li(),pi("div",{key:0,class:ce([s.getPortDecoration(t),"table-cell"])},["null"==t.status?(li(),pi("span",ph,"Scanning")):"false"==t.status?(li(),pi("span",hh,"Timeout")):"true"==t.status?(li(),pi("span",gh,"Open")):(li(),pi("span",mh,pe(e.$filters.number(1e3*t.status,0))+"ms",1))],2)):Ti("v-if",!0),t.url?(li(),pi("div",{key:1,class:ce([s.getWebDecoration(t),"table-cell"])},["null"==t.status?(li(),pi("span",bh,"Scanning")):"Error"==t.status?(li(),pi("span",vh,"Error")):(li(),pi("span",yh,"Code "+pe(t.status),1))],2)):Ti("v-if",!0)])))),128))])}]]),_h={key:0},kh={key:1},Sh={key:0,class:"row"},Ch={class:"col-lg-18"};const Th={id:"amps",class:"plugin"},Ah={class:"table"},Eh={key:0,class:"table-cell text-left"},Oh=["innerHTML"];const Ih={props:{data:{type:Object}},computed:{stats(){return this.data.stats.amps},processes(){return this.stats.filter((e=>null!==e.result))}},methods:{getNameDecoration(e){const t=e.count,n=e.countmin,r=e.countmax;let i="ok";return i=t>0?(null===n||t>=n)&&(null===r||t<=r)?"ok":"careful":null===n?"ok":"critical",i}}},Ph=(0,ec.Z)(Ih,[["render",function(e,t,n,r,i,s){return li(),pi("section",Th,[wi("div",Ah,[(li(!0),pi(ni,null,pr(s.processes,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",{class:ce(["table-cell text-left",s.getNameDecoration(t)])},pe(t.name),3),t.regex?(li(),pi("div",Eh,pe(t.count),1)):Ti("v-if",!0),wi("div",{class:"table-cell text-left process-result",innerHTML:e.$filters.nl2br(t.result)},null,8,Oh)])))),128))])])}]]),Nh={id:"processcount",class:"plugin"},Lh=wi("span",{class:"title"},"TASKS",-1),Dh={class:"title"};const Mh={props:{data:{type:Object},sorter:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.processcount},total(){return this.stats.total||0},running(){return this.stats.running||0},sleeping(){return this.stats.sleeping||0},stopped(){return this.stats.stopped||0},thread(){return this.stats.thread||0}}},jh=(0,ec.Z)(Mh,[["render",function(e,t,n,r,i,s){return li(),pi("section",Nh,[Lh,wi("span",null,pe(s.total)+" ("+pe(s.thread)+" thr),",1),wi("span",null,pe(s.running)+" run,",1),wi("span",null,pe(s.sleeping)+" slp,",1),wi("span",null,pe(s.stopped)+" oth",1),wi("span",null,pe(s.args.programs?"Programs":"Threads"),1),wi("span",Dh,pe(n.sorter.auto?"sorted automatically":"sorted"),1),wi("span",null,"by "+pe(n.sorter.getColumnLabel(n.sorter.column)),1)])}]]),Rh={id:"processlist-plugin",class:"plugin"},qh={class:"table"},Bh={class:"table-row"},Uh=wi("div",{class:"table-cell hidden-xs hidden-sm"},"VIRT",-1),Fh=wi("div",{class:"table-cell hidden-xs hidden-sm"},"RES",-1),zh=wi("div",{class:"table-cell"},"PID",-1),$h=wi("div",{class:"table-cell"},"NI",-1),Hh=wi("div",{class:"table-cell"},"S",-1),Vh={class:"table-cell hidden-xs hidden-sm"},Gh={class:"table-cell hidden-xs hidden-sm"},Wh={class:"table-cell"},Zh={class:"table-cell text-left"},Kh={key:0,class:"table-cell hidden-xs hidden-sm"},Qh={key:1,class:"table-cell hidden-xs hidden-sm"},Xh={class:"table-cell text-left hidden-xs hidden-sm"};const Jh={props:{data:{type:Object},sorter:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},config(){return this.store.config||{}},stats(){return this.data.stats.processlist},processes(){const{sorter:e}=this,t=this.data.stats.isWindows,n=(this.stats||[]).map((e=>(e.memvirt="?",e.memres="?",e.memory_info&&(e.memvirt=e.memory_info[1],e.memres=e.memory_info[0]),e.timeplus="?",e.timemillis="?",e.cpu_times&&(e.timeplus=Xu(e.cpu_times),e.timemillis=Qu(e.cpu_times)),null===e.num_threads&&(e.num_threads=-1),null===e.cpu_percent&&(e.cpu_percent=-1),null===e.memory_percent&&(e.memory_percent=-1),e.io_read=null,e.io_write=null,e.io_counters&&(e.io_read=(e.io_counters[0]-e.io_counters[2])/e.time_since_update,e.io_write=(e.io_counters[1]-e.io_counters[3])/e.time_since_update),e.isNice=void 0!==e.nice&&(t&&32!=e.nice||!t&&0!=e.nice),Array.isArray(e.cmdline)&&(e.cmdline=e.cmdline.join(" ").replace(/\n/g," ")),null===e.cmdline&&(e.cmdline=e.name),t&&null!==e.username&&(e.username=(0,cc.last)(e.username.split("\\"))),e)));return(0,cc.orderBy)(n,[e.column].reduce(((e,t)=>("io_counters"===t&&(t=["io_read","io_write"]),e.concat(t))),[]),[e.isReverseColumn(e.column)?"desc":"asc"]).slice(0,this.limit)},ioReadWritePresent(){return(this.stats||[]).some((({io_counters:e})=>e))},limit(){return void 0!==this.config.outputs?this.config.outputs.max_processes_display:void 0}},methods:{getCpuPercentAlert:e=>Fo.getAlert("processlist","processlist_cpu_",e.cpu_percent),getMemoryPercentAlert:e=>Fo.getAlert("processlist","processlist_mem_",e.cpu_percent)}},Yh={components:{GlancesPluginAmps:Ph,GlancesPluginProcesscount:jh,GlancesPluginProcesslist:(0,ec.Z)(Jh,[["render",function(e,t,n,r,i,s){return li(),pi(ni,null,[Ti(" prettier-ignore "),wi("section",Rh,[wi("div",qh,[wi("div",Bh,[wi("div",{class:ce(["table-cell",["sortable","cpu_percent"===n.sorter.column&&"sort"]]),onClick:t[0]||(t[0]=t=>e.$emit("update:sorter","cpu_percent"))}," CPU% ",2),wi("div",{class:ce(["table-cell",["sortable","memory_percent"===n.sorter.column&&"sort"]]),onClick:t[1]||(t[1]=t=>e.$emit("update:sorter","memory_percent"))}," MEM% ",2),Uh,Fh,zh,wi("div",{class:ce(["table-cell text-left",["sortable","username"===n.sorter.column&&"sort"]]),onClick:t[2]||(t[2]=t=>e.$emit("update:sorter","username"))}," USER ",2),wi("div",{class:ce(["table-cell hidden-xs hidden-sm",["sortable","timemillis"===n.sorter.column&&"sort"]]),onClick:t[3]||(t[3]=t=>e.$emit("update:sorter","timemillis"))}," TIME+ ",2),wi("div",{class:ce(["table-cell text-left hidden-xs hidden-sm",["sortable","num_threads"===n.sorter.column&&"sort"]]),onClick:t[4]||(t[4]=t=>e.$emit("update:sorter","num_threads"))}," THR ",2),$h,Hh,On(wi("div",{class:ce(["table-cell hidden-xs hidden-sm",["sortable","io_counters"===n.sorter.column&&"sort"]]),onClick:t[5]||(t[5]=t=>e.$emit("update:sorter","io_counters"))}," IOR/s ",2),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:ce(["table-cell text-left hidden-xs hidden-sm",["sortable","io_counters"===n.sorter.column&&"sort"]]),onClick:t[6]||(t[6]=t=>e.$emit("update:sorter","io_counters"))}," IOW/s ",2),[[Ds,s.ioReadWritePresent]]),wi("div",{class:ce(["table-cell text-left",["sortable","name"===n.sorter.column&&"sort"]]),onClick:t[7]||(t[7]=t=>e.$emit("update:sorter","name"))}," Command ",2)]),(li(!0),pi(ni,null,pr(s.processes,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",{class:ce(["table-cell",s.getCpuPercentAlert(t)])},pe(-1==t.cpu_percent?"?":e.$filters.number(t.cpu_percent,1)),3),wi("div",{class:ce(["table-cell",s.getMemoryPercentAlert(t)])},pe(-1==t.memory_percent?"?":e.$filters.number(t.memory_percent,1)),3),wi("div",Vh,pe(e.$filters.bytes(t.memvirt)),1),wi("div",Gh,pe(e.$filters.bytes(t.memres)),1),wi("div",Wh,pe(t.pid),1),wi("div",Zh,pe(t.username),1),"?"!=t.timeplus?(li(),pi("div",Kh,[On(wi("span",{class:"highlight"},pe(t.timeplus.hours)+"h",513),[[Ds,t.timeplus.hours>0]]),Si(" "+pe(e.$filters.leftPad(t.timeplus.minutes,2,"0"))+":"+pe(e.$filters.leftPad(t.timeplus.seconds,2,"0"))+" ",1),On(wi("span",null,"."+pe(e.$filters.leftPad(t.timeplus.milliseconds,2,"0")),513),[[Ds,t.timeplus.hours<=0]])])):Ti("v-if",!0),"?"==t.timeplus?(li(),pi("div",Qh,"?")):Ti("v-if",!0),wi("div",Xh,pe(-1==t.num_threads?"?":t.num_threads),1),wi("div",{class:ce(["table-cell",{nice:t.isNice}])},pe(e.$filters.exclamation(t.nice)),3),wi("div",{class:ce(["table-cell",{status:"R"==t.status}])},pe(t.status),3),On(wi("div",{class:"table-cell hidden-xs hidden-sm"},pe(e.$filters.bytes(t.io_read)),513),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:"table-cell text-left hidden-xs hidden-sm"},pe(e.$filters.bytes(t.io_write)),513),[[Ds,s.ioReadWritePresent]]),On(wi("div",{class:"table-cell text-left"},pe(t.name),513),[[Ds,s.args.process_short_name]]),On(wi("div",{class:"table-cell text-left"},pe(t.cmdline),513),[[Ds,!s.args.process_short_name]])])))),128))])])],2112)}]])},props:{data:{type:Object}},data:()=>({store:qo,sorter:void 0}),computed:{args(){return this.store.args||{}},sortProcessesKey(){return this.args.sort_processes_key}},watch:{sortProcessesKey:{immediate:!0,handler(e){e&&!["cpu_percent","memory_percent","username","timemillis","num_threads","io_counters","name"].includes(e)||(this.sorter={column:this.args.sort_processes_key||"cpu_percent",auto:!this.args.sort_processes_key,isReverseColumn:function(e){return!["username","name"].includes(e)},getColumnLabel:function(e){return{io_counters:"disk IO",cpu_percent:"CPU consumption",memory_percent:"memory consumption",cpu_times:"process time",username:"user name",name:"process name",timemillis:"process time",None:"None"}[e]||e}})}}}},eg=(0,ec.Z)(Yh,[["render",function(e,t,n,r,i,s){const o=cr("glances-plugin-processcount"),a=cr("glances-plugin-amps"),l=cr("glances-plugin-processlist");return s.args.disable_process?(li(),pi("div",_h,"PROCESSES DISABLED (press 'z' to display)")):(li(),pi("div",kh,[xi(o,{sorter:i.sorter,data:n.data},null,8,["sorter","data"]),s.args.disable_amps?Ti("v-if",!0):(li(),pi("div",Sh,[wi("div",Ch,[xi(a,{data:n.data},null,8,["data"])])])),xi(l,{sorter:i.sorter,data:n.data,"onUpdate:sorter":t[0]||(t[0]=e=>s.args.sort_processes_key=e)},null,8,["sorter","data"])]))}]]),tg={id:"quicklook",class:"plugin"},ng={class:"cpu-name"},rg={class:"table"},ig={key:0,class:"table-row"},sg=wi("div",{class:"table-cell text-left"},"CPU",-1),og={class:"table-cell"},ag={class:"progress"},lg=["aria-valuenow"],cg={class:"table-cell"},ug={class:"table-cell text-left"},dg={class:"table-cell"},fg={class:"progress"},pg=["aria-valuenow"],hg={class:"table-cell"},gg={class:"table-row"},mg=wi("div",{class:"table-cell text-left"},"MEM",-1),bg={class:"table-cell"},vg={class:"progress"},yg=["aria-valuenow"],wg={class:"table-cell"},xg={class:"table-row"},_g=wi("div",{class:"table-cell text-left"},"SWAP",-1),kg={class:"table-cell"},Sg={class:"progress"},Cg=["aria-valuenow"],Tg={class:"table-cell"};const Ag={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.quicklook},view(){return this.data.views.quicklook},mem(){return this.stats.mem},cpu(){return this.stats.cpu},cpu_name(){return this.stats.cpu_name},cpu_hz_current(){return this.stats.cpu_hz_current},cpu_hz(){return this.stats.cpu_hz},swap(){return this.stats.swap},percpus(){return this.stats.percpu.map((({cpu_number:e,total:t})=>({number:e,total:t})))}},methods:{getDecoration(e){if(void 0!==this.view[e])return this.view[e].decoration.toLowerCase()}}},Eg=(0,ec.Z)(Ag,[["render",function(e,t,n,r,i,s){return li(),pi("section",tg,[wi("div",ng,pe(s.cpu_name),1),wi("div",rg,[s.args.percpu?Ti("v-if",!0):(li(),pi("div",ig,[sg,wi("div",og,[wi("div",ag,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("cpu")}`),role:"progressbar","aria-valuenow":s.cpu,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.cpu}%;`)},"   ",14,lg)])]),wi("div",cg,pe(s.cpu)+"%",1)])),s.args.percpu?(li(!0),pi(ni,{key:1},pr(s.percpus,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",ug,"CPU"+pe(e.number),1),wi("div",dg,[wi("div",fg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("cpu")}`),role:"progressbar","aria-valuenow":e.total,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${e.total}%;`)},"   ",14,pg)])]),wi("div",hg,pe(e.total)+"%",1)])))),128)):Ti("v-if",!0),wi("div",gg,[mg,wi("div",bg,[wi("div",vg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("mem")}`),role:"progressbar","aria-valuenow":s.mem,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.mem}%;`)},"   ",14,yg)])]),wi("div",wg,pe(s.mem)+"%",1)]),wi("div",xg,[_g,wi("div",kg,[wi("div",Sg,[wi("div",{class:ce(`progress-bar progress-bar-${s.getDecoration("swap")}`),role:"progressbar","aria-valuenow":s.swap,"aria-valuemin":"0","aria-valuemax":"100",style:ie(`width: ${s.swap}%;`)},"   ",14,Cg)])]),wi("div",Tg,pe(s.swap)+"%",1)])])])}]]),Og={class:"plugin",id:"raid"},Ig={key:0,class:"table-row"},Pg=[wi("div",{class:"table-cell text-left title"},"RAID disks",-1),wi("div",{class:"table-cell"},"Used",-1),wi("div",{class:"table-cell"},"Total",-1)],Ng={class:"table-cell text-left"},Lg={class:"warning"};const Dg={props:{data:{type:Object}},computed:{stats(){return this.data.stats.raid},disks(){const e=Object.entries(this.stats).map((([e,t])=>{const n=Object.entries(t.components).map((([e,t])=>({number:t,name:e})));return{name:e,type:null==t.type?"UNKNOWN":t.type,used:t.used,available:t.available,status:t.status,degraded:t.used0}},methods:{getAlert:e=>e.inactive?"critical":e.degraded?"warning":"ok"}},Mg=(0,ec.Z)(Dg,[["render",function(e,t,n,r,i,s){return li(),pi("section",Og,[s.hasDisks?(li(),pi("div",Ig,Pg)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.disks,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",Ng,[Si(pe(e.type.toUppercase())+" "+pe(e.name)+" ",1),On(wi("div",Lg,"└─ Degraded mode",512),[[Ds,e.degraded]]),On(wi("div",null,"   └─ "+pe(e.config),513),[[Ds,e.degraded]]),On(wi("div",{class:"critical"},"└─ Status "+pe(e.status),513),[[Ds,e.inactive]]),e.inactive?(li(!0),pi(ni,{key:0},pr(e.components,((t,n)=>(li(),pi("div",{key:n},"    "+pe(n===e.components.length-1?"└─":"├─")+" disk "+pe(t.number)+": "+pe(t.name),1)))),128)):Ti("v-if",!0)]),On(wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.used),3),[[Ds,!e.inactive]]),On(wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.available),3),[[Ds,!e.inactive]])])))),128))])}]]),jg={id:"smart",class:"plugin"},Rg=wi("div",{class:"table-row"},[wi("div",{class:"table-cell text-left title"},"SMART disks"),wi("div",{class:"table-cell"}),wi("div",{class:"table-cell"})],-1),qg={class:"table-row"},Bg={class:"table-cell text-left text-truncate"},Ug=wi("div",{class:"table-cell"},null,-1),Fg=wi("div",{class:"table-cell"},null,-1),zg={class:"table-cell text-left"},$g=wi("div",{class:"table-cell"},null,-1),Hg={class:"table-cell text-truncate"};const Vg={props:{data:{type:Object}},computed:{stats(){return this.data.stats.smart},drives(){return(Array.isArray(this.stats)?this.stats:[]).map((e=>{const t=e.DeviceName,n=Object.entries(e).filter((([e])=>"DeviceName"!==e)).sort((([,e],[,t])=>e.namet.name?1:0)).map((([e,t])=>t));return{name:t,details:n}}))}}},Gg=(0,ec.Z)(Vg,[["render",function(e,t,n,r,i,s){return li(),pi("section",jg,[Rg,(li(!0),pi(ni,null,pr(s.drives,((e,t)=>(li(),pi(ni,{key:t},[wi("div",qg,[wi("div",Bg,pe(e.name),1),Ug,Fg]),(li(!0),pi(ni,null,pr(e.details,((e,t)=>(li(),pi("div",{key:t,class:"table-row"},[wi("div",zg,"  "+pe(e.name),1),$g,wi("div",Hg,[wi("span",null,pe(e.raw),1)])])))),128))],64)))),128))])}]]),Wg={class:"plugin",id:"sensors"},Zg={key:0,class:"table-row"},Kg=[wi("div",{class:"table-cell text-left title"},"SENSORS",-1)],Qg={class:"table-cell text-left"},Xg={class:"table-cell"};const Jg={props:{data:{type:Object}},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},stats(){return this.data.stats.sensors},sensors(){return this.stats.filter((e=>!(Array.isArray(e.value)&&0===e.value.length||0===e.value))).map((e=>(this.args.fahrenheit&&"battery"!=e.type&&"fan_speed"!=e.type&&(e.value=parseFloat(1.8*e.value+32).toFixed(1),e.unit="F"),e)))}},methods:{getAlert(e){const t="battery"==e.type?100-e.value:e.value;return Fo.getAlert("sensors","sensors_"+e.type+"_",t)}}},Yg=(0,ec.Z)(Jg,[["render",function(e,t,n,r,i,s){return li(),pi("section",Wg,[s.sensors.length>0?(li(),pi("div",Zg,Kg)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.sensors,((e,t)=>(li(),pi("div",{class:"table-row",key:t},[wi("div",Qg,pe(e.label),1),wi("div",Xg,pe(e.unit),1),wi("div",{class:ce(["table-cell",s.getAlert(e)])},pe(e.value),3)])))),128))])}]]),em={class:"plugin",id:"system"},tm={key:0,class:"critical"},nm={class:"title"},rm={key:1,class:"hidden-xs hidden-sm"},im={key:2,class:"hidden-xs hidden-sm"};const sm={props:{data:{type:Object}},data:()=>({store:qo}),computed:{stats(){return this.data.stats.system},isLinux(){return this.data.isLinux},hostname(){return this.stats.hostname},platform(){return this.stats.platform},os(){return{name:this.stats.os_name,version:this.stats.os_version}},humanReadableName(){return this.stats.hr_name},isDisconnected(){return"FAILURE"===this.store.status}}},om=(0,ec.Z)(sm,[["render",function(e,t,n,r,i,s){return li(),pi("section",em,[s.isDisconnected?(li(),pi("span",tm,"Disconnected from")):Ti("v-if",!0),wi("span",nm,pe(s.hostname),1),s.isLinux?(li(),pi("span",rm," ("+pe(s.humanReadableName)+" / "+pe(s.os.name)+" "+pe(s.os.version)+") ",1)):Ti("v-if",!0),s.isLinux?Ti("v-if",!0):(li(),pi("span",im," ("+pe(s.os.name)+" "+pe(s.os.version)+" "+pe(s.platform)+") ",1))])}]]),am={class:"plugin",id:"uptime"};const lm={props:{data:{type:Object}},computed:{value(){return this.data.stats.uptime}}},cm=(0,ec.Z)(lm,[["render",function(e,t,n,r,i,s){return li(),pi("section",am,[wi("span",null,"Uptime: "+pe(s.value),1)])}]]),um={class:"plugin",id:"wifi"},dm={key:0,class:"table-row"},fm=[wi("div",{class:"table-cell text-left title"},"WIFI",-1),wi("div",{class:"table-cell"},null,-1),wi("div",{class:"table-cell"},"dBm",-1)],pm={class:"table-cell text-left"},hm=wi("div",{class:"table-cell"},null,-1);const gm={props:{data:{type:Object}},computed:{stats(){return this.data.stats.wifi},view(){return this.data.views.wifi},hotspots(){const e=this.stats.map((e=>{if(""!==e.ssid)return{ssid:e.ssid,signal:e.signal,security:e.security}})).filter(Boolean);return(0,cc.orderBy)(e,["ssid"])}},methods:{getDecoration(e,t){if(void 0!==this.view[e.ssid][t])return this.view[e.ssid][t].decoration.toLowerCase()}}},mm={components:{GlancesHelp:tc,GlancesPluginAlert:dc,GlancesPluginCloud:gc,GlancesPluginConnections:qc,GlancesPluginCpu:Pu,GlancesPluginDiskio:Yu,GlancesPluginContainers:_d,GlancesPluginFolders:Od,GlancesPluginFs:Bd,GlancesPluginGpu:rf,GlancesPluginIp:ff,GlancesPluginIrq:wf,GlancesPluginLoad:Df,GlancesPluginMem:Zf,GlancesPluginMemMore:up,GlancesPluginMemswap:Sp,GlancesPluginNetwork:zp,GlancesPluginNow:Wp,GlancesPluginPercpu:ch,GlancesPluginPorts:xh,GlancesPluginProcess:eg,GlancesPluginQuicklook:Eg,GlancesPluginRaid:Mg,GlancesPluginSensors:Yg,GlancesPluginSmart:Gg,GlancesPluginSystem:om,GlancesPluginUptime:cm,GlancesPluginWifi:(0,ec.Z)(gm,[["render",function(e,t,n,r,i,s){return li(),pi("section",um,[s.hotspots.length>0?(li(),pi("div",dm,fm)):Ti("v-if",!0),(li(!0),pi(ni,null,pr(s.hotspots,((t,n)=>(li(),pi("div",{class:"table-row",key:n},[wi("div",pm,[Si(pe(e.$filters.limitTo(t.ssid,20))+" ",1),wi("span",null,pe(t.security),1)]),hm,wi("div",{class:ce(["table-cell",s.getDecoration(t,"signal")])},pe(t.signal),3)])))),128))])}]])},data:()=>({store:qo}),computed:{args(){return this.store.args||{}},data(){return this.store.data||{}},dataLoaded(){return void 0!==this.store.data},hasGpu(){return this.store.data.stats.gpu.length>0},isLinux(){return this.store.data.isLinux},title(){const{data:e}=this,t=e.stats&&e.stats.system&&e.stats.system.hostname||"";return t?`${t} - Glances`:"Glances"}},watch:{title(){document&&(document.title=this.title)}},methods:{setupHotKeys(){Do("a",(()=>{this.store.args.sort_processes_key=null})),Do("c",(()=>{this.store.args.sort_processes_key="cpu_percent"})),Do("m",(()=>{this.store.args.sort_processes_key="memory_percent"})),Do("u",(()=>{this.store.args.sort_processes_key="username"})),Do("p",(()=>{this.store.args.sort_processes_key="name"})),Do("i",(()=>{this.store.args.sort_processes_key="io_counters"})),Do("t",(()=>{this.store.args.sort_processes_key="timemillis"})),Do("shift+A",(()=>{this.store.args.disable_amps=!this.store.args.disable_amps})),Do("d",(()=>{this.store.args.disable_diskio=!this.store.args.disable_diskio})),Do("shift+Q",(()=>{this.store.args.enable_irq=!this.store.args.enable_irq})),Do("f",(()=>{this.store.args.disable_fs=!this.store.args.disable_fs})),Do("j",(()=>{this.store.args.programs=!this.store.args.programs})),Do("k",(()=>{this.store.args.disable_connections=!this.store.args.disable_connections})),Do("n",(()=>{this.store.args.disable_network=!this.store.args.disable_network})),Do("s",(()=>{this.store.args.disable_sensors=!this.store.args.disable_sensors})),Do("2",(()=>{this.store.args.disable_left_sidebar=!this.store.args.disable_left_sidebar})),Do("z",(()=>{this.store.args.disable_process=!this.store.args.disable_process})),Do("/",(()=>{this.store.args.process_short_name=!this.store.args.process_short_name})),Do("shift+D",(()=>{this.store.args.disable_containers=!this.store.args.disable_containers})),Do("b",(()=>{this.store.args.byte=!this.store.args.byte})),Do("shift+B",(()=>{this.store.args.diskio_iops=!this.store.args.diskio_iops})),Do("l",(()=>{this.store.args.disable_alert=!this.store.args.disable_alert})),Do("1",(()=>{this.store.args.percpu=!this.store.args.percpu})),Do("h",(()=>{this.store.args.help_tag=!this.store.args.help_tag})),Do("shift+T",(()=>{this.store.args.network_sum=!this.store.args.network_sum})),Do("shift+U",(()=>{this.store.args.network_cumul=!this.store.args.network_cumul})),Do("shift+F",(()=>{this.store.args.fs_free_space=!this.store.args.fs_free_space})),Do("3",(()=>{this.store.args.disable_quicklook=!this.store.args.disable_quicklook})),Do("6",(()=>{this.store.args.meangpu=!this.store.args.meangpu})),Do("shift+G",(()=>{this.store.args.disable_gpu=!this.store.args.disable_gpu})),Do("5",(()=>{this.store.args.disable_quicklook=!this.store.args.disable_quicklook,this.store.args.disable_cpu=!this.store.args.disable_cpu,this.store.args.disable_mem=!this.store.args.disable_mem,this.store.args.disable_memswap=!this.store.args.disable_memswap,this.store.args.disable_load=!this.store.args.disable_load,this.store.args.disable_gpu=!this.store.args.disable_gpu})),Do("shift+I",(()=>{this.store.args.disable_ip=!this.store.args.disable_ip})),Do("shift+P",(()=>{this.store.args.disable_ports=!this.store.args.disable_ports})),Do("shift+W",(()=>{this.store.args.disable_wifi=!this.store.args.disable_wifi}))}},mounted(){const e=window.__GLANCES__||{},t=isFinite(e["refresh-time"])?parseInt(e["refresh-time"],10):void 0;zo.init(t),this.setupHotKeys()},beforeUnmount(){Do.unbind()}};const bm=((...e)=>{const t=qs().createApp(...e);const{mount:n}=t;return t.mount=e=>{const r=Bs(e);if(!r)return;const i=t._component;L(i)||i.render||i.template||(i.template=r.innerHTML),r.innerHTML="";const s=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t})((0,ec.Z)(mm,[["render",function(e,t,n,r,i,s){const o=cr("glances-help"),a=cr("glances-plugin-system"),l=cr("glances-plugin-ip"),c=cr("glances-plugin-uptime"),u=cr("glances-plugin-cloud"),d=cr("glances-plugin-quicklook"),f=cr("glances-plugin-cpu"),p=cr("glances-plugin-percpu"),h=cr("glances-plugin-gpu"),g=cr("glances-plugin-mem"),m=cr("glances-plugin-mem-more"),b=cr("glances-plugin-memswap"),v=cr("glances-plugin-load"),y=cr("glances-plugin-network"),w=cr("glances-plugin-connections"),x=cr("glances-plugin-wifi"),_=cr("glances-plugin-ports"),k=cr("glances-plugin-diskio"),S=cr("glances-plugin-fs"),C=cr("glances-plugin-irq"),T=cr("glances-plugin-smart"),A=cr("glances-plugin-folders"),E=cr("glances-plugin-raid"),O=cr("glances-plugin-sensors"),I=cr("glances-plugin-now"),P=cr("glances-plugin-containers"),N=cr("glances-plugin-process"),L=cr("glances-plugin-alert");return s.dataLoaded?s.args.help_tag?(li(),hi(o,{key:1})):(li(),pi("main",zs,[wi("div",$s,[wi("div",Hs,[wi("div",Vs,[wi("div",Gs,[xi(a,{data:s.data},null,8,["data"])]),s.args.disable_ip?Ti("v-if",!0):(li(),pi("div",Ws,[xi(l,{data:s.data},null,8,["data"])])),wi("div",Zs,[xi(c,{data:s.data},null,8,["data"])])])])]),wi("div",Ks,[wi("div",Qs,[wi("div",Xs,[wi("div",Js,[xi(u,{data:s.data},null,8,["data"])])])]),wi("div",Ys,[s.args.disable_quicklook?Ti("v-if",!0):(li(),pi("div",eo,[xi(d,{data:s.data},null,8,["data"])])),s.args.disable_cpu||s.args.percpu?Ti("v-if",!0):(li(),pi("div",to,[xi(f,{data:s.data},null,8,["data"])])),!s.args.disable_cpu&&s.args.percpu?(li(),pi("div",no,[xi(p,{data:s.data},null,8,["data"])])):Ti("v-if",!0),!s.args.disable_gpu&&s.hasGpu?(li(),pi("div",ro,[xi(h,{data:s.data},null,8,["data"])])):Ti("v-if",!0),s.args.disable_mem?Ti("v-if",!0):(li(),pi("div",io,[xi(g,{data:s.data},null,8,["data"])])),Ti(" NOTE: display if MEM enabled and GPU disabled "),s.args.disable_mem||!s.args.disable_gpu&&s.hasGpu?Ti("v-if",!0):(li(),pi("div",so,[xi(m,{data:s.data},null,8,["data"])])),s.args.disable_memswap?Ti("v-if",!0):(li(),pi("div",oo,[xi(b,{data:s.data},null,8,["data"])])),s.args.disable_load?Ti("v-if",!0):(li(),pi("div",ao,[xi(v,{data:s.data},null,8,["data"])]))])]),wi("div",lo,[wi("div",co,[s.args.disable_left_sidebar?Ti("v-if",!0):(li(),pi("div",uo,[wi("div",fo,[s.args.disable_network?Ti("v-if",!0):(li(),hi(y,{key:0,id:"plugin-network",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.isLinux&&!s.args.disable_connections?(li(),hi(w,{key:1,id:"plugin-connections",class:"plugin table-row-group",data:s.data},null,8,["data"])):Ti("v-if",!0),s.args.disable_wifi?Ti("v-if",!0):(li(),hi(x,{key:2,id:"plugin-wifi",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_ports?Ti("v-if",!0):(li(),hi(_,{key:3,id:"plugin-ports",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_diskio?Ti("v-if",!0):(li(),hi(k,{key:4,id:"plugin-diskio",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_fs?Ti("v-if",!0):(li(),hi(S,{key:5,id:"plugin-fs",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_irq?Ti("v-if",!0):(li(),hi(C,{key:6,id:"plugin-irq",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_smart?Ti("v-if",!0):(li(),hi(T,{key:7,id:"plugin-smart",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_folders?Ti("v-if",!0):(li(),hi(A,{key:8,id:"plugin-folders",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.raid?Ti("v-if",!0):(li(),hi(E,{key:9,id:"plugin-raid",class:"plugin table-row-group",data:s.data},null,8,["data"])),s.args.disable_sensors?Ti("v-if",!0):(li(),hi(O,{key:10,id:"plugin-sensors",class:"plugin table-row-group",data:s.data},null,8,["data"])),xi(I,{id:"plugin-now",class:"plugin table-row-group",data:s.data},null,8,["data"])])])),wi("div",po,[s.args.disable_containers?Ti("v-if",!0):(li(),hi(P,{key:0,data:s.data},null,8,["data"])),xi(N,{data:s.data},null,8,["data"]),s.args.disable_alert?Ti("v-if",!0):(li(),hi(L,{key:1,data:s.data},null,8,["data"]))])])])])):(li(),pi("div",Us,Fs))}]]));bm.config.globalProperties.$filters=e,bm.mount("#app")})()})(); \ No newline at end of file diff --git a/glances/plugins/ports/model.py b/glances/plugins/ports/model.py index 454672f8..778117f5 100644 --- a/glances/plugins/ports/model.py +++ b/glances/plugins/ports/model.py @@ -76,11 +76,6 @@ class PluginModel(GlancesPluginModel): # Run ports scanner self._thread = ThreadScanner(self.stats) self._thread.start() - # # Restart timer - # if len(self.stats) > 0: - # self.timer_ports = Timer(self.stats[0]['refresh']) - # else: - # self.timer_ports = Timer(0) else: # Not available in SNMP mode pass diff --git a/glances/plugins/wifi/model.py b/glances/plugins/wifi/model.py index 37784f19..7d13fcaf 100644 --- a/glances/plugins/wifi/model.py +++ b/glances/plugins/wifi/model.py @@ -9,7 +9,15 @@ """Wifi plugin. -Stats are retreived from the /proc/net/wireless file (Linux only). +Stats are retreived from the nmcli command line (Linux only): + +# nmcli -t -f active,ssid,signal,security,chan dev wifi + +# nmcli -t -f active,ssid,signal dev wifi +no:Livebox-C820:77 +yes:Livebox-C820:72 + +or the /proc/net/wireless file (Linux only): # cat /proc/net/wireless Inter-| sta-| Quality | Discarded packets | Missed | WE @@ -18,19 +26,29 @@ wlp2s0: 0000 51. -59. -256 0 0 0 0 5881 0 """ import operator +from shutil import which +import threading +import time from glances.globals import nativestr, file_exists from glances.plugins.plugin.model import GlancesPluginModel +from glances.secure import secure_popen from glances.logger import logger -WIRELESS_FILE = '/proc/net/wireless' +# Test if the nmcli command exists and is executable +# it allows to get the list of the available hotspots +NMCLI_COMMAND = which('nmcli') +NMCLI_ARGS = '-t -f active,ssid,signal,security dev wifi' +nmcli_command_exists = NMCLI_COMMAND is not None -if file_exists(WIRELESS_FILE): - wireless_file_exists = True - logger.debug("Wifi plugin is enabled (%s file found)" % WIRELESS_FILE) -else: - wireless_file_exists = False - logger.debug("Wifi plugin is disabled (no %s file found)" % WIRELESS_FILE) +# Backup solution is to use the /proc/net/wireless file +# but it only give signal information about the current hotspot +WIRELESS_FILE = '/proc/net/wireless' +wireless_file_exists = file_exists(WIRELESS_FILE) + +if not nmcli_command_exists and not wireless_file_exists: + logger.debug("Wifi plugin is disabled (no %s command or %s file found)" % ('nmcli', + WIRELESS_FILE)) class PluginModel(GlancesPluginModel): @@ -46,6 +64,16 @@ class PluginModel(GlancesPluginModel): # We want to display the stat in the curse interface self.display_curse = True + # Global Thread running all the scans + self._thread = None + + def exit(self): + """Overwrite the exit method to close threads.""" + if self._thread is not None: + self._thread.stop() + # Call the father class + super(PluginModel, self).exit() + def get_key(self): """Return the key of the list. @@ -66,12 +94,23 @@ class PluginModel(GlancesPluginModel): stats = self.get_init_value() # Exist if we can not grab the stats - if not wireless_file_exists: + if not nmcli_command_exists and not wireless_file_exists: return stats - if self.input_method == 'local': - # Update stats using /proc/net/wireless file - + if self.input_method == 'local' and nmcli_command_exists: + # Only refresh if there is not other scanning thread + if self._thread is None: + thread_is_running = False + else: + thread_is_running = self._thread.is_alive() + if not thread_is_running: + # Run hotspot scanner thanks to the nmcli command + self._thread = ThreadHotspot(self.get_refresh_time()) + self._thread.start() + # Get the result (or [] if the scan is ongoing) + stats = self._thread.stats + elif self.input_method == 'local' and wireless_file_exists: + # As a backup solution, use the /proc/net/wireless file with open(WIRELESS_FILE, 'r') as f: # The first two lines are header f.readline() @@ -86,8 +125,7 @@ class PluginModel(GlancesPluginModel): 'key': self.get_key(), 'ssid': wifi_stats[0][:-1], 'signal': float(wifi_stats[3]), - 'quality': float(wifi_stats[2]), - 'noise': float(wifi_stats[4]), + 'security': '' }) # Next line wifi_stats = f.readline() @@ -133,9 +171,6 @@ class PluginModel(GlancesPluginModel): # Alert on signal thresholds for i in self.stats: self.views[i[self.get_key()]]['signal']['decoration'] = self.get_alert(i['signal']) - self.views[i[self.get_key()]]['quality']['decoration'] = self.views[i[self.get_key()]]['signal'][ - 'decoration' - ] def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" @@ -167,9 +202,11 @@ class PluginModel(GlancesPluginModel): hotspot_name = i['ssid'] # Cut hotspot_name if it is too long if len(hotspot_name) > if_name_max_width: - hotspot_name = '_' + hotspot_name[-if_name_max_width + 1:] + hotspot_name = '_' + hotspot_name[-if_name_max_width - len(i['security']) + 1:] # Add the new hotspot to the message - msg = '{:{width}}'.format(nativestr(hotspot_name), width=if_name_max_width) + msg = '{:{width}} {security}'.format(nativestr(hotspot_name), + width=if_name_max_width - len(i['security']) - 1, + security=i['security']) ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format( i['signal'], @@ -179,3 +216,57 @@ class PluginModel(GlancesPluginModel): ) return ret + + +class ThreadHotspot(threading.Thread): + """ + Specific thread for the Wifi hotspot scanner. + """ + + def __init__(self, refresh_time=2): + """Init the class.""" + super(ThreadHotspot, self).__init__() + # Refresh time + self.refresh_time = refresh_time + # Event needed to stop properly the thread + self._stopper = threading.Event() + # Is part of Ports plugin + self.plugin_name = "wifi" + + def run(self): + """Get hotspots stats using the nmcli command line""" + while not self.stopped(): + # Run the nmcli command + nmcli_raw = secure_popen(NMCLI_COMMAND + ' ' + NMCLI_ARGS).split('\n') + nmcli_result = [] + for h in nmcli_raw: + h = h.split(':') + if len(h) != 4 or h[0] != 'yes': + # Do not process the line if it is not the active hotspot + continue + nmcli_result.append({ + 'key': 'ssid', + 'ssid': h[1], + 'signal': -float(h[2]), + 'security': h[3] + }) + self.thread_stats = nmcli_result + # Wait refresh time until next scan + # Note: nmcli cache the result for x seconds + time.sleep(self.refresh_time) + + @property + def stats(self): + """Stats getter.""" + if hasattr(self, 'thread_stats'): + return self.thread_stats + else: + return [] + + def stop(self, timeout=None): + """Stop the thread.""" + self._stopper.set() + + def stopped(self): + """Return True is the thread is stopped.""" + return self._stopper.is_set()