InfoGrab DocsInfoGrab Docs

내부 이벤트 페이로드 샘플

요약

중요: 내부 이벤트 추적(Internal Event Tracking)은 GitLab 내부 분석 목적으로만 데이터를 수집합니다. 이 가이드는 프론트엔드 및 백엔드 서비스에서 추적되는 내부 이벤트의 페이로드 샘플을 제공합니다.

중요: 내부 이벤트 추적(Internal Event Tracking)은 GitLab 내부 분석 목적으로만 데이터를 수집합니다. 이 데이터는 어떠한 서드파티 서비스나 도구와도 공유되지 않습니다. GitLab은 구현 시 Snowplow와 같은 컴포넌트를 사용하지만, 모든 데이터는 GitLab 인프라 내에서 수집, 처리 및 저장됩니다. 사용자 ID는 개인 정보 보호를 위해 가명화되며, GitLab은 사용자를 재식별하는 어떠한 프로세스도 수행하지 않습니다. 데이터 개인 정보 보호에 관한 자세한 내용은 고객 제품 사용 정보를 참조하세요.

내부 이벤트 페이로드#

이 가이드는 프론트엔드 및 백엔드 서비스에서 추적되는 내부 이벤트의 페이로드 샘플을 제공합니다. 각 이벤트 유형에는 필드와 설명이 상세하게 포함되어 있습니다. 내부 이벤트는 Snowplow를 사용하여 이벤트를 추적합니다. 자세한 내용은 Snowplow 이벤트 파라미터 가이드를 참조하세요.

GitLab 18.0부터 Self-Managed 및 Dedicated 인스턴스는 구조화된 이벤트, 자기 설명 이벤트(self-describing event), 페이지 뷰, 페이지 핑을 수집하여 전송합니다. 이는 이전 버전에서 Self-Managed 인스턴스로부터 집계된 메트릭만 수집하던 것과 비교하여 중요한 변경 사항입니다.

이벤트 유형#

내부 이벤트 추적 시스템의 핵심은 이벤트의 세분화된 추적을 위해 설계되었습니다. 각 이벤트는 e=... 파라미터로 표시됩니다.

이벤트에는 세 가지 범주가 있습니다:

  • 페이지 뷰 및 페이지 핑과 같은 표준 이벤트

  • 커스텀 구조화 이벤트

  • 스키마 기반 자기 설명 이벤트

추적 유형 이벤트 유형 (e의 값)
자기 설명 이벤트 ue
페이지 뷰 추적 pv
페이지 핑 pp
커스텀 구조화 이벤트 se

공통 파라미터#

이벤트 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
e event text 이벤트 유형 pv, pp, ue, se
eid event_id text 이벤트 UUID 606adff6-9ccc-41f4-8807-db8fdb600df8

애플리케이션 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
tna namespace_tracker text 트래커 네임스페이스 gl
aid app_id text 애플리케이션의 고유 식별자 gitlab-sm
p platform text 앱이 실행되는 플랫폼 web, srv, app
tv v_tracker text 트래커 버전 식별자 js-3.24.2

타임스탬프 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
dtm dvce_created_tstamp int 클라이언트 장치에서 기록된 이벤트 발생 시각의 타임스탬프 1361553733313
stm dvce_sent_tstamp int 클라이언트 장치에서 수집기로 이벤트를 전송한 시각의 타임스탬프 1361553733371
ttm true_tstamp int 사용자가 설정한 정확한 타임스탬프 1361553733371
tz os_timezone text 클라이언트 장치 OS의 시간대 Europe%2FLondon

참고: 내부 이벤트 수집기는 이벤트가 수집기에 도달한 시각인 collector_tstamp도 캡처합니다.

사용자 관련 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
duid domain_userid text 퍼스트파티 쿠키를 기반으로 한 사용자의 고유 순환 식별자. aeb1691c5a0ee5a6
uid user_id text Snowplow 파이프라인에서 가명화되는 user_id 1234567890
vid domain_sessionidx int 이 사용자가 애플리케이션을 방문한 횟수의 인덱스 1
sid domain_sessionid text 사용자의 단일 방문 또는 세션 중 활동을 추적하기 위해 생성된 고유 식별자(UUID). 이 식별자는 세션 간에 초기화됩니다. 식별자는 개인 정보와 연결되지 않습니다. 9c65e7f3-8e8e-470d-b243-910b5b300da0
ip user_ipaddress, Geo 정보는 수집하지만 Snowplow 파이프라인에서 IP 주소는 저장하지 않음 text IP 주소 재정의 37.157.33.178

플랫폼 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
url page_url text 페이지 URL. URL에서 민감한 데이터를 가명화합니다(예시 참조). https://gitlab.com/dashboard/projects
ua useragent text 사용자 에이전트 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
page page_title text 이 값은 항상 GitLab으로 하드코딩됩니다 GitLab
refr page_referrer text 리퍼러 URL로, page_url과 유사합니다. 리퍼러 URL을 가명화합니다. https://gitlab.com/group:123/project:356
cookie br_cookies boolean 브라우저가 쿠키를 허용합니까? 1
lang br_lang text 브라우저 언어 en-US
cd br_colordepth integer 브라우저 색 깊이 24
cs doc_charset text 웹 페이지의 문자 인코딩 UTF-8
ds doc_width and doc_height text 웹 페이지 너비 및 높이 1090x1152
vp br_viewwidth and br_viewheight text 브라우저 뷰포트 너비 및 높이 1105x390
res dvce_screenwidth and dvce_screenheight text 화면/모니터 해상도 1280x1024

자기 설명 이벤트#

자기 설명 이벤트(Self-describing event)는 내부 이벤트 추적으로 커스텀 이벤트를 추적하는 권장 방법입니다. 이를 통해 미리 정의된 스키마에 따라 이벤트를 추적할 수 있습니다.

자기 설명 이벤트를 추적할 때:

  • 이벤트 유형은 e=ue로 설정됩니다.

  • 이벤트 데이터는 base64로 인코딩되어 페이로드에 포함됩니다.

특정 이벤트 유형#

페이지 뷰#

페이지 뷰 추적은 웹 페이지의 조회를 기록하는 데 사용됩니다.

페이지 뷰를 기록하려면 e=pv인 이벤트를 기록합니다. 웹 이벤트와 관련된 모든 필드를 추적할 수 있습니다.

페이지 핑#

페이지 핑 이벤트는 사용자가 페이지에 활성 상태로 있는 동안 주기적으로 발생하여 사용자 참여를 추적합니다. 페이지에서 실제로 소비한 시간을 측정합니다.

페이지 핑은 e=pp로 식별되며 다음과 같은 추가 필드를 포함합니다:

파라미터 테이블 칼럼 유형 설명
pp_mix pp_xoffset_min integer 마지막 핑 기간에 확인된 최소 페이지 x 오프셋
pp_max pp_xoffset_max integer 마지막 핑 기간에 확인된 최대 페이지 x 오프셋
pp_miy pp_yoffset_min integer 마지막 핑 기간에 확인된 최소 페이지 y 오프셋
pp_may pp_yoffset_max integer 마지막 핑 기간에 확인된 최대 페이지 y 오프셋

구조화 이벤트 추적#

e=se를 설정하는 것 외에도, 설정할 수 있는 5개의 커스텀 이벤트 전용 파라미터가 있습니다:

파라미터 테이블 칼럼 유형 설명 예시 값
se_ca se_category text 이벤트 카테고리. 기본적으로 이벤트가 발생한 위치입니다. 프론트엔드 이벤트의 경우 페이지 이름이며, 백엔드 이벤트의 경우 컨트롤러 이름입니다. projects:merge_requests:show
se_ac se_action text 액션 또는 이벤트 이름 code_suggestion_accepted
se_la se_label text 액션이 수행되는 '객체'를 참조하는 데 자주 사용되는 라벨 ${editor_name}
se_pr se_property text 액션 또는 객체와 관련된 속성 ${suggestion_type}
se_va se_value decimal 사용자 액션과 관련된 값 ${suggestion_shown_duration}
cx contexts JSON 이벤트에 base64 인코딩된 컨텍스트를 전달합니다 JSON

컨텍스트에는 각 이벤트와 함께 전송될 미리 정의된 필드가 일부 포함되어 있습니다. 모든 미리 정의된 스키마는 gitlab-org/iglu 리포지터리에 저장되어 있습니다.

대부분의 자기 설명 이벤트에는 모든 이벤트에 공통적인 필드 세트인 gitlab_standard 컨텍스트가 있습니다. gitlab_standard 컨텍스트에 관한 자세한 내용은 표준 컨텍스트 필드를 참조하세요.

내부 이벤트 페이로드 예시#

페이지 뷰#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pv",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "564f9834-3f98-4d78-a738-b7977d621371",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205227525",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5z...",
      "stm": "1742205227528"
    }
  ]
}

cx 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "production",
        "source": "gitlab-javascript",
        "correlation_id": "01JPHRC3K30KDDV165EWTCFJ02",
        "plan": null,
        "extra": {},
        "user_id": 11979729,
        "global_user_id": "XsZfAb677xjp9zut/lL6X0ZKX5b7pli65uk2wnfu0SY=",
        "is_gitlab_team_member": true,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "saas",
        "instance_id": "ea8bf810-1d6f-4a6a-b4fd-93e8cbd8b57f",
        "host_name": "gitlab-webservice-web-58446c98b5-zprvd",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-17T09:53:46.709Z",
        "google_analytics_id": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
      "data": {
        "id": "90ea98bd-3bdb-48d2-935c-59a4d03a4710"
      }
    },
    {
      "schema": "iglu:com.google.analytics/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.google.ga4/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027",
        "session_cookies": [
          {
            "measurement_id": "G-ENFH3X7M5Y",
            "session_cookie": "GS1.1.1742200876.45.1.1742202521.0.0.0"
          }
        ]
      }
    },
    {
      "schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
      "data": {
        "navigationStart": 1742205226288,
        "redirectStart": 0,
        "redirectEnd": 0,
        "fetchStart": 1742205226289,
        "domainLookupStart": 1742205226289,
        "domainLookupEnd": 1742205226289,
        "connectStart": 1742205226289,
        "secureConnectionStart": 0,
        "connectEnd": 1742205226289,
        "requestStart": 1742205226323,
        "responseStart": 1742205226969,
        "responseEnd": 1742205226972,
        "unloadEventStart": 1742205226975,
        "unloadEventEnd": 1742205226975,
        "domLoading": 1742205226980,
        "domInteractive": 1742205227044,
        "domContentLoadedEventStart": 1742205227437,
        "domContentLoadedEventEnd": 1742205227437,
        "domComplete": 0,
        "loadEventStart": 0,
        "loadEventEnd": 0
      }
    },
    {
      "schema": "iglu:org.ietf/http_client_hints/jsonschema/1-0-0",
      "data": {
        "isMobile": false,
        "brands": [
          {
            "brand": "Chromium",
            "version": "134"
          },
          {
            "brand": "Not:A-Brand",
            "version": "24"
          },
          {
            "brand": "Google Chrome",
            "version": "134"
          }
        ]
      }
    }
  ]
}

페이지 핑#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pp",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "ac958a76-5360-44e1-a9f3-8172d6df0f80",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205324496",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205324501"
    }
  ]
}

자기 설명 이벤트#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "ue",
      "eid": "67ae8ec1-3ec0-46b7-89e0-fd944d90acc6",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205393772",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "ue_px": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205393774"
    }
  ]
}

이것은 링크 클릭 추적의 일부입니다. ue_px 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
  "data": {
    "schema": "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",
    "data": {
      "targetUrl": "https://gitlab.com/",
      "elementId": "",
      "elementClasses": [
        "brand-logo"
      ],
      "elementTarget": ""
    }
  }
}

구조화 이벤트#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "se",
      "se_ca": "root:index",
      "se_ac": "render_duo_chat_callout",
      "eid": "12c18f54-ef65-489e-99f8-00922f9c3249",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205394848",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205395080"
    }
  ]
}

백엔드 이벤트#

{
        "e": "se",
        "eid": "2e78c447-c18e-4087-a3a8-35723ecfb602",
        "aid": "asdfsadf",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
        "tna": "gl",
        "stm": "1742268163018",
        "tv": "rb-0.8.0",
        "se_ac": "perform_action",
        "se_la": "redis_hll_counters.manage.unique_active_users_monthly",
        "se_ca": "Users::ActivityService",
        "p": "srv",
        "dtm": "1742268163016"
      }

cx 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "development",
        "source": "gitlab-rails",
        "correlation_id": "01JPKMCRCBSMB07DPGVSJJ708F",
        "plan": null,
        "extra": {},
        "user_id": 1,
        "global_user_id": "KaAjqePKpCsnc6P40up8ZOi4+BUwEUIyab6W5jWIg5M=",
        "is_gitlab_team_member": null,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "self-managed",
        "instance_id": "e1baa3de-7e45-4fbc-b17e-95995935cf09",
        "host_name": "nbelokolodov--20220811-Y26WJ",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-18 03:22:43 UTC"
      }
    },
    {
      "schema": "iglu:com.gitlab/gitlab_service_ping/jsonschema/1-0-1",
      "data": {
        "data_source": "redis_hll",
        "event_name": "unique_active_user"
      }
    }
  ]
}

내부 이벤트 페이로드 샘플

GitLab v19.1
원문 보기
요약

중요: 내부 이벤트 추적(Internal Event Tracking)은 GitLab 내부 분석 목적으로만 데이터를 수집합니다. 이 가이드는 프론트엔드 및 백엔드 서비스에서 추적되는 내부 이벤트의 페이로드 샘플을 제공합니다.

중요: 내부 이벤트 추적(Internal Event Tracking)은 GitLab 내부 분석 목적으로만 데이터를 수집합니다. 이 데이터는 어떠한 서드파티 서비스나 도구와도 공유되지 않습니다. GitLab은 구현 시 Snowplow와 같은 컴포넌트를 사용하지만, 모든 데이터는 GitLab 인프라 내에서 수집, 처리 및 저장됩니다. 사용자 ID는 개인 정보 보호를 위해 가명화되며, GitLab은 사용자를 재식별하는 어떠한 프로세스도 수행하지 않습니다. 데이터 개인 정보 보호에 관한 자세한 내용은 고객 제품 사용 정보를 참조하세요.

내부 이벤트 페이로드#

이 가이드는 프론트엔드 및 백엔드 서비스에서 추적되는 내부 이벤트의 페이로드 샘플을 제공합니다. 각 이벤트 유형에는 필드와 설명이 상세하게 포함되어 있습니다. 내부 이벤트는 Snowplow를 사용하여 이벤트를 추적합니다. 자세한 내용은 Snowplow 이벤트 파라미터 가이드를 참조하세요.

GitLab 18.0부터 Self-Managed 및 Dedicated 인스턴스는 구조화된 이벤트, 자기 설명 이벤트(self-describing event), 페이지 뷰, 페이지 핑을 수집하여 전송합니다. 이는 이전 버전에서 Self-Managed 인스턴스로부터 집계된 메트릭만 수집하던 것과 비교하여 중요한 변경 사항입니다.

이벤트 유형#

내부 이벤트 추적 시스템의 핵심은 이벤트의 세분화된 추적을 위해 설계되었습니다. 각 이벤트는 e=... 파라미터로 표시됩니다.

이벤트에는 세 가지 범주가 있습니다:

  • 페이지 뷰 및 페이지 핑과 같은 표준 이벤트

  • 커스텀 구조화 이벤트

  • 스키마 기반 자기 설명 이벤트

추적 유형 이벤트 유형 (e의 값)
자기 설명 이벤트 ue
페이지 뷰 추적 pv
페이지 핑 pp
커스텀 구조화 이벤트 se

공통 파라미터#

이벤트 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
e event text 이벤트 유형 pv, pp, ue, se
eid event_id text 이벤트 UUID 606adff6-9ccc-41f4-8807-db8fdb600df8

애플리케이션 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
tna namespace_tracker text 트래커 네임스페이스 gl
aid app_id text 애플리케이션의 고유 식별자 gitlab-sm
p platform text 앱이 실행되는 플랫폼 web, srv, app
tv v_tracker text 트래커 버전 식별자 js-3.24.2

타임스탬프 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
dtm dvce_created_tstamp int 클라이언트 장치에서 기록된 이벤트 발생 시각의 타임스탬프 1361553733313
stm dvce_sent_tstamp int 클라이언트 장치에서 수집기로 이벤트를 전송한 시각의 타임스탬프 1361553733371
ttm true_tstamp int 사용자가 설정한 정확한 타임스탬프 1361553733371
tz os_timezone text 클라이언트 장치 OS의 시간대 Europe%2FLondon

참고: 내부 이벤트 수집기는 이벤트가 수집기에 도달한 시각인 collector_tstamp도 캡처합니다.

사용자 관련 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
duid domain_userid text 퍼스트파티 쿠키를 기반으로 한 사용자의 고유 순환 식별자. aeb1691c5a0ee5a6
uid user_id text Snowplow 파이프라인에서 가명화되는 user_id 1234567890
vid domain_sessionidx int 이 사용자가 애플리케이션을 방문한 횟수의 인덱스 1
sid domain_sessionid text 사용자의 단일 방문 또는 세션 중 활동을 추적하기 위해 생성된 고유 식별자(UUID). 이 식별자는 세션 간에 초기화됩니다. 식별자는 개인 정보와 연결되지 않습니다. 9c65e7f3-8e8e-470d-b243-910b5b300da0
ip user_ipaddress, Geo 정보는 수집하지만 Snowplow 파이프라인에서 IP 주소는 저장하지 않음 text IP 주소 재정의 37.157.33.178

플랫폼 파라미터#

파라미터 테이블 칼럼 유형 설명 예시 값
url page_url text 페이지 URL. URL에서 민감한 데이터를 가명화합니다(예시 참조). https://gitlab.com/dashboard/projects
ua useragent text 사용자 에이전트 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
page page_title text 이 값은 항상 GitLab으로 하드코딩됩니다 GitLab
refr page_referrer text 리퍼러 URL로, page_url과 유사합니다. 리퍼러 URL을 가명화합니다. https://gitlab.com/group:123/project:356
cookie br_cookies boolean 브라우저가 쿠키를 허용합니까? 1
lang br_lang text 브라우저 언어 en-US
cd br_colordepth integer 브라우저 색 깊이 24
cs doc_charset text 웹 페이지의 문자 인코딩 UTF-8
ds doc_width and doc_height text 웹 페이지 너비 및 높이 1090x1152
vp br_viewwidth and br_viewheight text 브라우저 뷰포트 너비 및 높이 1105x390
res dvce_screenwidth and dvce_screenheight text 화면/모니터 해상도 1280x1024

자기 설명 이벤트#

자기 설명 이벤트(Self-describing event)는 내부 이벤트 추적으로 커스텀 이벤트를 추적하는 권장 방법입니다. 이를 통해 미리 정의된 스키마에 따라 이벤트를 추적할 수 있습니다.

자기 설명 이벤트를 추적할 때:

  • 이벤트 유형은 e=ue로 설정됩니다.

  • 이벤트 데이터는 base64로 인코딩되어 페이로드에 포함됩니다.

특정 이벤트 유형#

페이지 뷰#

페이지 뷰 추적은 웹 페이지의 조회를 기록하는 데 사용됩니다.

페이지 뷰를 기록하려면 e=pv인 이벤트를 기록합니다. 웹 이벤트와 관련된 모든 필드를 추적할 수 있습니다.

페이지 핑#

페이지 핑 이벤트는 사용자가 페이지에 활성 상태로 있는 동안 주기적으로 발생하여 사용자 참여를 추적합니다. 페이지에서 실제로 소비한 시간을 측정합니다.

페이지 핑은 e=pp로 식별되며 다음과 같은 추가 필드를 포함합니다:

파라미터 테이블 칼럼 유형 설명
pp_mix pp_xoffset_min integer 마지막 핑 기간에 확인된 최소 페이지 x 오프셋
pp_max pp_xoffset_max integer 마지막 핑 기간에 확인된 최대 페이지 x 오프셋
pp_miy pp_yoffset_min integer 마지막 핑 기간에 확인된 최소 페이지 y 오프셋
pp_may pp_yoffset_max integer 마지막 핑 기간에 확인된 최대 페이지 y 오프셋

구조화 이벤트 추적#

e=se를 설정하는 것 외에도, 설정할 수 있는 5개의 커스텀 이벤트 전용 파라미터가 있습니다:

파라미터 테이블 칼럼 유형 설명 예시 값
se_ca se_category text 이벤트 카테고리. 기본적으로 이벤트가 발생한 위치입니다. 프론트엔드 이벤트의 경우 페이지 이름이며, 백엔드 이벤트의 경우 컨트롤러 이름입니다. projects:merge_requests:show
se_ac se_action text 액션 또는 이벤트 이름 code_suggestion_accepted
se_la se_label text 액션이 수행되는 '객체'를 참조하는 데 자주 사용되는 라벨 ${editor_name}
se_pr se_property text 액션 또는 객체와 관련된 속성 ${suggestion_type}
se_va se_value decimal 사용자 액션과 관련된 값 ${suggestion_shown_duration}
cx contexts JSON 이벤트에 base64 인코딩된 컨텍스트를 전달합니다 JSON

컨텍스트에는 각 이벤트와 함께 전송될 미리 정의된 필드가 일부 포함되어 있습니다. 모든 미리 정의된 스키마는 gitlab-org/iglu 리포지터리에 저장되어 있습니다.

대부분의 자기 설명 이벤트에는 모든 이벤트에 공통적인 필드 세트인 gitlab_standard 컨텍스트가 있습니다. gitlab_standard 컨텍스트에 관한 자세한 내용은 표준 컨텍스트 필드를 참조하세요.

내부 이벤트 페이로드 예시#

페이지 뷰#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pv",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "564f9834-3f98-4d78-a738-b7977d621371",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205227525",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5z...",
      "stm": "1742205227528"
    }
  ]
}

cx 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "production",
        "source": "gitlab-javascript",
        "correlation_id": "01JPHRC3K30KDDV165EWTCFJ02",
        "plan": null,
        "extra": {},
        "user_id": 11979729,
        "global_user_id": "XsZfAb677xjp9zut/lL6X0ZKX5b7pli65uk2wnfu0SY=",
        "is_gitlab_team_member": true,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "saas",
        "instance_id": "ea8bf810-1d6f-4a6a-b4fd-93e8cbd8b57f",
        "host_name": "gitlab-webservice-web-58446c98b5-zprvd",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-17T09:53:46.709Z",
        "google_analytics_id": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
      "data": {
        "id": "90ea98bd-3bdb-48d2-935c-59a4d03a4710"
      }
    },
    {
      "schema": "iglu:com.google.analytics/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.google.ga4/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027",
        "session_cookies": [
          {
            "measurement_id": "G-ENFH3X7M5Y",
            "session_cookie": "GS1.1.1742200876.45.1.1742202521.0.0.0"
          }
        ]
      }
    },
    {
      "schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
      "data": {
        "navigationStart": 1742205226288,
        "redirectStart": 0,
        "redirectEnd": 0,
        "fetchStart": 1742205226289,
        "domainLookupStart": 1742205226289,
        "domainLookupEnd": 1742205226289,
        "connectStart": 1742205226289,
        "secureConnectionStart": 0,
        "connectEnd": 1742205226289,
        "requestStart": 1742205226323,
        "responseStart": 1742205226969,
        "responseEnd": 1742205226972,
        "unloadEventStart": 1742205226975,
        "unloadEventEnd": 1742205226975,
        "domLoading": 1742205226980,
        "domInteractive": 1742205227044,
        "domContentLoadedEventStart": 1742205227437,
        "domContentLoadedEventEnd": 1742205227437,
        "domComplete": 0,
        "loadEventStart": 0,
        "loadEventEnd": 0
      }
    },
    {
      "schema": "iglu:org.ietf/http_client_hints/jsonschema/1-0-0",
      "data": {
        "isMobile": false,
        "brands": [
          {
            "brand": "Chromium",
            "version": "134"
          },
          {
            "brand": "Not:A-Brand",
            "version": "24"
          },
          {
            "brand": "Google Chrome",
            "version": "134"
          }
        ]
      }
    }
  ]
}

페이지 핑#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pp",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "ac958a76-5360-44e1-a9f3-8172d6df0f80",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205324496",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205324501"
    }
  ]
}

자기 설명 이벤트#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "ue",
      "eid": "67ae8ec1-3ec0-46b7-89e0-fd944d90acc6",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205393772",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "ue_px": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205393774"
    }
  ]
}

이것은 링크 클릭 추적의 일부입니다. ue_px 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
  "data": {
    "schema": "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",
    "data": {
      "targetUrl": "https://gitlab.com/",
      "elementId": "",
      "elementClasses": [
        "brand-logo"
      ],
      "elementTarget": ""
    }
  }
}

구조화 이벤트#

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "se",
      "se_ca": "root:index",
      "se_ac": "render_duo_chat_callout",
      "eid": "12c18f54-ef65-489e-99f8-00922f9c3249",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205394848",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205395080"
    }
  ]
}

백엔드 이벤트#

{
        "e": "se",
        "eid": "2e78c447-c18e-4087-a3a8-35723ecfb602",
        "aid": "asdfsadf",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
        "tna": "gl",
        "stm": "1742268163018",
        "tv": "rb-0.8.0",
        "se_ac": "perform_action",
        "se_la": "redis_hll_counters.manage.unique_active_users_monthly",
        "se_ca": "Users::ActivityService",
        "p": "srv",
        "dtm": "1742268163016"
      }

cx 필드는 base64로 인코딩되어 있으며 다음 JSON을 포함합니다:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "development",
        "source": "gitlab-rails",
        "correlation_id": "01JPKMCRCBSMB07DPGVSJJ708F",
        "plan": null,
        "extra": {},
        "user_id": 1,
        "global_user_id": "KaAjqePKpCsnc6P40up8ZOi4+BUwEUIyab6W5jWIg5M=",
        "is_gitlab_team_member": null,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "self-managed",
        "instance_id": "e1baa3de-7e45-4fbc-b17e-95995935cf09",
        "host_name": "nbelokolodov--20220811-Y26WJ",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-18 03:22:43 UTC"
      }
    },
    {
      "schema": "iglu:com.gitlab/gitlab_service_ping/jsonschema/1-0-1",
      "data": {
        "data_source": "redis_hll",
        "event_name": "unique_active_user"
      }
    }
  ]
}