Skip to content

Commit 1fb2e43

Browse files
committed
Don't log successful healthchecks and clean up
1 parent db4ceff commit 1fb2e43

File tree

4 files changed

+60
-12
lines changed

4 files changed

+60
-12
lines changed

astra_app/config/settings.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import datetime
2+
import logging
23
import os
34
import sys
45
from pathlib import Path
@@ -684,10 +685,22 @@ def _parse_email_url(email_url: str) -> dict[str, Any]:
684685

685686
# Logging
686687
# Ensure app logs (including FreeIPA integration) are visible in container stdout.
688+
class HealthEndpointFilter(logging.Filter):
689+
def filter(self, record: logging.LogRecord) -> bool:
690+
message = record.getMessage()
691+
if "/healthz" in message or "/readyz" in message:
692+
return " 200 " not in message
693+
return True
694+
695+
687696
LOGGING = {
688697
'version': 1,
689698
'disable_existing_loggers': False,
690-
'filters': {},
699+
'filters': {
700+
'health_endpoint': {
701+
'()': 'config.settings.HealthEndpointFilter',
702+
},
703+
},
691704
'formatters': {
692705
'console': {
693706
'format': '[{asctime}] {levelname} {name}: {message}',
@@ -723,6 +736,7 @@ def _parse_email_url(email_url: str) -> dict[str, Any]:
723736
'django.server': {
724737
'handlers': ['console'],
725738
'level': 'INFO',
739+
'filters': ['health_endpoint'],
726740
'propagate': False,
727741
},
728742
# Django security events
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from __future__ import annotations
2+
3+
import logging
4+
5+
from django.test import SimpleTestCase
6+
7+
8+
class LoggingFilterTests(SimpleTestCase):
9+
def test_health_endpoint_filter(self) -> None:
10+
from config.settings import HealthEndpointFilter
11+
12+
filt = HealthEndpointFilter()
13+
14+
record_ok = logging.LogRecord(
15+
name="django.server",
16+
level=logging.INFO,
17+
pathname=__file__,
18+
lineno=1,
19+
msg='"GET /healthz HTTP/1.1" 200 12',
20+
args=(),
21+
exc_info=None,
22+
)
23+
self.assertFalse(filt.filter(record_ok))
24+
25+
record_error = logging.LogRecord(
26+
name="django.server",
27+
level=logging.INFO,
28+
pathname=__file__,
29+
lineno=1,
30+
msg='"GET /healthz HTTP/1.1" 503 12',
31+
args=(),
32+
exc_info=None,
33+
)
34+
self.assertTrue(filt.filter(record_error))
35+
36+
record_other = logging.LogRecord(
37+
name="django.server",
38+
level=logging.INFO,
39+
pathname=__file__,
40+
lineno=1,
41+
msg='"GET /users HTTP/1.1" 200 12',
42+
args=(),
43+
exc_info=None,
44+
)
45+
self.assertTrue(filt.filter(record_other))

astra_app/healthcheck_server.py

Lines changed: 0 additions & 8 deletions
This file was deleted.

infra/systemd/Caddyfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,5 @@ astra.almalinux.org {
1111
lb_retries 2
1212

1313
health_uri /readyz
14-
health_interval 10s
15-
health_timeout 5s
16-
health_up_status 200
1714
}
1815
}

0 commit comments

Comments
 (0)