preliminary metrics "CPU" and "DISK"

This commit is contained in:
Jörn-Michael Miehe 2023-08-30 23:49:07 +00:00
parent a8627bad84
commit 3bc453a56c
2 changed files with 29 additions and 2 deletions

2
.vscode/launch.json vendored
View file

@ -11,7 +11,7 @@
"module": "kiwi_simple_metrics.main", "module": "kiwi_simple_metrics.main",
"env": { "env": {
"METRIC_DISK__THRESHOLD": "85", // workaround! "METRIC_DISK__THRESHOLD": "85", // workaround!
"METRIC_DISK__PARAMS": "[\"/var\", \"/\"]", "METRIC_DISK__PARAMS": "[\"/var\", \"/\", \"/dev\"]",
}, },
"justMyCode": true "justMyCode": true
} }

View file

@ -1,12 +1,39 @@
import os
import shutil
import psutil import psutil
from .settings import SETTINGS from .settings import SETTINGS
def main() -> None: def main() -> None:
print(psutil.cpu_percent(interval=1)) # env parameters
print(SETTINGS.model_dump()) 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__": if __name__ == "__main__":
main() main()