From 3bc453a56cc047d255c3ade5b77fb25513b86439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= <40151420+ldericher@users.noreply.github.com> Date: Wed, 30 Aug 2023 23:49:07 +0000 Subject: [PATCH] preliminary metrics "CPU" and "DISK" --- .vscode/launch.json | 2 +- kiwi_simple_metrics/main.py | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index b95c351..4f55446 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,7 +11,7 @@ "module": "kiwi_simple_metrics.main", "env": { "METRIC_DISK__THRESHOLD": "85", // workaround! - "METRIC_DISK__PARAMS": "[\"/var\", \"/\"]", + "METRIC_DISK__PARAMS": "[\"/var\", \"/\", \"/dev\"]", }, "justMyCode": true } diff --git a/kiwi_simple_metrics/main.py b/kiwi_simple_metrics/main.py index c4b8b58..20b6edb 100644 --- a/kiwi_simple_metrics/main.py +++ b/kiwi_simple_metrics/main.py @@ -1,12 +1,39 @@ +import os +import shutil + import psutil from .settings import SETTINGS def main() -> None: - print(psutil.cpu_percent(interval=1)) + # env parameters print(SETTINGS.model_dump()) + # CPU metric + print(psutil.cpu_percent(interval=1)) + + # MEM metric + + # DISK metric + # TODO test this using timeit + for path in SETTINGS.disk.params: + try: + sv = os.statvfs(path) + percent = sv.f_bavail / sv.f_blocks * 100 + except ZeroDivisionError: + percent = 0 + + print(f"{path} Free (sv): {percent:.2f} %") + + try: + total, _, free = shutil.disk_usage(path) + percent = free / total * 100 + except ZeroDivisionError: + percent = 0 + + print(f"{path} Free (du): {percent:.2f} %") + if __name__ == "__main__": main()