FactStack

Datadog RUM과 synthetic SLI로 SLO 개선하는 방법, 선택 기준

데이터 신뢰성

한마디로

실제 사용자 데이터와 테스트 데이터를 함께 써서 SLO를 사용자 경험에 맞게 다듬는 방법이에요

한눈에

Datadog은 SLO를 사용자 경험에 맞추려면 SLI를 RUM(실제 사용자 모니터링)과 synthetic(예약 테스트) 데이터로 구성하라고 안내해요. 이번 글의 핵심은 둘을 경쟁 관계가 아닌 보완재로 쓰라는 점입니다. 안정적인 기준선과 회귀 확인은 synthetic으로, 결제나 회원가입 같은 핵심 행동의 정밀한 추적은 RUM으로 나누면 돼요.

SLI를 다시 점검해야 하는 신호

원문은 SLI 구성을 바꿔야 할 때를 세 가지 신호로 짚어요.

  • 신뢰성 목표가 가용성과 성능에서 특정 사용자 행동으로 넓어질 때예요. 이커머스라면 체크아웃 성공률처럼 사용자가 핵심 행동을 끝낼 수 있는지 재는 SLI가 필요합니다.
  • 큰 장애나 KPI 하락 중에도 SLO가 목표를 달성한 것으로 나올 때예요. 처음 설계한 이상적인 경로가 아니라 사용자가 실제로 다니는 경로를 기준으로 모니터링 대상을 다시 잡아야 합니다.
  • 저트래픽 시간대에 번레이트 경보 피로가 생길 때예요. 5분 단위 단기 창에서는 요청 수가 적으면 분모가 작아져 오류율이 크게 튑니다. 5분 동안 요청이 100건이면 오류 5건의 영향이 1만 건일 때보다 훨씬 커요. synthetic 데이터는 트래픽 변동과 무관하게 앱 상태를 보여 줘서 이 문제를 보완합니다.

synthetic SLI는 안정적이지만 거칠어요

synthetic SLI는 사용자가 정한 간격으로 테스트를 돌려요. 간격은 30초부터 일주일까지 다양하고, 많은 팀이 모니터로 최신 테스트 데이터를 보통 1분에 한 번 확인합니다. 모니터 기반 SLO에서는 모니터가 ALERT 상태로 머문 시간에 따라 오류 예산이 소진돼요. 모니터 없이 지표 조건으로 가동 시간을 계산하는 time slice SLO도 쓸 수 있습니다.

한계는 두 가지예요.

  • 세분성이 낮아요. 15분마다 도는 테스트는 큰 그림의 상태 확인에는 충분하지만 그 사이에 생기는 짧은 일시적 오류는 놓칩니다. 이런 오류가 쌓이면 사용자는 문제를 겪는데 SLO는 정상으로 나올 수 있어요.
  • 정밀도가 낮아요. 7일 창에 99.999% 목표라면 오류 예산이 6초뿐이에요. 모니터 평가 한 번이 1분의 시스템 상태를 대표하므로, 실패가 한 번만 나와도 7일치 예산을 통째로 넘깁니다.

대신 테스트가 하루에도 여러 번, 1년 내내 돌기 때문에 한산한 시간대의 요청 감소에 영향받지 않아요. 이 안정성 덕분에 신규 릴리스나 큰 장애가 앱 기능에 준 영향을 보는 회귀 테스트에 어울립니다. 로그인, 게시글 작성, 사진과 음악 추가, 게시처럼 여러 단계로 이어지는 핵심 여정이 처음부터 끝까지 가용한지 보는 SLO에 적합해요.

RUM SLI는 정밀하지만 노이즈가 있어요

RUM SLI는 실제 세션에서 지표를 발생하는 대로 수집해 집계를 계속 갱신하므로 synthetic보다 정밀도와 세분성이 높아요. Datadog RUM without Limits 같은 기능을 쓰면 사전 샘플링된 세션 데이터로 RUM SLI를 계산할 수도 있습니다.

다만 광고 차단기와 봇 같은 현실 조건이 데이터 수집에 영향을 줘요. 일간 사용 패턴이나 계절 추세 같은 트래픽 변동에도 쉽게 흔들립니다. 그래서 비사용자 트래픽을 걸러내고, 샘플링과 수집 공백을 감안해야 해요. 브라우저, 지역, 기기 같은 차원으로 나눠 봐야 전체 집계에 가려진 추세도 보입니다.

이런 현실 조건이 오히려 RUM의 가치예요. 사용자는 오래된 기기와 느린 네트워크에서 예상 밖의 입력을 하는데, 이상적인 synthetic 테스트는 이런 상황을 놓칠 수 있습니다. 결제 성공률이나 회원가입처럼 사용자 만족과 비즈니스 목표에 직결되는 행동은 작은 하락도 문제라서 RUM이 맞아요.

실무 적용 체크리스트

  • SLO가 장애나 KPI 하락 중에도 정상으로 나오는지부터 확인하세요. 그렇다면 SLI 경로를 사용자 실제 행동 기준으로 다시 잡습니다.
  • 핵심 행동(결제, 회원가입)은 RUM SLI로, 전체 여정 가용성은 synthetic SLI로 나눠 잡으세요.
  • 고정밀 SLO(예: 7일 창 99.999%)에 synthetic을 쓸 때는 평가 1회 실패가 예산을 넘기는지 먼저 계산해 보세요.
  • RUM은 비사용자 트래픽을 필터링하고 브라우저, 지역, 기기별로 분리해 보세요.
  • 저트래픽 시간대 번레이트 경보 피로가 있다면 synthetic 데이터로 보완하는 방안을 검토하세요.

원문에 따르면 둘을 한 화면에서 묶어 보여 주는 Datadog Journey Monitoring은 현재 Preview 단계예요.

자주 묻는 질문

datadog 란 무엇인가요?

이 글에서 다루는 Datadog은 서비스 상태를 모니터링하고 SLO와 SLI를 추적하는 도구예요. RUM과 synthetic monitoring으로 사용자 경험에 가까운 지표를 SLI로 쓸 수 있습니다.

slo 란 무엇이고 SLI와 어떻게 다른가요?

SLO는 앱이 사용자 경험 측면에서 달성해야 하는 목표 기준이에요. SLI는 그 목표를 얼마나 달성했는지 재는 지표입니다. 이 글에서는 RUM과 synthetic 데이터를 SLI로 삼아 SLO 달성 여부를 추적해요.

slo 전략에서 RUM과 synthetic 중 무엇을 골라야 하나요?

하나만 고르기보다 역할을 나누는 편이 좋아요. 일반적으로 안정성이 필요하면 synthetic SLI, 실제 사용자 경험을 이해하려면 RUM 데이터를 씁니다. 핵심 행동은 RUM으로, 전체 여정의 가용성은 synthetic으로 보면 돼요.

synthetic SLI는 왜 일시적 오류를 놓칠 수 있나요?

세분성이 테스트 실행 주기와 모니터 평가 주기에 묶여 있어서예요. 15분마다 도는 테스트는 그 사이에 생긴 짧은 오류를 잡지 못합니다. 이런 오류가 예산 창 안에 쌓이면 사용자는 문제를 겪는데 SLO는 정상으로 보일 수 있어요.

에디터 노트

SLO가 장애 중에도 초록불이라면 목표 수치보다 SLI가 무엇을 재는지부터 의심해야 해요. 이 글은 RUM과 synthetic 중 승자를 가리지 않고 용도를 나눈다는 점이 실무적입니다. 다만 고정밀 목표에 synthetic을 쓰면 평가 1회 실패가 예산을 통째로 넘길 수 있고, RUM은 필터링 없이는 봇과 광고 차단기 때문에 왜곡되므로 설계 단계에서 이 한계를 감안해야 해요.

참고 출처 | 원문 보기

태그

용어 풀이
datadog
데이터독, 클라우드 모니터링 및 관측 플랫폼
slo
서비스 수준 목표, 서비스가 달성해야 할 신뢰성 목표
rum
실제 사용자 세션 데이터를 수집하는 사용자 모니터링
synthetic-monitoring
예약 테스트로 사용자 여정을 시뮬레이션하는 모니터링
공유

관련 마테크