الملفات
ghaymah-exam-moustafa-medha…/q3-cicd/app.py
2026-07-29 20:39:34 +00:00

71 أسطر
1.4 KiB
Python

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)