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