첫 규칙: 속사정 말고 결과에 알림을 걸어
나쁜 모니터링은 CPU 가 튀었다고 on-call 을 불러. 좋은 모니터링은 데이터가 틀렸거나 늦었을 때 불러. 이 둘은 완전히 달라. CPU 는 안에서 벌어지는 증상이고, consumer 가 진짜로 신경 쓰는 SLA 는 freshness 와 correctness 야.
모든 파이프라인이 내보내야 할 4가지 신호
- Freshness. 이 테이블 마지막 업데이트가 언제야? SLA ("매일 오전 9시") 와 비교해서, 기준보다 오래 묵으면 알림.
- Volume. 이번 run 에 row 가 몇 개 들어왔어? 최근 7일 범위 (예: ±3σ) 를 벗어나면 알림.
- Schema. Column 모양이 바뀌었어? 검증 실패는 page 감이고, 부드러운 drift 는 경고 감이야.
- 분포. 값이 움직였어? Mean / median / null-rate / cardinality 를 지난주와 대 봐.
Escalation ladder
모든 신호가 page 는 아니야. 알림은 층을 나눠서 걸어:
- Page — 깨진 contract 에: schema 변경, SLA 를 넘긴 missing 데이터, 검증 hard-fail.
- Slack — 경고 신호에: row count 가 범위 밖, 분포 drift.
- 대시보드 — 전부 다에: 모든 run 의 metric 을 시간 위에 그려서.