본문으로 건너뛰기

페이지 관측 (Observability)

각 페이지(라우트)의 처리시간응답 용량을 기록·모니터링해 성능 회귀와 과체중 페이지를 조기에 발견합니다. 관측은 계층으로 나눠 가볍게 운영합니다.

측정 대상방법위치
서버 처리시간·응답 바이트·status애플리케이션 관측 미들웨어 → 로그 → 모니터링앱(옵트인) + 모니터링
엣지 트래픽·캐시율·봇 비율Cloudflare Analytics엣지
실제 프런트 로딩(LCP, 전송량)RUM 또는 Lighthouse CI(주기 측정)선택

애플리케이션 관측 미들웨어 — 옵트인

라우트별 처리시간(ms)·응답 바이트·status 를 구조화 로그로 남깁니다. 응답을 보낸 뒤(terminate) 기록하므로 사용자 응답 지연이 없습니다. 기본 비활성 입니다.

# .env
CORE_OBSERVABILITY_ENABLED=true # 관측 미들웨어 활성화
CORE_OBSERVABILITY_CHANNEL=stack # 기록 로그 채널
CORE_OBSERVABILITY_SAMPLE_RATE=1.0 # 샘플링 비율(0.0~1.0). 트래픽 많으면 낮춤
CORE_OBSERVABILITY_SLOW_MS=1500 # 이 시간 초과 요청은 샘플링과 무관하게 항상 기록
  • 정적 자산·헬스체크 경로는 자동 제외됩니다.
  • 느린 요청(SLOW_MS 초과)은 샘플링 비율과 무관하게 항상 남겨 병목을 놓치지 않습니다.

기록 항목 예시:

{ "method": "GET", "route": "qt", "path": "/qt", "status": 200,
"duration_ms": 180, "bytes": 84213, "slow": false, "locale": "ko" }

모니터링 연동

구조화 로그를 로그 수집기로 모아 대시보드로 봅니다(예: Loki + Grafana). 관측 미들웨어가 남기는 request.metrics 로그를 수집 대상에 포함하면 라우트별 응답시간/용량 추이를 시각화할 수 있습니다.

프런트엔드 실측(LCP·전송량)까지 필요하면 RUM 또는 CI 의 Lighthouse 단계를 추가로 구성합니다. 서버 측 관측만으로도 라우트별 성능·용량 추적은 충분히 시작할 수 있습니다.