1
0

adds stat collector

This commit is contained in:
2024-12-05 22:29:15 +01:00
parent 56c59a224f
commit ec6615a007
3 changed files with 188 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env python3
import time
import configparser
import os
from lib.statscollector import StatsCollector
def get_config():
config = configparser.ConfigParser()
config_home = os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config"))
config_path = os.path.join(config_home, "stats-collector", "config.ini")
if not os.path.exists(config_path):
os.makedirs(os.path.dirname(config_path), exist_ok=True)
config['DEFAULT'] = {
'port': '5747',
'interval': '60'
}
config['localhost'] = {
'host': 'localhost',
'displayname': 'Local System'
}
with open(config_path, 'w') as f:
config.write(f)
config.read(config_path)
return config
def main():
config = get_config()
collector = StatsCollector()
default_port = int(config['DEFAULT']['port'])
interval = int(config['DEFAULT']['interval'])
def collect_all():
for section in config.sections():
host = config[section]['host']
port = int(config[section].get('port', default_port))
collector.collect_from_host(host, port)
if interval > 0:
print(f"Starting continuous collection every {interval} seconds...")
while True:
collect_all()
time.sleep(interval)
else:
collect_all()
if __name__ == '__main__':
main()