ZKT26/noc-docker/backend/app.py
2026-03-31 22:49:35 +02:00

47 lines
1.1 KiB
Python

from flask import Flask, jsonify, request
import sqlite3
import time
app = Flask(__name__)
DB = "/data/metrics.db"
def init_db():
conn = sqlite3.connect(DB)
c = conn.cursor()
c.execute("""
CREATE TABLE IF NOT EXISTS metrics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
target TEXT,
latency REAL,
status TEXT,
timestamp TEXT
)
""")
conn.commit()
conn.close()
@app.route("/report", methods=["POST"])
def report():
data = request.json
conn = sqlite3.connect(DB)
c = conn.cursor()
c.execute("INSERT INTO metrics (target, latency, status, timestamp) VALUES (?, ?, ?, ?)",
(data["target"], data["latency"], data["status"], time.ctime()))
conn.commit()
conn.close()
return {"message": "stored"}
@app.route("/metrics")
def metrics():
conn = sqlite3.connect(DB)
c = conn.cursor()
c.execute("SELECT target, latency, status, timestamp FROM metrics ORDER BY id DESC LIMIT 20")
rows = c.fetchall()
conn.close()
return jsonify(rows)
if __name__ == "__main__":
init_db()
app.run(host="0.0.0.0", port=5000)