목표는 사용자가 알려주기 전에 시스템이 비정상임을 아는 것입니다. 좋은 observability는 고정된 dashboard 세트만 확인하는 게 아니라, 예상하지 못한 질문에도 답할 수 있게 해 줍니다. tech lead로서 이것을 장애 중이 아니라 그 전에 구축합니다.
내부 흔들림이 아니라 사용자가 느끼는 것에 대해 page를 울리세요. alert를 SLO에 고정하세요: error rate, latency(p95/p99), 가용성. CPU 급등은 장애가 아닙니다. 사용자 2%의 checkout 실패가 장애입니다.
| alert할 대상 | page하지 말 것 |
|---|---|
| SLO를 위반하는 error rate | 단일 CPU 급등 |
| budget을 초과한 p99 latency | 하나의 느린 request |
| 실패한 health check | Disk 60% |
모든 alert는 긴급하고, 실제이며, 실행 가능해야 합니다 — 무엇이 잘못됐는지 명시하고 다음 단계를 가리킵니다. 아주 자주 울리는 alert는 팀이 무시하도록 훈련시킵니다. alert fatigue가 바로 실제 장애를 놓치는 방식입니다. golden signal을 한눈에 보여 주는 health check와 dashboard를 추가하세요.
장애 이후에만 관찰하는 팀은 눈을 감고 나는 셈입니다. 화난 고객으로부터 장애를 알게 되고 추측으로 debug합니다. observability에 미리 투자하면 새벽 3시의 미스터리가 5분짜리 진단으로 바뀌고, downtime을 줄이며, 팀이 불을 끄는 대신 ship할 수 있게 해줍니다.