adding task files
هذا الالتزام موجود في:
70
q1-deploy-monitor/app.py
Normal file
70
q1-deploy-monitor/app.py
Normal file
@@ -0,0 +1,70 @@
|
||||
from flask import Flask, jsonify, render_template, request
|
||||
import time
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
# Application start time
|
||||
start_time = time.time()
|
||||
|
||||
# Metrics
|
||||
request_count = 0
|
||||
last_response_time = 0
|
||||
|
||||
|
||||
@app.before_request
|
||||
def before_request():
|
||||
request.start_time = time.perf_counter()
|
||||
|
||||
|
||||
@app.after_request
|
||||
def after_request(response):
|
||||
global request_count
|
||||
global last_response_time
|
||||
|
||||
request_count += 1
|
||||
last_response_time = round(
|
||||
(time.perf_counter() - request.start_time) * 1000, 2
|
||||
)
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def home():
|
||||
return render_template("dashboard.html")
|
||||
|
||||
|
||||
@app.route("/health")
|
||||
def health():
|
||||
return jsonify({
|
||||
"status": "UP",
|
||||
"message": "Application is healthy",
|
||||
"uptime_seconds": round(time.time() - start_time, 2),
|
||||
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
|
||||
"version": "1.0.0"
|
||||
}), 200
|
||||
|
||||
|
||||
@app.route("/metrics")
|
||||
def metrics():
|
||||
return jsonify({
|
||||
"status": "UP",
|
||||
"requests": request_count,
|
||||
"response_time_ms": last_response_time,
|
||||
"uptime_seconds": round(time.time() - start_time, 2)
|
||||
})
|
||||
|
||||
|
||||
@app.route("/api/info")
|
||||
def api_info():
|
||||
return jsonify({
|
||||
"application": "Ghaymah SRE API",
|
||||
"language": "Python",
|
||||
"framework": "Flask",
|
||||
"version": "1.0.0",
|
||||
"author": "Moustafa Medhat"
|
||||
})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(host="0.0.0.0", port=8080)
|
||||
المرجع في مشكلة جديدة
حظر مستخدم