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()