Add health retention cleanup

This commit is contained in:
AppFactory Bot
2026-05-29 12:04:43 +02:00
parent 1563474120
commit 930e402326
+19
View File
@@ -11,6 +11,7 @@ DB_FILE = Path("/opt/appfactory/data/appfactory/appfactory.db")
CHECK_INTERVAL_SECONDS = int(os.getenv("APPFACTORY_MONITOR_INTERVAL_SECONDS", "30")) CHECK_INTERVAL_SECONDS = int(os.getenv("APPFACTORY_MONITOR_INTERVAL_SECONDS", "30"))
REQUEST_TIMEOUT_SECONDS = int(os.getenv("APPFACTORY_MONITOR_TIMEOUT_SECONDS", "5")) REQUEST_TIMEOUT_SECONDS = int(os.getenv("APPFACTORY_MONITOR_TIMEOUT_SECONDS", "5"))
HEALTH_RETENTION_DAYS = int(os.getenv("APPFACTORY_HEALTH_RETENTION_DAYS", "7"))
CORE_SERVICES = { CORE_SERVICES = {
"appfactory-portal": "http://appfactory-portal:9100/health", "appfactory-portal": "http://appfactory-portal:9100/health",
@@ -54,6 +55,21 @@ def get_app_services():
return services return services
def cleanup_old_health_records():
con = get_connection()
con.execute(
"""
DELETE FROM service_health
WHERE checked_at < datetime('now', ?)
""",
(f"-{HEALTH_RETENTION_DAYS} days",),
)
con.commit()
con.close()
def save_health_result( def save_health_result(
service_id: str, service_id: str,
status: str, status: str,
@@ -129,6 +145,8 @@ def check_service(service_id: str, url: str):
def run_check_cycle(): def run_check_cycle():
cleanup_old_health_records()
services = {} services = {}
services.update(CORE_SERVICES) services.update(CORE_SERVICES)
services.update(get_app_services()) services.update(get_app_services())
@@ -170,6 +188,7 @@ def health():
"status": "ok", "status": "ok",
"interval_seconds": CHECK_INTERVAL_SECONDS, "interval_seconds": CHECK_INTERVAL_SECONDS,
"timeout_seconds": REQUEST_TIMEOUT_SECONDS, "timeout_seconds": REQUEST_TIMEOUT_SECONDS,
"retention_days": HEALTH_RETENTION_DAYS,
} }