피드로 돌아가기
I Built a Monitoring Tool Because Uptime Checks Kept Lying to Me
Dev.toDev.to
DevOps

개발자가 표준 Uptime 모니터링 도구의 한계(상태 코드만 확인)를 발견하고 자체 모니터링 도구 Sitewatch를 구축해 실제 사이트 작동성을 검증하는 방식으로 전환

I Built a Monitoring Tool Because Uptime Checks Kept Lying to Me

Nicky Christensen2026년 3월 26일8intermediate

Context

Netlify, Vercel, Cloudflare Pages 등의 현대적 배포 플랫폼에서 표준 Uptime 모니터링은 HTTP 상태 코드(200 OK)만 확인하므로, 실제로는 서비스가 작동하지 않는 상황을 놓친다. 예: 새로운 배포 후 해시된 번들명이 변경되었으나 일부 CDN 엣지 노드가 구 HTML을 제공해 JavaScript 404 에러가 발생했지만, 모니터 도구는 HTML 로드(200 OK)만으로 정상 판단했다.

Technical Solution

  • 자산 검증(Asset Verification): HTML 파싱 후 JavaScript, CSS 번들 참조를 추출하고 각각의 상태 코드 및 MIME 타입 확인
  • 리다이렉트 체인 완전 추적: 모든 리다이렉트를 최종 목적지까지 따라가며 루프, 타임아웃, 예상 밖의 착지점 감지
  • 콘텐츠 핑거프린팅: 페이지 콘텐츠의 해시 생성 및 시간 추적으로 갑작스러운 콘텐츠 변경(스테일 캐시, 200 반환 CDN 에러 페이지) 감지
  • 다중 리전 체크: 여러 지역에서 동시에 검사해 지역별 CDN 장애 감지
  • 재시도 모델 기반 알림: 일시적 CDN 변동으로 인한 거짓 알람 방지 및 근본 원인 분류(인프라, 배포 산출물, DNS, CDN 설정)
  • 기술 스택 감지: 응답 헤더를 통해 프레임워크 감지 후 해당 프레임워크의 특정 장애 패턴에 맞춰 검사 항목 조정
  • Headless 브라우저 미사용: 전체 렌더링 대신 HTML 파싱 및 목표 지정 리소스 요청으로 확장성 확보

Key Takeaway

상태 코드 기반 모니터링은 실제 사용자 경험 장애를 포착하지 못한다는 점을 통해, 배포 플랫폼 환경에서는 자산 로드 가능성, MIME 타입 일치성, 콘텐츠 일관성을 포함한 다층적 검증이 필수 요소임을 보여준다.


Netlify, Vercel, Cloudflare Pages 등에서 여러 사이트를 관리하는 팀은 표준 핑 기반 모니터링만으로는 충분하지 않으며, HTML 파싱 → 번들 참조 추출 → 각 자산의 상태 코드와 MIME 타입 검증 → 콘텐츠 해시 추적의 4단계 검증을 통합하면 배포 후 공개되지 않은 자산 로드 실패, CDN 캐시 불일치, 리다이렉트 루프 등 기존 도구가 놓치는 장애를 조기에 포착할 수 있다.

원문 읽기
I Built a Monitoring Tool Because Uptime Checks Kept Lying to Me | Devpick