
수 주 걸리던 모니터링 검증을 단 몇 분 만에 끝내는 Prometheus 기반 백테스팅 혁신
에어비앤비가 수동적인 알림 관리를 넘어, 개발자가 PR 제출 전에 알림의 동작을 실제 데이터로 미리 검증할 수 있는 환경을 구축한 여정을 다룹니다. '문화가 아닌 워크플로우의 문제'로 접근하여, Prometheus를 활용한 대규모 백테스팅 시스템이 어떻게 대규모 엔지니어링 조직의 신뢰성과 개발 생산성을 동시에 높였는지 보여줍니다.
알림 피로(Alert Fatigue)로 고통받거나 대규모 인프라의 모니터링 설정을 코드로 관리하려는 SRE 및 플랫폼 엔지니어에게 강력히 추천합니다. 특히 설정 변경의 영향도를 사전에 파악하기 어려운 복잡한 환경에서 백테스팅 시스템 설계의 훌륭한 레퍼런스가 될 것입니다.
기존의 'Observability as Code(OaC)' 워크플로우는 코드 리뷰를 통해 구문과 로직은 검증할 수 있었으나, 실제 운영 데이터에서 알림이 어떻게 동작할지 예측하기 어려워 과도한 소음이나 침묵하는 알림 문제가 발생했습니다. 이로 인해 알림 설정을 변경할 때마다 수 주 동안 운영 환경에서 나란히 배포하여 검증해야 하는 긴 개발 주기가 소요되었습니다.
Prometheus 오픈소스를 기반으로 로컬 우선 개발 환경을 구축하고, PR 단계에서 알림 변경 사항을 시각적으로 보여주는 'Change Reports'와 과거 데이터를 활용해 알림 동작을 시뮬레이션하는 'Bulk Backtesting' 시스템을 도입했습니다. 특히 Prometheus의 룰 매니저를 직접 활용하여 운영 환경과 동일한 로직으로 수천 개의 알림을 동시에 검증할 수 있게 했습니다.
전사적으로 알림 소음을 90% 감소시켰으며, 수 주가 걸리던 알림 개발 주기를 단 몇 분으로 단축했습니다. 또한 이러한 자동화된 검증 도구를 활용하여 30만 개의 알림을 기존 벤더 솔루션에서 Prometheus로 성공적으로 마이그레이션하는 성과를 거두었습니다.
Trade-off
시뮬레이션 시스템이 레코딩 룰(Recording Rule) 의존성까지는 자동으로 해결하지 못해 사용자가 의존성을 먼저 수정해야 하는 단계적 작업이 필요합니다. 또한 대규모 백테스팅 시 운영 환경에 영향을 주지 않기 위해 별도의 Kubernetes 포드 오토스케일링과 서킷 브레이커 등 복잡한 자원 관리 설계가 수반되었습니다.
알림, 대시보드, SLO 등을 UI가 아닌 코드로 정의하여 버전 관리, 코드 리뷰, 테스트 프로세스를 적용하는 방식입니다.
새롭게 정의하거나 수정한 알림 규칙을 과거의 시계열 데이터에 적용하여 실제로 언제, 얼마나 자주 발생했을지 시뮬레이션하는 기법입니다.
제품 개발자가 인프라나 플랫폼을 채택할 때 별도의 설정 없이도 최적화된 알림과 대시보드를 즉시 제공받는 이상적인 상태를 의미합니다.








