Backend — observability - xxriny/KNU-PROJECT GitHub Wiki
1. backend/observability/init.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 1–8 | re-export | get_logger, configure_logging, NODE_LATENCY, NODE_FAILURE, track_node, make_metrics_app |
2. backend/observability/logger.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 14 | _ensure_configured() |
structlog 단회 설정(JSON/dev 렌더러 자동 전환) |
| 35 | configure_logging() |
로깅 초기화 진입점 |
| 39 | get_logger() |
structlog 래퍼, run_id 바인딩 |
| 65 | _FallbackLogger |
structlog 미설치 시 stdlib logging 폴백 클래스 |
3. backend/observability/metrics.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 18 | NODE_LATENCY |
Prometheus Histogram — 노드 처리 시간 |
| 23 | NODE_FAILURE |
Prometheus Counter — 노드 실패 수 |
| 28 | make_metrics_app() |
Prometheus ASGI 앱 생성(main.py에서 /metrics 마운트) |
| 32 | track_node() |
context manager — 노드 실행 시간 측정 + 실패 카운트, prometheus_client 미설치 시 no-op |