Rum Without Limit 워크샵

RUM without Limits 는 고객에게 완벽한 세션 캡처와 비용 효율적인 제어라는 두 가지 장점을 모두 제공하는 새로운 모델입니다. 고정된 샘플링 속도나 높은 데이터 보존 비용에 얽매이지 않고, 성능 모니터링, 신속한 문제 해결, 데이터 기반 의사 결정에 필요한 가시성을 확보할 수 있습니다.
개요
이 문서의 목표는 Datadog RUM을 테스트할 수 있는 프런트엔드 웹 애플리케이션을 빠르게 만들 수 있는 방법을 제공하는 것입니다.
로컬에서 실행하는 방법
다음 단계를 따라 이 애플리케이션을 시작하세요.
-
Datadog - RUM에서 "REACT" 타입의 애플리케이션을 생성하세요.
이 RUM 애플리케이션의applicationId및clientToken값을 기록해 두세요. -
저장소를 복제하세요:
git clone https://github.com/gblee87/dd_rwol_sample
-
.env.example 파일명을 .env로 변경하고
<YOUR_RUM_APPLICATION_ID>applicationId 값을 본인의 값으로 바꾸세요.
그런 다음에<YOUR_RUM_CLIENT_TOKEN>clientToken 값을 본인의 값으로 바꾸세요. -
종속성을 설치하려면 다음 명령을 실행하세요.
npm install
- 개발 서버를 시작하세요.
npm run dev
RWOL 기능 탐구
1단계: RUM 측정 도구를 어떻게 활용할 수 있을까요?
RUM 측정 기능이 어떻게 작동하는지 확인하려면 먼저 Datadog에서 세션이 인덱싱되지 않도록 해야 합니다.
이렇게 하면 세션이 중단된 경우에도 메트릭이 계속 수집되는지 확인할 수 있습니다.
보존 필터 비활성화
- Datadog에서 RUM > 애플리케이션 관리 로 이동하세요.
- 이 데모를 위해 만든 애플리케이션을 선택하세요.
- '보존 필터' 섹션을 찾으세요.
- 새 세션 색인 생성을 중지하려면 모든 활성 보존 필터를 비활성화하세요.

참고: 첫 번째 필터인 "강제 재생이 포함된 세션"은 수정할 수 없습니다. 이는 "강제 수집" 메커니즘에 의해 트리거된 재생이 항상 보존되도록 하는 기본 시스템 필터입니다.
Datadog 대시보드 준비 하세요
Datadog의 RUM Without Limits를 사용하면 메트릭 수집과 세션 저장을 분리할 수 있습니다. 즉, 모든 트래픽에 대해 정확한 성능 메트릭을 즉시 확인할 수 있습니다. 이를 시각화하려면 아래 단계를 따르세요.
제공된 JSON 대시보드 파일 두 개를 Datadog 조직으로 가져오세요. 이 파일을 통해 RUM 측정 데이터와 RUM 조사 데이터를 비교할 수 있습니다 .
- RWOL - 사용자 활동 대시보드(트래픽 개요):
보존된 RUM 세션 목록과 함께 그래프를 표시합니다
rum.measure.view. 세션 목록이 비어 있는 경우에도 메트릭이 표시되는지 확인하는 데 사용합니다.
- RWOL - 웹 앱 성능 대시보드(성능):
기본 제공되는 메트릭을 활용하여 페이지 로드 성능 및 사용자 경험을 분석합니다.
- RWOL - Measure 전용(종합):
Rum without limit - measure 만 활용하여 구성한 사용자 경험 대시보드 예제입니다.
데모 앱으로 트래픽을 생성하세요
대시보드가 준비되면 데모 앱을 실행하고 탐색을 시작하세요.
참고 : 최근에 앱을 방문한 경우 이전 세션이 활성화되어 이전 필터 규칙이 적용될 수 있습니다. 새롭게 시작하려면
Reset Session앱 오른쪽 상단의 버튼을 클릭하세요.

함수 메뉴로 이동하여 다음 페이지들을 활용하여 다양한 RUM 데이터를 생성하세요.
- ❗️Error Page
Throw Error버튼을 클릭하여 수동 오류 이벤트를 발생시키세요.
- ⏰ Slow Loading
- 의도적으로 로딩 속도가 느리도록 설정된 히어로 이미지를 살펴보세요.
Simulate Long Task버튼을 클릭하세요. 그러면 페이지가 몇 초 동안 멈춰 메인 스레드에 부하가 많이 걸리는 작업을 시뮬레이션합니다.
- 🎛️ Diagnostics
특정 이벤트를 발생시키기 위해 다양한 작업을 수행합니다.- Trigger Runtime Error : 빈 객체의 키에 접근하려고 시도하여 JavaScript 런타임 오류가 발생했습니다.
- Generate Manual RUM Error Event : 사용자 지정 RUM 오류를 Datadog에 전송합니다.
- Generate Browser Logs : 브라우저 로그 모니터링 통합을 시연하기 위해 정보, 경고, 오류, 디버그의 네 가지 콘솔 로그를 생성합니다.
- Call DummyJSON :
https://dummyjson.com/products/1다양한 속성을 가진 JSON 객체에 가져오기 요청을 시작합니다 .
RUM 측정으로 가시성 확보
이제 트래픽을 생성했으니 Datadog으로 돌아가서 RUM Measure가 세션을 저장하지 않고도 이 데이터를 어떻게 수집하는지 확인해 보세요.
1. 메트릭 수집 확인 ( RWOL - 사용자 활동 대시보드)
[ RWOL - 사용자 활동 대시보드]를 엽니다. 이 화면은 메트릭 수집과 세션 유지 기간을 비교하기 위해 설계되었습니다.

- Measure View Graph:
rum.measure.view메트릭이 그래프에 실시간으로 데이터를 채워 넣으며 방금 생성한 트래픽을 정확히 반영하는 것을 확인할 수 있습니다. 반면 "Views by Session" 목록을 확인해 보세요. 유지 필터를 비활성화했기 때문에 이 목록은 비어 있거나 또는 새로운 세션이 표시되지 않아야 합니다. - 핵심 요점: 이는 Datadog가 원시 세션 데이터가 삭제되더라도 OOTB View Metrics(기본 제공 보기 메트릭)을 계속 집계한다는 것을 보여줍니다.
2. 기본 제공 메트릭( RWOL - 웹 앱 성능 대시보드) 을 사용하여 성능을 모니터링하세요.
기본 제공(OOTB) 지표를 확인하려면 [ RWOL - 웹 앱 성능 대시보드]로 전환하세요.

- Core Web Vitals & Performance: 대시보드 위젯을 통해 전체 로딩 시간과 핵심 웹 바이탈(특히 Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift)을 직접 모니터링할 수 있습니다.
- 핵심 요점: 이러한 지표들은 모든 세션을 100% 보존하지 않고도 애플리케이션 성능 및 상태 추세를 효과적으로 모니터링할 수 있음을 보여줍니다. 원시 세션 데이터에 대한 복잡한 쿼리에 의존하는 대신, 이러한 간소화된 지표를 활용하여 고급 모니터링, 알림 및 장기적인 추세 분석을 수행할 수 있습니다.
3. 성능 모니터링 페이지 사용
Datadog RUM에서 제공하는 성능 모니터링 페이지를 사용하면 유용한 정보를 얻을 수도 있습니다.
성능 요약을 살펴보려면 디지털 경험 > 성능 모니터링 > 요약 으로 이동하세요 .
이 화면은 애플리케이션 상태를 확인할 수 있는 제어 센터 역할을 합니다.

- Overall Page Performance: 특정 페이지 이름별로 분류된 성능 지표를 검토하여 애플리케이션에서 개선이 필요한 부분을 파악하십시오.
- Optimize Vitals: 데모 앱의 전반적인 성능 상태를 고수준 그래프와 추세를 통해 시각화하세요.
최적화 설정
분석을 위해 최적화 페이지 로 이동하세요 . 이 페이지에서는 핵심 웹 바이탈 에 대한 자세한 분석을 제공하여 시간 경과에 따른 성능 추세를 추적하고, 가장 큰 영향을 받는 사용자 그룹을 파악하고, 최적화 우선순위를 정확하게 지정할 수 있도록 지원합니다.

더 자세히 조사하려면 /slow-loading목록에서 해당 페이지를 클릭하세요. 이렇게 하면 실적이 저조한 페이지에만 집중하여 세부 정보를 확인할 수 있습니다.

2단계: RUM Investigate를 활용하여 무엇을 할 수 있을까요?
보존 필터는 RUM 세션 탐색기에서 사용되는 것과 유사한 일련의 쿼리로, RUM 이벤트(세션, 보기, 작업, 리소스 등)가 수집될 때 실행됩니다. 이러한 필터는 세션을 표준 30일 RUM 보존 기간 동안 저장할지 또는 폐기할지를 결정합니다.
보존 필터를 활성화하세요:
RUM > 애플리케이션 관리 > 보존 필터 로 이동하여 다음과 같이 설정을 구성하십시오.
- "Sessions with errors" 보존 필터를 활성화하세요.
- 이는 기본 필터입니다. 이 필터를 활성화하면 오류가 하나 이상 포함된 모든 세션이 분석을 위해 보존됩니다.
- 아래 화면을 참고하여, 새 필터를 추가하세요.
Query Type: View그리고Query: @view.largest_contentful_paint:>=3s- 이 필터는 성능 모니터링에 초점을 맞추고 있으며, 특히 LCP 가 3초 이상인 세션을 수집하고 유지합니다.
- 아래 화면을 참고하여, 새 필터를 추가하세요.
Query Type: Session그리고Query: @usr.hasPaid:true- 이는 세션의 사용자 메타데이터를 사용하여 사용자 지정 필터를 만드는 예시입니다. 이 특정 쿼리를 사용하면 유료 사용자만 세션에 포함시킬 수 있습니다.

데모 앱으로 트래픽을 생성하세요
이제 데모 애플리케이션을 탐색하여 유지 필터를 추가한 상태에서 트래픽을 생성해 보겠습니다.
시나리오 1: 사용자 등급 필터링
- 오른쪽 상단 탐색 모음에서 사용자 플랜이 'Standard'으로 설정되어 있는지 확인하십시오.
- 스탠다드 플랜을 사용 중인 상태에서 몇 페이지를 살펴보세요. 보존 규칙으로 인해 이러한 일반 세션은 세션 탐색기에 수집되거나 표시되지 않는다는 것을 알 수 있습니다.
Upgrade Plan오른쪽 상단의 버튼을 클릭하세요 . 요금제가 프리미엄으로 변경됩니다. 이제 다시 여러 페이지를 탐색해 보세요.- 세션 탐색기를 확인해 보세요. 이제 프리미엄 사용자의 세션이 수집되고 있는 것을 확인할 수 있습니다.
- 인사이트 : 이는 보존필터를 사용하여 모니터링하려는 특정 고가치 사용자(예: 유료 등급)에 대한 세션만 선택적으로 수집하는 방법을 보여줍니다.
시나리오 2: 오류 추적
- 데모 앱을 새 브라우저 창(또는 시크릿 모드)에서 엽니다. 사용자 플랜이 표준으로 재설정되었는지 확인합니다.
- 함수 > 오류 페이지로 이동하여 " " 버튼을 클릭하면
Throw Error의도적으로 오류가 발생합니다. - 세션 탐색기를 확인해 보세요. 사용자가 여전히 스탠다드 요금제를 사용 중임에도 불구하고 오류가 발생하여 세션이 성공적으로 수집된 것을 확인할 수 있습니다.
- 인사이트 : 이는 "오류가 있는 세션" 필터가 사용자의 등급과 관계없이 오류가 포함된 중요 세션을 항상 포착하도록 보장한다는 것을 확인시켜 줍니다.
시나리오 3: 성능 모니터링(느린 로딩)
- 새 브라우저 창을 열고 기능 > 느린 로딩으로 이동하세요.
- 이 페이지는 의도적으로 성능이 저하되도록 설계되었습니다.
- (참고: 데이터가 즉시 표시되지 않으면
hard refresh페이지를 강제로 새로 고침하세요.)
- (참고: 데이터가 즉시 표시되지 않으면
- 세션 탐색기를 확인해 보세요. LCP 점수가 낮거나 로딩 시간이 긴 세션이 수집된 것을 확인할 수 있습니다 .
- 인사이트 :
@view.loading_time이 예시는 필터(예: )를 사용하여 코어 웹 바이탈 성능이 저조한 세션을 구체적으로 포착하고 분석하는 방법을 보여줍니다 .
RUM Investigate로 가시성 확보
이제 트래픽을 생성했으므로 Datadog으로 돌아가 RUM Investigate를 사용하여 보존 필터가 적용된 후 Datadog에 보존된 세션을 확인하세요. 이렇게 보존된 세션을 통해 고객은 세션 수준의 세부 정보를 확인할 수 있으므로 상세한 이벤트 타임라인을 살펴보고 특정 사용자 문제를 해결할 수 있습니다.
1. 세션 탐색기에서 세션을 분석합니다.
수집된 세션 목록을 보려면 세션 탐색기 로 이동하세요 .
- 이제 특정 세션을 클릭하여 해당 세션의 보기, 작업, 이벤트 및 리소스를 자세히 살펴볼 수 있습니다.
- 세션에 참여한 사용자를 파악하기 위해 이름, 이메일, 요금제 등의 사용자 속성을 검토하십시오.
- 세션 재생: 관련 세션 재생을 시청하여 사용자가 세션 동안 무엇을 보고 무엇을 했는지 정확하게 확인할 수 있습니다.

2. 성능 최적화에 대한 심층 분석
성능 병목 현상을 분석하려면 성능 모니터링 > 최적화 로 이동하십시오 .
/slow-loading목록에서 보기 방식을 선택하세요 .- LCP 지표를 클릭하세요 .
- 상세 분석 페이지를 검토하십시오. 특히 페이지 미리보기 섹션에서 성능 저하의 원인이 되는 특정 요소와 해당 요소의 경로, 그리고 화면에 실제로 표시되는 모습을 시각적으로 확인할 수 있습니다.

3. 히트맵을 사용하여 사용자 행동을 시각화하세요
히트맵은 사용자의 상호작용을 세션 재생 데이터 위에 직접 오버레이하여 시각화한 것입니다. 히트맵을 활용하면 복잡한 사용자 참여 데이터를 한눈에 검토하고 사용자 경험 최적화를 위한 실질적인 인사이트를 얻을 수 있습니다.
- 세션 재생 > 히트맵 으로 이동합니다 . 애플리케이션과 분석하려는 특정 뷰를 선택합니다.
- 기간 선택기 왼쪽에 표시할 히트맵 유형을 선택하세요.
- 클릭 맵: 사용자 상호 작용을 확인하여 사용자가 페이지 요소와 어떻게 상호 작용하는지 파악하세요.
- 가장 많이 상호 작용한 요소: 페이지에서 가장 많이 상호 작용한 요소 10개의 순위를 확인하세요.
- 스크롤 맵: 사용자가 페이지를 얼마나 아래로 스크롤하는지 시각화합니다. 여기에는 스크롤 없이 사용자가 볼 수 있는 페이지의 가장 낮은 지점인 평균 폴드(fold)가 포함됩니다.
