fix(checker): 4xx/5xx responses count as down not degraded

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OliverGiertz 2026-04-06 17:50:43 +00:00
parent 77a5da8a2d
commit 94da86f573
2 changed files with 18 additions and 16 deletions

View file

@ -1,5 +1,5 @@
{ {
"generated_at": "2026-04-06T17:49:58Z", "generated_at": "2026-04-06T17:50:59Z",
"overall": "degraded", "overall": "degraded",
"services": [ "services": [
{ {
@ -11,9 +11,9 @@
301, 301,
302 302
], ],
"status": "degraded", "status": "down",
"status_code": 403, "status_code": 403,
"response_time_ms": 641, "response_time_ms": 72,
"error": null "error": null
}, },
{ {
@ -27,7 +27,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 1589, "response_time_ms": 210,
"error": null "error": null
}, },
{ {
@ -41,7 +41,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 1133, "response_time_ms": 521,
"error": null "error": null
}, },
{ {
@ -55,7 +55,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 518, "response_time_ms": 85,
"error": null "error": null
}, },
{ {
@ -69,7 +69,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 564, "response_time_ms": 90,
"error": null "error": null
}, },
{ {
@ -83,7 +83,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 684, "response_time_ms": 36,
"error": null "error": null
}, },
{ {
@ -97,7 +97,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 595, "response_time_ms": 33,
"error": null "error": null
}, },
{ {
@ -111,7 +111,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 1184, "response_time_ms": 106,
"error": null "error": null
}, },
{ {
@ -125,7 +125,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 1201, "response_time_ms": 163,
"error": null "error": null
}, },
{ {
@ -139,7 +139,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 504, "response_time_ms": 91,
"error": null "error": null
}, },
{ {
@ -153,7 +153,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 709, "response_time_ms": 85,
"error": null "error": null
}, },
{ {
@ -165,7 +165,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 481, "response_time_ms": 98,
"error": null "error": null
}, },
{ {
@ -177,7 +177,7 @@
], ],
"status": "up", "status": "up",
"status_code": 200, "status_code": 200,
"response_time_ms": 486, "response_time_ms": 91,
"error": null "error": null
} }
], ],

View file

@ -64,7 +64,9 @@ def check_http(url: str, expected: list[int]) -> dict:
return {"status": "down", "status_code": None, "response_time_ms": None, "error": str(e)[:80]} return {"status": "down", "status_code": None, "response_time_ms": None, "error": str(e)[:80]}
ms = round((time.time() - start) * 1000) ms = round((time.time() - start) * 1000)
up = code in expected up = code in expected
return {"status": "up" if up else "degraded", "status_code": code, "response_time_ms": ms, "error": None} # 4xx/5xx server errors count as down, not just degraded
status = "up" if up else ("down" if code >= 400 else "degraded")
return {"status": status, "status_code": code, "response_time_ms": ms, "error": None}
def check_ssl(domain: str) -> dict: def check_ssl(domain: str) -> dict: