이벤트 스트림
수집된 원본 이벤트를 목록으로 보고, 쿼리로 걸러 한 건씩 열어 봅니다.
이벤트 스트림은 집계되기 전의 이벤트를 한 건씩 그대로 보는 화면입니다. 계측이 맞는지 확인할 때, 방금 보낸 이벤트가 도착했는지 볼 때, 이상한 이벤트 한 건을 자세히 볼 때 씁니다.
진입 경로
/dashboard/[orgId]/[projectId]/stream: 사이드바의 이벤트 스트림, 단축키GV- 이벤트의 의미(표시명·상태·전환 여부)는 데이터 카탈로그에서 정합니다.
- 봇·의심 트래픽으로 격리된 이벤트는 여기에 나오지 않습니다. 데이터 카탈로그의 트래픽 품질(
/events/traffic)에서 건수와 사유를 봅니다.
원본 보기링크로 화면 상태 공유하기
기간, 필터, 열, 펼친 행까지 모두 URL에 들어갑니다. 링크를 보내면 받는 사람도 같은 화면을 봅니다.
| 파라미터 | 뜻 |
|---|---|
?query= | 쿼리 (아래 문법) |
?range= | 기간 (15m, 1h, 24h, 7d, custom. 기본 24h) |
?from= | 사용자 지정 기간 시작 (ISO 시각, range=custom일 때만) |
?to= | 사용자 지정 기간 끝 |
?order= | oldest면 오래된 순. 기본은 최신 순 |
?cols= | 표시할 열과 순서 (쉼표 구분, 최대 12개) |
?selected= | 상세 패널을 열어 둘 행의 id |
?live=1 | 실시간 스트림 켜기 (기본 꺼짐. 아래 비용 참고) |
?hist=0 | 상단 타임라인 숨기기 |
기간 선택에는 최근 15분·최근 1시간·최근 24시간·최근 7일이 있습니다. custom(사용자 지정)은 타임라인을 드래그해 구간을 좁혔을 때 생깁니다.
기간을 custom으로 잡으면 끝 시각이 고정되어 그 뒤로 도착할 이벤트가 없으므로 실시간 스트림을 쓸 수 없습니다.
타임라인을 드래그하면 스트림이 꺼지고 스위치가 비활성화됩니다.
range=custom&live=1이 함께 든 링크로 들어오면 "고정된 기간에서는 실시간 스트림을 사용할 수 없습니다."라는 안내가 나옵니다.
from과 to가 거꾸로 된 링크는 빈 결과를 보여 주지 않고 두 값을 바꿔서 읽습니다.
쿼리나 사용자 지정 기간이 걸려 있으면 초기화가 나타납니다. 누르면 쿼리를 비우고 기간을 최근 24시간으로 되돌립니다.
쿼리로 이벤트 거르기
검색창 하나에 자유 검색어와 필드 필터를 함께 씁니다. 아래는 검색창에 힌트로 나오는 예시입니다.
status는 문법을 보여 주려고 넣은 이름이고, 실제 필드는 아래 목록에서 고릅니다.
path:/checkout -status:200 utm_source:* name:(signup or login)| 쓰는 법 | 뜻 |
|---|---|
결제 | 자유 검색 (아래 범위) |
path:/checkout | 값이 정확히 같음 |
path:*checkout* | 값에 포함됨 |
utm_source:* | 값이 있기만 하면 됨 |
duration>1000 | 비교 (> >= < <=) |
name:(a or b) | 여럿 중 하나 |
-country:KR | 앞에 -를 붙이면 제외 |
절끼리는 AND, 괄호 안은 OR입니다. 공백이나 괄호가 든 값은 "결제 완료"처럼 따옴표로 묶습니다.
자유 검색은 이벤트 이름, 경로, 사용자·디바이스·세션 ID, 속성 값에서 찾습니다. 국가나 브라우저 같은 나머지 컬럼은 country:KR처럼 필드로 거르세요.
자유 검색어를 여러 개 쓰면 공백으로 이은 한 문구로 찾습니다. 떨어져 있는 두 단어를 함께 찾으려면 하나를 필드 절로 바꾸세요.
서버가 받는 한도는 필드 절 10개, 절마다 값 20개입니다(name:에는 이름 50개까지). 조건이 그보다 길어지면 저장된 세그먼트를 쓰세요.
/를 누르면 검색창으로 바로 이동합니다.
컬럼과 속성
path처럼 모든 이벤트에 있는 컬럼과 SDK가 보낸 속성 키를 같은 문법으로 씁니다.
path:/checkout과 plan:pro는 같은 종류의 절이고, 컬럼인지 속성인지는 화면이 구분해서 찾습니다.
컬럼은 name·path·profile_id·session_id·device_id·country·city·region·
os·browser·device·brand·model·origin·referrer·channel_type·utm_*·duration 등이고,
필드 목록에서 검색해 고를 수도 있습니다. 처음 보이는 열은 시각·이벤트·경로·사용자·환경·위치입니다.
필드 사이드바와 열
툴바의 필드는 왼쪽 사이드바를 여닫습니다. 이벤트 필드(컬럼)와 속성(SDK가 보낸 키)이 나뉘어 나옵니다.
- 필드를 펼치면 지금 쿼리와 기간에서 그 필드의 상위 값 10개를 셉니다. 값 옆의
… 만 보기·… 제외를 누르면 쿼리에 절이 추가됩니다. - 필드를 열로 추가하거나 뺍니다. 열은 최대 12개까지 주소(
?cols=)에 남고, 열 머리글에서 좌우로 옮깁니다. - 속성 목록은 쿼리가 이벤트 이름 하나로 좁혀져 있으면 그 이벤트의 키를, 아니면 기간 안 이벤트 표본에서 읽은 키를 보여 줍니다. 표본에 없던 키는 빠질 수 있습니다.
시각열 머리글로최신 순과오래된 순을 바꿉니다(?order=).
타임라인 버튼은 위쪽 막대 차트를 켜고 끕니다. 행 간격(촘촘하게·보통·여유롭게)과 사이드바 열림 여부는 주소가 아니라 이 브라우저에 프로젝트별로 저장됩니다.
name:으로 표시명 검색하기
스트림은 원본 키(purchase_completed)를 저장하지만, 카탈로그에서 "결제 완료"라고 이름을 붙였다면
name:"결제 완료"로도 찾을 수 있습니다. 그 표시명을 쓰는 원본 키까지 넓혀서 찾습니다.
- 검색창에는 입력한 글자가 그대로 남습니다. 원본 키로 넓히는 일은 쿼리를 적용할 때 일어나므로, 링크를 공유해도 원본 키가 아니라 입력한 말이 그대로 전달됩니다.
- 입력한 이름을 원본 키로 바꾸지 않고, 원본 키를 더해서 찾습니다. 어떤 이벤트의 원본 키가 다른 이벤트의 표시명과 같을 수 있기 때문입니다. 한 표시명을 두 이벤트가 쓰고 있으면 둘 다 나옵니다.
실시간 스트림의 필터 적용
목록과 타임라인은 서버가 걸러서 돌려줍니다. 실시간 스트림은 연결에 실어 보낼 수 있는 조건이 더 좁아서, 도착한 행을 브라우저가 같은 쿼리로 한 번 더 확인합니다.
사용할 때는 이 차이를 신경 쓰지 않아도 됩니다. 목록에 나오지 않을 행이 실시간으로 들어오는 일은 없습니다.
실시간 스트림
실시간 스트림은 기본으로 꺼져 있습니다. 툴바의 스트림 스위치로 켜고, 켜져 있지 않으면 중지됨이라고 표시됩니다.
실시간 스트림은 데이터 포인트를 쓰지 않습니다. 쿼리를 바꾸거나, 다시 연결하거나, 다른 탭에서 켜면 각각 새 연결입니다.
최신 행에서 벗어나 다른 곳을 읽고 있으면 새 행이 화면을 밀어내지 않고 기다립니다.
읽던 자리가 유지되고, 위에 새 이벤트 N건이 뜹니다. 누르면 최신 행까지 보여 줍니다.
기다리는 행이 1,000건을 넘으면 1000+로 표시하고, 한 건씩 끼워 넣는 대신 목록을 새로 불러옵니다.
타임라인은 서버 집계라 분 단위로 갱신되지만, 그 사이 도착한 실시간 행은 마지막 막대에 더해 셉니다. 목록과 타임라인의 건수가 서로 어긋나지 않게 하기 위해서입니다.
행 하나 열어보기
행을 클릭하면 오른쪽에 상세 패널이 열립니다. ?selected=로 주소에 남으므로 그 행을 그대로 링크할 수 있습니다.
패널은 목록 위에 겹쳐 열리고, 목록은 그대로 스크롤하고 누를 수 있습니다.
패널의 화살표나 키보드 ↑·↓(또는 k·j)로 이전/다음 행으로 이동하고, Esc로 닫습니다.
- 이벤트: 이벤트 이름(원본 키), 시각, 이벤트 ID, 경로, 도메인, 세션, 사용자, 디바이스 ID.
- 속성: 이 이벤트에 담겨 온 키와 값 전부. 키 옆의 타입 표시가 값의 종류를 알려 줍니다. 값마다 복사 버튼이 있고, 아래 원본 JSON에서 전체를 봅니다.
- 환경·유입: OS, 브라우저, 디바이스, 위치와 채널, 유입 경로, UTM. 값이 있는 항목만 나옵니다.
- 링크: 세션은 세션 상세로, 사용자는 사용자 프로필로, 예외 행이면 해당 이슈로 바로 이동합니다.
목록의 이벤트 열에는 카탈로그에 표시 이름이 있으면 그 이름이 보이고, 누르면 카탈로그의 그 이벤트로 이동합니다. 상세 패널은 원본 키를 그대로 보여 줍니다.
속성 타입 표시
속성 옆의 타입 표시는 그 행의 값에서 추론합니다. 다만 값만으로는 판단할 수 없는 경우가 있습니다.
"3"은 버전 코드일 수도 수량일 수도 있지만 둘 다 문자열로 보입니다.
그래서 카탈로그에 타입이 정해져 있으면 값에서 추론한 타입보다 카탈로그의 타입을 우선합니다. 카탈로그에 설명이 적혀 있으면 키에 마우스를 올렸을 때 보이므로, 키의 뜻을 이 화면에서 바로 확인할 수 있습니다.
이 조회는 행을 열었을 때만 일어납니다. 속성 키는 이벤트마다 달라서, 모든 이벤트의 정의를 한 번에 읽어 오면 지금 행에 없는 키의 설명까지 섞이기 때문입니다.
예외 행
$exception 이벤트는 목록에서 다르게 표시됩니다. 이름 자리에 배지와 함께 예외 타입: 메시지가 보여서,
$exception 행이 여러 줄 이어져도 어떤 오류인지 구분됩니다.
배지는 두 가지입니다. try/catch 없이 올라온 예외는 미처리, 코드가 잡아서 보고한 예외는 에러입니다.
셀에서 … 만 보기 / … 제외를 쓰면 메시지가 아니라 $exception으로 걸립니다.
메시지는 이벤트 이름이 아니기 때문입니다. 행에 색을 주는 기준도 같습니다.
메시지를 기준으로 하면 오류마다 색이 달라지기 때문입니다.
이슈로 묶인 예외는 상세 패널 맨 위 에러 구역의 이슈 상세 열기로 /errors/[issueId] 화면에서 이어 봅니다.
행에 이슈 정보가 아직 없으면 링크 대신 "이슈로 묶이는 중입니다."가 보입니다.
저장된 필터
자주 쓰는 조사 조건은 이름을 붙여 저장할 수 있습니다. 쿼리와 열 구성이 저장되고, 기간과 열어 둔 행은 저장되지 않습니다.
이 목록은 브라우저에, 프로젝트별로 저장됩니다. 프로젝트 설정이 아니어서 다른 사람과 공유되지 않습니다. 다른 사람에게 화면을 건넬 때는 URL을 쓰세요. 12개까지 저장되고, 그보다 많아지면 오래된 것부터 빠집니다. 같은 이름으로 저장하면 덮어씁니다.
주의할 점
- 사용자 지정 기간에서는 실시간 스트림이 동작하지 않습니다. 이유는 위 설명을 참고하세요.
- 한 번에 50건씩 불러옵니다. 기간 전체를 다 보여 준 뒤에는 끝까지 불러왔다는 안내가 나옵니다. 한 화면에 쌓아 두는 행은 5,000건까지이므로, 그보다 더 보려면 기간이나 쿼리를 좁히세요.
- 쿼리, 기간, 정렬을 바꾸면 목록을 처음부터 다시 불러옵니다.