from flask import Flask, jsonify
from aiva.monitoring.system_monitor import SystemMonitor
import threading

app = Flask(__name__)
system_monitor = SystemMonitor()

@app.route('/metrics', methods=['GET'])
def get_system_metrics():
    metrics = system_monitor.get_metrics()
    return jsonify(metrics)


def start_monitor():
    system_monitor.start()


def shutdown_monitor():
    system_monitor.stop()


if __name__ == '__main__':
    monitor_thread = threading.Thread(target=start_monitor)
    monitor_thread.daemon = True
    monitor_thread.start()

    try:
        app.run(debug=False, host='0.0.0.0', port=5000)
    finally:
        shutdown_monitor()