로그·메트릭·트레이스 세 축 + 알림 임계값 설계 경험으로 설명
팀 프로젝트에서 서비스 장애 원인을 찾는 데 1시간 이상 걸린 경험이 관찰 가능성 설계에 관심을 갖게 된 계기였습니다. 당시에는 로그가 흩어져 있고 메트릭이 없었습니다. 이후 프로젝트에서는 로그·메트릭·트레이스 세 축을 처음부터 설계해서 들어갔습니다. 로그는 structlog로 JSON 형태로 남기고, 메트릭은 Prometheus 클라이언트로 요청 수와 응답 시간을 수집했습니다. 트레이스는 trace_id를 요청 헤더로 전파해서 마이크로서비스 간 요청 흐름을 한 줄로 연결할 수 있게 했습니다. 운영 중에 알림 임계값을 너무 낮게 잡으면 알림이 너무 자주 와서 무시하게 되는 문제도 경험했고, 임계값 설정 자체도 설계가 필요하다는 걸 배웠습니다.
관측 가능성은 만들 때가 아니라 장애가 났을 때 진짜 가치가 드러나는 자리라는 걸 그때 알았습니다.