From b28263855bc3deb086d7ee0c55782405f00ee723 Mon Sep 17 00:00:00 2001 From: nicolargo Date: Tue, 25 Jul 2023 16:04:38 +0200 Subject: [PATCH] Wifi plugin is back again (only current hotspot using the nmcli command line or the current wifi interface using the /proc/net/wireless file - Related to #1377 --- conf/glances.conf | 4 - docs/_static/wifi.png | Bin 8692 -> 23135 bytes docs/_static/wifi2.png | Bin 0 -> 3522 bytes docs/aoa/wifi.rst | 18 +- docs/api.rst | 326 ++++++++---------- docs/man/glances.1 | 2 +- .../static/js/components/plugin-wifi.vue | 4 + glances/outputs/static/public/glances.js | 2 +- glances/plugins/ports/model.py | 5 - glances/plugins/wifi/model.py | 129 ++++++- 10 files changed, 275 insertions(+), 215 deletions(-) create mode 100644 docs/_static/wifi2.png 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 328c556ebfb1a06873583ef5d4722f1aceccd87a..954e90762e5c8b64d6d3d7421e487e032dbd041e 100644 GIT binary patch literal 23135 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"@H4S}6aSKNY`#z1w48 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 XU!042g1>xf!Wf{YHYRo8yHEZH+r+k) literal 0 HcmV?d00001 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()