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",
"services": [
{
@ -11,9 +11,9 @@
301,
302
],
"status": "degraded",
"status": "down",
"status_code": 403,
"response_time_ms": 641,
"response_time_ms": 72,
"error": null
},
{
@ -27,7 +27,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 1589,
"response_time_ms": 210,
"error": null
},
{
@ -41,7 +41,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 1133,
"response_time_ms": 521,
"error": null
},
{
@ -55,7 +55,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 518,
"response_time_ms": 85,
"error": null
},
{
@ -69,7 +69,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 564,
"response_time_ms": 90,
"error": null
},
{
@ -83,7 +83,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 684,
"response_time_ms": 36,
"error": null
},
{
@ -97,7 +97,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 595,
"response_time_ms": 33,
"error": null
},
{
@ -111,7 +111,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 1184,
"response_time_ms": 106,
"error": null
},
{
@ -125,7 +125,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 1201,
"response_time_ms": 163,
"error": null
},
{
@ -139,7 +139,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 504,
"response_time_ms": 91,
"error": null
},
{
@ -153,7 +153,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 709,
"response_time_ms": 85,
"error": null
},
{
@ -165,7 +165,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 481,
"response_time_ms": 98,
"error": null
},
{
@ -177,7 +177,7 @@
],
"status": "up",
"status_code": 200,
"response_time_ms": 486,
"response_time_ms": 91,
"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]}
ms = round((time.time() - start) * 1000)
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: