웹 애플리케이션 데이터 수집¶
애플리케이션 데이터가 Guance에 수집된 후, Guance 콘솔에서 사용자 정의 설정 시나리오 및 이상 탐지 이벤트를 구성할 수 있습니다.
데이터 유형¶
Guance의 RUM(실제 사용자 모니터링)은 6가지 데이터 유형을 포함합니다:
| 유형 | 설명 |
|---|---|
| session | 사용자 세션 정보 기록입니다. 현재 세션에서 세션 차원을 기준으로 사용자 페이지, 리소스, 작업, 오류, 긴 작업 관련 접속 데이터를 캡처합니다. |
| view | 사용자가 페이지에 접속할 때마다 페이지 조회 기록이 생성됩니다. 사용자가 동일한 페이지에 머무르는 동안 리소스, 긴 작업, 오류 및 작업 기록은 view_id 속성을 통해 관련 RUM 뷰에 연결됩니다. |
| resource | 사용자가 페이지에 접속할 때 로드된 리소스 정보 기록입니다. |
| error | RUM 수집기가 브라우저에서 발생하는 모든 프런트엔드 오류를 수집합니다. |
| long_task | 브라우저에서 메인 스레드를 50ms 이상 차단하는 모든 작업에 대해 긴 작업 기록이 생성됩니다. |
| action | 사용자 페이지 탐색 중 발생하는 모든 사용자 상호 작용 기록을 추적합니다. |
글로벌 속성¶
RUM 시나리오 구성 및 이벤트 알림은 아래의 글로벌 속성을 통해 조회할 수 있습니다.
SDK 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
sdk_name |
string | 수집기 이름, 고정 이름:df_web_rum_sdkdf_miniapp_rum_sdkdf_ios_rum_sdkdf_android_rum_sdk |
sdk_version |
string | 수집기 버전 정보입니다. |
애플리케이션 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
app_id |
string | 필수, RUM 애플리케이션 고유 ID 식별자로, Guance 콘솔에서 모니터링을 생성할 때 자동으로 생성됩니다. |
env |
string | 필수, 환경 필드입니다. 속성값: prod/gray/pre/common/local. prod: 프로덕션 환경 gray: 카나리 환경 pre: 사전 프로덕션 환경 common: 일상 환경 local: 로컬 환경 |
version |
string | 필수, 버전 번호입니다. |
service |
string | 필수, RUM SDK 내에 구성된 service 필드의 해당 값입니다. |
사용자 및 세션 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
userid |
string | 기본적으로 브라우저 쿠키를 가져와 userid로 사용합니다. 사용자 정의 사용자 식별자를 사용하여 사용자 id를 설정하면 userid는 설정된 값과 일치합니다.❗️ 쿠키 만료 시간은 60일입니다. |
session_id |
string | 세션 id (사용자 세션이 15분 내에 상호 작용이 없으면 만료된 것으로 간주합니다). |
session_type |
string | 세션 유형입니다. 참조값: user & synthetics |
is_signin |
boolean | 등록된 사용자 여부입니다. 속성값: True / False. |
디바이스 및 해상도 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
os |
string | 운영 체제 |
os_version |
string | 운영 체제 버전 |
os_version_major |
string | 디바이스가 보고한 주요 운영 체제 버전 |
browser |
string | 브라우저 제공업체 |
browser_version |
string | 브라우저 버전 |
browser_version_major |
string | 브라우저 주요 버전 정보 |
screen_size |
string | 화면 너비*높이, 해상도 |
Windows 시스템 버전 식별
브라우저가 User-Agent Client Hints를 제공하는 경우, SDK는 platformVersion을 통해
Windows 10과 Windows 11을 구분합니다. 이 기능을 지원하지 않거나, 높은 엔트로피 값 반환을 거부하거나
조회가 시간 초과된 브라우저의 경우 SDK는 계속 navigator.userAgent를 사용합니다.
Windows 11의 기존 User-Agent는 여전히 Windows NT 10.0을 보고하므로,
이 경우 Windows 10과 Windows 11을 구분할 수 없습니다.
지리 및 네트워크 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
ip |
string | 사용자 접속 IP 주소 |
isp |
string | 인터넷 서비스 제공업체 |
network_type |
string | 네트워크 연결 유형입니다. 속성값 참조:wifi | 2g | 3g | 4g | 5g | unknown (알 수 없는 네트워크) | unreachable (네트워크 연결 불가) |
country |
string | 국가 |
country_iso_code |
string | 국가 iso_code |
province |
string | 주/도 |
city |
string | 도시 |
사용자 정의 속성¶
글로벌 속성 외에도 사용자 정의 속성(SDK는 사용자 정의 tag 데이터 작성을 지원합니다)을 통해 시나리오를 구성하고 이벤트 알림을 설정할 수 있습니다. 사용자 정의 속성은 글로벌 속성이 아니며, 사용자 정의 속성을 통해 사용자 애플리케이션 접속의 전체 과정을 추적하고, 사용자에게 영향을 미치는 접속 상황을 파악 및 발견하며, 사용자 접속 성능을 모니터링할 수 있습니다.
기타 데이터 유형 속성¶
Session¶
속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
session_id |
string | 세션 id (사용자 세션이 15분 내에 상호 작용이 없으면 만료된 것으로 간주합니다) |
session_type |
string | 세션 유형입니다. 참조값: user & synthetics. |
session_first_view_id |
string | 현재 세션의 첫 번째 페이지의 view_id |
session_first_view_url |
string | 현재 세션의 첫 번째 페이지의 URL |
session_first_view_host |
string | 현재 세션의 첫 번째 페이지의 도메인 |
session_first_view_path |
string | 현재 세션의 첫 번째 페이지의 경로 |
session_first_view_path_group |
string | 현재 세션의 첫 번째 페이지의 경로 그룹 |
session_first_view_url_query |
string | 현재 세션의 첫 번째 페이지의 query 정보 |
session_first_view_name |
string | 현재 세션의 첫 번째 페이지의 경로 그룹, session_first_view_path_group 필드와 동일 |
session_last_view_id |
string | 현재 세션의 마지막 방문 페이지의 view_id |
session_last_view_url |
string | 현재 세션의 마지막 페이지의 URL |
session_last_view_host |
string | 현재 세션의 마지막 페이지의 도메인 |
session_last_view_path |
string | 현재 세션의 마지막 페이지의 경로 |
session_last_view_path_group |
string | 현재 세션의 마지막 페이지의 경로 그룹 |
session_last_view_url_query |
object | 현재 세션의 마지막 페이지의 query 정보 |
session_last_view_name |
string | 현재 세션의 마지막 페이지의 경로 그룹, session_last_view_path_group 필드와 동일 |
통계 지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
time_spent |
number(ns) | 현재 세션의 지속 시간 |
session_time_spent_count |
number | 4시간을 시간 간격으로 하여 초과 시 4시간마다 1을 더하여 통계 |
session_view_count |
number | 현재 세션에 연결된 view_id 개수 |
session_error_count |
number | 현재 세션에서 발생한 오류 개수 |
session_resource_count |
number | 현재 세션에서 로드된 리소스 개수 |
session_action_count |
number | 현재 세션의 사용자 작업 횟수 |
session_long_task_count |
number | 현재 세션에서 발생한 긴 작업 횟수 |
View¶
속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_id |
string | 페이지에 접속할 때마다 생성되는 고유 ID |
view_loading_type |
string | 페이지 로드 유형입니다. 참조값: initial_load route_change. route_change는 SPA 페이지 로드 모드입니다 |
view_navigation_type |
string | RUM SDK 3.3.9부터 제공되는 SPA 라우트 탐색 유형입니다. 참조값: push, replace, traverse. 브라우저가 Soft Navigation API를 지원하는 경우 기본값을 사용하고, 그렇지 않으면 Navigation API, History API 또는 Hash 라우트 호환 로직을 통해 생성됩니다. 탐색 출처를 식별할 수 있는 route_change View에만 존재합니다 |
view_referrer |
string | 페이지 출처 |
view_url |
string | 페이지 URL |
view_host |
string | 페이지 URL의 도메인 부분 |
view_path |
string | 페이지 URL의 경로 부분 |
view_path_group |
string | 페이지 URL 경로 그룹 |
view_url_query |
string | 페이지 URL의 query 부분 |
session_has_replay |
boolean | 현재 View가 속한 세션에 연결 가능한 세션 리플레이 데이터가 이미 생성되었는지 여부 |
지표¶
| 지표 | 유형(단위) | 개요 |
|---|---|---|
loading_time |
number(ns) | 페이지가 준비되고 네트워크 요청 및 DOM 변경이 없을 때의 시간입니다. 자세한 내용은 페이지 Loading Time을 참조하세요. |
largest_contentful_paint |
number(ns) | LCP는 뷰포트에서 볼 수 있는 가장 큰 이미지 또는 텍스트 블록의 렌더링 시간을 보고합니다. 최초 로드는 페이지 탐색을 시작점으로 하며, RUM SDK 3.3.9부터 Chrome Soft Navigation API를 지원하는 경우 SPA 라우트 전환은 해당 소프트 탐색을 시작점으로 합니다. 좋은 사용자 경험을 위해 LCP는 2.5초 이내에 발생해야 합니다. |
largest_contentful_paint_element_selector |
string | LCP 지표를 생성하는 요소의 selector입니다. 최초 로드 및 기본 Soft Navigation API를 지원하는 SPA 라우트 전환 모두 존재할 수 있습니다. |
cumulative_layout_shift |
number | 누적 레이아웃 이동으로, 시각적 안정성을 측정합니다. 좋은 사용자 경험을 위해 페이지의 CLS는 0.1 이하로 유지되어야 합니다. |
cumulative_layout_shift_target_selector |
string | CLS 지표를 생성하는 요소의 selector입니다. |
first_input_delay |
number(ns) | 페이지의 첫 번째 상호 작용에 대한 입력 지연을 측정합니다. 현재 Core Web Vitals는 INP로 FID를 대체했습니다. |
first_input_time |
number(ns) | 현재 View 시작 시점을 기준으로 한 첫 번째 상호 작용 시간입니다. |
first_input_target_selector |
string | 첫 번째 상호 작용을 생성하는 요소의 selector입니다. |
interaction_to_next_paint |
number(ns) | 페이지 방문 전체 기간 동안 사용자 상호 작용에 대한 전반적인 응답성을 측정하며, 입력 지연, 이벤트 처리 및 다음 프레임 페인트 시간을 포함합니다. |
interaction_to_next_paint_target_selector |
string | INP 지표를 생성하는 상호 작용 요소의 selector입니다. |
first_contentful_paint |
number(ns) | FCP(최초 콘텐츠 페인트) 지표는 최초 로드 또는 Chrome Soft Navigation API를 지원하는 SPA 라우트 전환 시작 후 페이지 콘텐츠의 일부가 화면에 렌더링을 완료하는 시간을 측정합니다. SPA 라우트 전환 지표는 RUM SDK 3.3.9부터 제공됩니다. 이 지표에서 "콘텐츠"는 텍스트, 이미지(배경 이미지 포함), <svg> 요소 또는 비흰색 <canvas> 요소를 의미합니다. w3c를 참조하세요. |
first_byte |
number(ns) | 페이지 요청 시점부터 페이지 응답의 첫 번째 바이트를 수신하는 시간입니다. |
dom_interactive |
number(ns) | 파서가 문서 구문 분석을 완료한 시간입니다. 자세한 내용은 MDN을 참조하세요. |
dom_content_loaded |
number(ns) | 순수 HTML이 완전히 로드되고 구문 분석되면 DOMContentLoaded 이벤트가 트리거됩니다. 스타일시트, 이미지 또는 하위 프레임의 로드 완료를 기다릴 필요가 없습니다. 자세한 내용은 MDN을 참조하세요. |
dom_complete |
number(ns) | 페이지와 모든 하위 리소스가 준비되었습니다. 사용자에게 로딩 애니메이션이 중지된 것으로 보입니다. 자세한 내용은 MDN을 참조하세요. |
load_event |
number(ns) | 전체 페이지와 스타일시트, 이미지 등 모든 종속 리소스의 로드가 완료되면 트리거됩니다. DOMContentLoaded와 달리 종속 리소스 로드를 기다릴 필요 없이 페이지 DOM 로드가 완료되면 트리거됩니다. 자세한 내용은 MDN을 참조하세요. |
first_paint_time |
number(ns) | 현재 SDK에서 계산한 문서 응답 단계 소요 시간입니다. 계산 방식: responseEnd - fetchStart |
resource_load_time |
number(ns) | 리소스 로드 시간입니다. 계산 방식: loadEventStart - domContentLoadedEventEnd |
time_to_interactive |
number(ns) | 최초 상호 작용 가능 시간입니다. 계산 방식: domInteractive - fetchStart |
dom |
number(ns) | DOM 구문 분석 소요 시간입니다. 계산 방식: domComplete - domInteractive |
dom_ready |
number(ns) | DOM 준비 시간입니다. 계산 방식: domContentLoadedEventEnd - fetchStart |
time_spent |
number(ns) | 페이지 체류 시간입니다. |
is_active |
boolean | 사용자가 여전히 활성 상태인지 여부를 판단합니다. 참조값: true & false |
통계 지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_error_count |
number | 각 페이지 로드 시 발생한 오류 횟수 |
view_resource_count |
number | 각 페이지 로드 시 요청된 리소스 개수 |
view_long_task_count |
number | 각 페이지 로드 시 발생한 긴 작업 개수 |
view_action_count |
number | 페이지 조회 중 작업 횟수 |
frustration_count |
number | 현재 View와 연결된 좌절 행동 횟수 |
view_apdex_level |
number | 페이지 Apdex 만족도입니다. 기본 지표: first_paint_time (초 단위로 변환)참조값: 0/1/2/3/4/5/6/7/8/9 (first_paint_time 값 기준, 9는 >= 9초를 의미) |
Resource¶
페이지 리소스, XHR 및 fetch 외에도, 실험 기능을 활성화하면 기본 WebSocket 연결도
resource_type = websocket인 Resource를 생성합니다. WebSocket에는 HTTP 응답이 없으므로
resource_status, resource_method 및 HTTP 타이밍이 포함되지 않습니다. 연결, 메시지 및
종료 필드는 WebSocket 장기 연결 수집을 참조하세요.
View 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_id |
string | 페이지에 접속할 때마다 생성되는 고유 ID |
is_active |
boolean | 사용자가 여전히 활성 상태인지 여부를 판단합니다. 참조값: true | false |
view_loading_type |
string | 페이지 로드 유형입니다. 참조값: initial_load |
view_referrer |
string | 페이지 출처 |
view_url |
string | 페이지 URL |
view_host |
string | 페이지 URL의 도메인 부분 |
view_path |
string | 페이지 URL의 경로 부분 |
view_path_group |
string | 페이지 URL 경로 그룹 |
view_url_query |
string | 페이지 URL의 query 부분 |
Resource 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
resource_url |
string | 리소스 URL |
resource_url_host |
string | 리소스 URL의 도메인 부분 |
resource_url_path |
string | 리소스 URL의 경로 부분 |
resource_url_query |
string | 리소스 URL의 query 부분 |
resource_url_path_group |
string | 리소스 URL 경로 그룹 |
resource_type |
string | 리소스의 유형 |
resource_method |
string | 리소스 요청 방식 |
resource_status |
string | 리소스 요청 반환 상태 값 |
resource_status_group |
string | 리소스 요청 반환 상태 그룹 값 |
지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
resource_size |
number | 리소스 크기, 기본 단위: byte |
resource_dns |
number(ns) | 리소스 로드 DNS 해석 시간 계산 방식: domainLookupEnd - domainLookupStart |
resource_tcp |
number(ns) | 리소스 로드 TCP 연결 시간 계산 방식: connectEnd - connectStart |
resource_ssl |
number(ns) | 리소스 로드 SSL 연결 시간 계산 방식: connectEnd - secureConnectStart |
resource_ttfb |
number(ns) | 리소스 로드 요청 응답 시간 계산 방식: responseStart - requestStart |
resource_trans |
number(ns) | 리소스 로드 콘텐츠 전송 시간 계산 방식: responseEnd - responseStart |
resource_first_byte |
number(ns) | 리소스 로드 첫 바이트 시간 계산 방식: responseStart - domainLookupStart |
duration |
number(ns) | 리소스 로드 시간 계산 방식: duration(responseEnd-startTime) |
Error¶
View 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_id |
string | 페이지에 접속할 때마다 생성되는 고유 ID |
is_active |
boolean | 사용자가 여전히 활성 상태인지 여부를 판단합니다. 참조값: true | false |
view_loading_type |
string | 페이지 로드 유형입니다. 참조값: initial_load |
view_referrer |
string | 페이지 출처 |
view_url |
string | 페이지 URL |
view_host |
string | 페이지 URL의 도메인 부분 |
view_path |
string | 페이지 URL의 경로 부분 |
view_path_group |
string | 페이지 URL 경로 그룹 |
view_url_query |
string | 페이지 URL의 query 부분 |
Error 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
error_source |
string | 오류 출처입니다. 참조값: console | network | source | custom |
error_type |
string | 오류 유형입니다. 참조 링크: error type |
resource_status |
string | 리소스 요청 반환 상태 값 |
resource_url |
string | 리소스 URL |
resource_url_host |
string | 리소스 URL의 도메인 부분 |
resource_url_path |
string | 리소스 URL의 경로 부분 |
resource_url_path_group |
string | 리소스 URL 경로 그룹 |
resource_method |
string | 리소스 요청 방식 |
지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
error_message |
string | 오류 메시지 |
error_stack |
string | 오류 스택 |
Long Task¶
View 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_id |
string | 페이지에 접속할 때마다 생성되는 고유 ID |
is_active |
boolean | 사용자가 여전히 활성 상태인지 여부를 판단합니다. 참조값: true | false |
view_loading_type |
string | 페이지 로드 유형입니다. 참조값: initial_load |
view_referrer |
string | 페이지 출처 |
view_url |
string | 페이지 URL |
view_host |
string | 페이지 URL의 도메인 부분 |
view_path |
string | 페이지 URL의 경로 부분 |
view_path_group |
string | 페이지 URL 경로 그룹 |
view_url_query |
string | 페이지 URL의 query 부분 |
지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
duration |
number(ns) | 페이지 로드 시 발생한 긴 작업 소요 시간 |
Action¶
View 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
view_id |
string | 페이지에 접속할 때마다 생성되는 고유 ID |
is_active |
boolean | 사용자가 여전히 활성 상태인지 여부를 판단합니다. 참조값: true | false |
view_loading_type |
string | 페이지 로드 유형입니다. 참조값: initial_load |
view_referrer |
string | 페이지 출처 |
view_url |
string | 페이지 URL |
view_host |
string | 페이지 URL의 도메인 부분 |
view_path |
string | 페이지 URL의 경로 부분 |
view_path_group |
string | 페이지 URL 경로 그룹 |
view_url_query |
string | 페이지 URL의 query 부분 |
Action 속성¶
| 필드 | 유형 | 설명 |
|---|---|---|
action_id |
string | 사용자 페이지 작업 시 생성되는 고유 ID |
action_name |
string | 작업 이름 |
action_type |
string | 작업 유형 |
지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
duration |
number(ns) | 페이지 작업 소요 시간 |
통계 지표¶
| 필드 | 유형 | 설명 |
|---|---|---|
action_long_task_count |
number | 작업 관련 긴 작업 횟수 |
action_resource_count |
number | 작업 관련 리소스 요청 횟수 |
action_error_count |
number | 작업 관련 오류 횟수 |
