Edit code and Dockerfile
هذا الالتزام موجود في:
51
q5-mithal-monitor/app.py
Normal file
51
q5-mithal-monitor/app.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from flask import Flask, send_file, jsonify
|
||||
import threading
|
||||
import time
|
||||
import json
|
||||
import os
|
||||
|
||||
from monitor import collect_metrics
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
def monitor_loop():
|
||||
while True:
|
||||
try:
|
||||
collect_metrics()
|
||||
print("Metrics updated.")
|
||||
except Exception as e:
|
||||
print("Monitor error:", e)
|
||||
|
||||
time.sleep(60)
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def dashboard():
|
||||
return send_file("dashboard.html")
|
||||
|
||||
|
||||
@app.route("/metrics.json")
|
||||
def metrics():
|
||||
if os.path.exists("metrics.json"):
|
||||
with open("metrics.json") as f:
|
||||
return jsonify(json.load(f))
|
||||
|
||||
return jsonify({
|
||||
"uptime": 0,
|
||||
"last_check": {},
|
||||
"history": [],
|
||||
"latency_chart": []
|
||||
})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Run one check immediately
|
||||
collect_metrics()
|
||||
|
||||
# Start background monitoring
|
||||
thread = threading.Thread(target=monitor_loop, daemon=True)
|
||||
thread.start()
|
||||
|
||||
# Start Flask
|
||||
app.run(host="0.0.0.0", port=8080)
|
||||
المرجع في مشكلة جديدة
حظر مستخدم