diff options
author | John Estabrook <jestabro@vyos.io> | 2024-06-21 11:37:52 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-21 11:37:52 -0500 |
commit | 569b29eafda7073f95784786cf34387df53f2b35 (patch) | |
tree | 9bf45a09b006787e4b8f73eff9e610816b3aba21 /python | |
parent | 9428146485dca8c3cdadce25f321bb7d570c43b8 (diff) | |
parent | d91fa43fd261f0b6de9a6a6a664ad06ab9c05886 (diff) | |
download | vyos-1x-569b29eafda7073f95784786cf34387df53f2b35.tar.gz vyos-1x-569b29eafda7073f95784786cf34387df53f2b35.zip |
Merge pull request #3684 from dmbaturin/T6498-uptime-helpers
op mode: T6498: move uptime helpers to vyos.utils.system
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/utils/system.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/python/vyos/utils/system.py b/python/vyos/utils/system.py index 55813a5f7..f427032a4 100644 --- a/python/vyos/utils/system.py +++ b/python/vyos/utils/system.py @@ -1,4 +1,4 @@ -# Copyright 2023 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2023-2024 VyOS maintainers and contributors <maintainers@vyos.io> # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -98,3 +98,33 @@ def load_as_module(name: str, path: str): mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) return mod + +def get_uptime_seconds(): + """ Returns system uptime in seconds """ + from re import search + from vyos.utils.file import read_file + + data = read_file("/proc/uptime") + seconds = search(r"([0-9\.]+)\s", data).group(1) + res = int(float(seconds)) + + return res + +def get_load_averages(): + """ Returns load averages for 1, 5, and 15 minutes as a dict """ + from re import search + from vyos.utils.file import read_file + from vyos.utils.cpu import get_core_count + + data = read_file("/proc/loadavg") + matches = search(r"\s*(?P<one>[0-9\.]+)\s+(?P<five>[0-9\.]+)\s+(?P<fifteen>[0-9\.]+)\s*", data) + + core_count = get_core_count() + + res = {} + res[1] = float(matches["one"]) / core_count + res[5] = float(matches["five"]) / core_count + res[15] = float(matches["fifteen"]) / core_count + + return res + |