제품 분석

Tier: Ultimate Offering: GitLab.com, Self-managed
Status: Beta
  • GitLab 15.4에서 실험 기능으로 도입되었습니다. cube_api_proxy라는 플래그가 있습니다. 기본적으로 비활성화되어 있습니다.
  • cube_api_proxy는 GitLab 15.6에서 제품 분석 API만 참조하도록 변경되었습니다.
  • cube_api_proxy는 GitLab 15.10에서 제거되고 product_analytics_internal_preview로 대체되었습니다.
  • product_analytics_internal_preview는 GitLab 15.11에서 product_analytics_dashboards로 대체되었습니다.
  • Snowplow 통합이 GitLab 15.11에서 도입되었습니다. product_analytics_snowplow_support라는 플래그가 있습니다. 기본적으로 비활성화되어 있습니다.
  • Snowplow 통합 기능 플래그 product_analytics_snowplow_support는 GitLab 16.4에서 제거되었습니다.
  • GitLab 16.7에서 GitLab self-managed에서 GitLab.com으로 이동했습니다.
  • GitLab 16.7에서 베타 기능으로 활성화되었습니다.
  • GitLab 16.11에서 기본적으로 product_analytics_dashboards활성화되었습니다.
  • GitLab 16.11에서 self-managed 및 GitLab 전용으로 활성화되었습니다.
  • 기능 플래그 product_analytics_dashboards는 GitLab 17.1에서 제거되었습니다.
  • 베타로 변경되었습니다 및 GitLab 17.5에 product_analytics_admin_settings 기능 플래그가 추가되었습니다.
  • 베타로 변경되었습니다 및 GitLab 17.5에 product_analytics_features 기능 플래그가 추가되었습니다.

이 기능의 사용 가능성은 기능 플래그에 의해 제어됩니다.
자세한 내용은 역사 기록을 참조하세요.
이 기능은 생산 환경에서 사용할 준비가 되어 있지 않습니다.

제품 분석 기능은 사용자 행동을 추적하고 애플리케이션 사용 방식과 사용자 제품 상호작용 방식을 이해할 수 있는 통찰력을 제공하여,
사용자를 더 잘 이해하고, 퍼널의 마찰 지점을 식별하며, 데이터 기반 제품 결정을 내리고, 궁극적으로 사용자 참여와 비즈니스 성장을 이끄는 더 나은 제품을 만들 수 있게 합니다.


제품 분석 설정 및 기능에 대한 개요를 보려면,
제품 분석 워크스루 비디오를 시청하세요.

제품 분석의 비전 및 개발에 대한 자세한 내용은 그룹 방향 페이지를 참조하세요.
제품 분석 버그 또는 기능에 대한 피드백을 남기려면:

  • 이슈 391970에 댓글을 남기세요.
  • group::product analytics 레이블로 이슈를 생성하세요.

제품 분석 작동 방식

제품 분석은 다음 도구를 사용합니다:

  • Snowplow - 행동 데이터를 수집하고 ClickHouse로 전달하는 개발자 우선 엔진입니다.
  • ClickHouse - 분석 데이터를 저장, 쿼리 및 검색하는 데 적합한 데이터베이스입니다.
  • Cube - ClickHouse에 저장된 데이터에 대해 쿼리를 실행할 수 있는 API를 제공하는 범용 의미 계층입니다.

다음 다이어그램은 제품 분석 흐름을 설명합니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart TB accTitle: 제품 분석 흐름 accDescr: 데이터가 수집되고, 처리되며, 대시보드에서 시각화되는 방식. subgraph 이벤트 수집 A([SDK]) --사용자 데이터 전송--> B[Snowplow 수집기] B --데이터 전송--> C[Snowplow 보강기] end subgraph 데이터 웨어하우스 C --데이터 변환 및 보강--> D([ClickHouse]) end subgraph 데이터 시각화 F([패널/시각화가 있는 대시보드]) F --데이터 요청--> G[제품 분석 API] G --사전 집계와 함께 Cube 쿼리 실행--> H[Cube] H --데이터 가져오기--> D D --결과 반환--> H H --렌더링할 데이터 변환--> G G --데이터 반환--> F end

제품 분석 활성화

  • GitLab 15.6에서 cube_api_proxy라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 15.7에서 product_analytics_admin_settings라는 플래그 뒤로 이동했습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 15.10에서 기능 플래그 cube_api_proxy가 제거되고 product_analytics_internal_preview로 대체되었습니다.
  • GitLab 15.11에서 기능 플래그 product_analytics_internal_previewproduct_analytics_dashboards로 대체되었습니다.
  • GitLab 16.11에서 기능 플래그 product_analytics_admin_settings가 기본적으로 활성화되었습니다.
  • GitLab 17.1에서 기능 플래그 product_analytics_admin_settings제거되었습니다.

프로젝트의 애플리케이션에서 이벤트를 추적하려면,

제품 분석을 활성화하고 구성해야 합니다.

제품 분석 제공자

귀하의 GitLab 인스턴스는 제품 분석 제공자에 연결됩니다.

제품 분석 제공자는 귀하의 분석 데이터를 수신, 처리, 저장 및 쿼리하는 데 필요한 서비스 집합입니다.

GitLab 관리 제공자
Offering: GitLab.com

GitLab.com에서는 Google Cloud Platform 영역 us-central-1에서만 제공되는 GitLab 관리 제공자를 사용할 수 있습니다. 이 서비스는 베타 버전으로만 제공됩니다.

GitLab이 귀하의 제품 분석 제공자를 관리하는 경우, 귀하의 분석 데이터는 1년 동안 보관됩니다.

지원팀에 연락하여 언제든지 귀하의 데이터를 삭제 요청할 수 있습니다.

Self-managed provider

도입됨 GitLab 16.0에서.

자체 관리형 제품 분석 제공자는 제품 분석 Helm 차트의 배포된 인스턴스입니다.

GitLab.com에서는 자체 관리형 제공자 세부정보가 프로젝트 수준 설정에 정의되어 있습니다.

GitLab 자체 관리 및 GitLab 전용에서는 인스턴스 수준 설정에서 자체 관리형 분석 제공자를 정의해야 합니다.

프로젝트마다 다른 제공자가 필요한 경우, 프로젝트 수준 설정에서 추가 분석 제공자를 정의할 수 있습니다.

인스턴스 수준 설정

Offering: Self-managed, GitLab Dedicated

필수 조건:

  • 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.

참고: 이 인스턴스 수준 설정은 GitLab self-managed 및 GitLab Dedicated에서 제품 분석을 활성화하는 데 필요하며, 기본적으로 모든 프로젝트에 전파됩니다.

인스턴스에서 제품 분석을 활성화하려면:

  1. 왼쪽 사이드바에서, 하단의 Admin을 선택합니다.

  2. Settings > Analytics를 선택합니다.

  3. 구성 값을 입력합니다.

  4. Save changes를 선택합니다.

프로젝트 수준 설정

프로젝트에 대해 다른 구성의 제품 분석 인스턴스를 갖고 싶다면, 관리자가 정의한 인스턴스 수준 설정을 각 프로젝트별로 재정의할 수 있습니다.

필수 조건:

  • 프로젝트 또는 프로젝트가 속한 그룹에 대해 최소한 Maintainer 역할이 있어야 합니다.

  • 프로젝트는 그룹 네임스페이스에 있어야 합니다.

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. Settings > Analytics를 선택합니다.

  3. Data sources를 확장하고 구성 값을 입력합니다.

  4. Save changes를 선택합니다.

GitLab 프로젝트 온보딩

  • 최소 필수 역할 변경됨 GitLab 17.1에서.

필수 조건:

  • 프로젝트 또는 프로젝트가 속한 그룹에 대해 최소한 Maintainer 역할이 있어야 합니다.

GitLab 프로젝트 온보딩은 제품 분석에 사용되는 이벤트를 수신할 수 있도록 준비하는 것을 의미합니다.

프로젝트를 온보딩하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. Analyze > Analytics dashboards를 선택합니다.

  3. Product analytics 아래에서 Set up을 선택합니다.

그런 다음 공급자 유형에 따라 설정을 계속 진행합니다.

GitLab-managed provider

필수 조건:

  1. 이 지역에서 이벤트 수집 및 처리에 동의합니다. 체크박스를 선택합니다.

  2. Connect GitLab-managed provider를 선택합니다.

  3. self-managed provider에 대한 프로젝트 수준의 설정이 이미 구성된 경우 제거합니다:

    1. Go to analytics settings를 선택합니다.

    2. Data sources를 확장하고 구성 값을 제거합니다.

    3. Save changes를 선택합니다.

    4. Analyze > Analytics dashboards를 선택합니다.

    5. Product analytics 아래에서 Set up을 선택합니다.

    6. Connect GitLab-managed provider를 선택합니다.

당신의 인스턴스가 생성되고 있고, 프로젝트가 온보딩되었습니다.

Self-managed provider
  1. Connect your own provider를 선택합니다.

  2. self-managed provider에 대한 프로젝트 수준의 설정을 구성합니다:

    1. Go to analytics settings를 선택합니다.

    2. Data sources를 확장하고 구성 값을 입력합니다.

    3. Save changes를 선택합니다.

    4. Analyze > Analytics dashboards를 선택합니다.

    5. Product analytics 아래에서 Set up을 선택합니다.

    6. Connect your own provider를 선택합니다.

당신의 인스턴스가 생성되고 있고, 프로젝트가 온보딩되었습니다.

애플리케이션 계측

Tracking SDKs를 사용하여 데이터를 수집하기 위해 코드를 계측할 수 있습니다.

제품 분석 대시보드

  • GitLab 15.5에 플래그 product_analytics_internal_preview와 함께 도입됨. 기본적으로 비활성화됨.

제품 분석 대시보드는 Analytics dashboards 아래의 대시보드의 하위 집합입니다.

특히, 제품 분석 대시보드 및 시각화는 cube_analytics 데이터 유형을 사용합니다.

cube_analytics 데이터 유형은 제품 분석이 활성화되었을 때 정의된 Cube 인스턴스와 연결됩니다.

모든 필터와 쿼리는 Cube 인스턴스에 전송되며, 반환된 데이터는 제품 분석 데이터 소스에 의해 처리되어 적절한 시각화에 의해 렌더링됩니다.

cube_analytics의 데이터 테이블 시각화는 links 렌더링을 위한 추가 구성 옵션을 가지고 있습니다.

이 옵션은 각 texthref 속성을 가지는 객체의 배열로, 링크에 사용될 차원을 지정합니다.

href에 여러 차원이 포함될 경우, 값들은 단일 URL로 결합됩니다.

예시를 확인하세요.

누락된 데이터 채우기

  • GitLab 16.3에서 product_analytics_dashboards라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.

데이터 내보내기 또는 대시보드 보기 시, 특정 날짜에 데이터가 없으면 누락된 데이터는 0으로 자동 채워집니다.

자동 채우기 방식에는 장점과 한계가 있습니다.

  • 장점:
    • 시각화의 날짜 축이 선택한 날짜 범위와 일치하여 누락된 데이터에 대한 모호성을 제거합니다.

    • 데이터 내보내기는 전체 날짜 범위를 위한 행을 가지므로 데이터 분석이 용이합니다.

  • 한계:
    • day 세분성을 사용해야 합니다. 다른 모든 세분성은 지원되지 않습니다.

    • inDateRange 필터로 정의된 날짜 범위만 채워집니다.

      • UI의 날짜 선택기는 이미 이 필터를 사용합니다.
    • 데이터 채우기는 쿼리 정의 한계를 무시합니다. 20일 동안 10개의 데이터 포인트로 한계를 설정하면 20개의 데이터 포인트가 반환되며, 누락된 데이터는 0으로 채워집니다. 문제 417231은 이 한계에 대한 해결책을 제안합니다.

깔때기 분석

깔때기 분석을 사용하여 애플리케이션을 통해 사용자의 흐름을 이해하고 정의된 흐름(예: 체크아웃 프로세스 또는 티켓 구매)에서 사용자가 이탈하는 지점을 확인하세요.

각 프로젝트는 무제한의 깔때기를 정의할 수 있습니다.

대시보드처럼, 깔때기는 GitLab YAML 스키마로 정의되며 프로젝트 레포지토리의 .gitlab/analytics/funnels/ 디렉토리에 저장됩니다.

레포지토리에 다른 레포지토리를 가리키는 사용자 정의 대시보드 포인터 프로젝트가 있는 경우, 깔때기는 포인터 프로젝트에 정의되어야 합니다.

깔때기 대시보드 생성

깔때기 대시보드를 만들기 위해서는 우선 깔때기 정의 파일과 시각화를 생성해야 합니다.
각 깔때기는 그에 대해 정의된 사용자 정의 시각화를 가져야 합니다.
깔때기 정의와 시각화가 준비되면,
사용자 정의 대시보드 생성하여 깔때기 분석 행동을 시각화할 수 있습니다.

깔때기 정의 만들기

  1. .gitlab/analytics/ 디렉토리에서 funnels라는 디렉토리를 생성합니다.
  2. 새로 생성한 .gitlab/analytics/funnels 디렉토리에서 깔때기 정의 YAML 파일을 생성합니다.

깔때기 정의에는 seconds_to_convert 키와 steps의 배열이 포함되어야 합니다.

설명
seconds_to_convert 사용자가 깔때기를 완료하는 데 필요한 초의 수입니다.
steps 깔때기 단계를 나타내는 배열입니다.

각 단계는 name, target, action 키를 포함해야 합니다.

설명
name 단계의 이름입니다. 고유한 슬러그여야 합니다.
action 수행되는 동작입니다. (pageview만 지원됩니다.)
target 단계의 대상입니다. (pageview만 지원되므로 경로여야 합니다.)

다음 예시는 사용자가 세 개의 대상 페이지를 거쳐 1시간 이내에 구매를 완료한 추적하는 깔때기를 정의합니다:

seconds_to_convert: 3600
steps:
  - name: view_page_1
    target: '/page1.html'
    action: 'pageview'
  - name: view_page_2
    target: '/page2.html'
    action: 'pageview'
  - name: view_page_3
    target: '/page3.html'
    action: 'pageview'

퍼널 시각화 생성

퍼널 시각화를 생성하려면 차트 시각화 정의 단계를 따르세요.

퍼널 시각화는 count 측정값과 step 차원을 지원합니다.

다음 예제에서는 퍼널의 다양한 단계에 도달한 사용자 수를 시각화하는 열 차트를 정의합니다:

version: 1
type: ColumnChart
data:
  type: cube_analytics
  query:
    measures:
      - FUNNEL_NAME.count
    dimensions:
      - FUNNEL_NAME.step
    limit: 100
    timezone: UTC
    timeDimensions: []
options:
  xAxis:
    name: Step
    type: category
  yAxis:
    name: Total
    type: value
note
YAML 정의에서 정의된 퍼널 이름은 시각화 정의에서 참조할 수 있는 슬러그로 변환됩니다.

예를 들어, 퍼널 이름 Successful Conversionssuccessful_conversions로 변환됩니다.

퍼널 쿼리

REST API로 퍼널 데이터를 쿼리할 수 있습니다.

이렇게 하려면 아래의 예제 쿼리 본문을 사용하고, FUNNEL_NAME을 퍼널 이름으로 교체하십시오.

note
퍼널의 이름은 퍼널 정의 YAML 파일의 파일 이름에서 생성되며,

단어를 언더스코어로 구분하고 특수 문자를 제거합니다.

예를 들어, .gitlab/analytics/funnels/Successful Conversions.yaml의 퍼널 정의 파일에서는 퍼널 이름이 successful_conversions입니다.

이 퍼널 이름은 시각화 정의에서 참조할 수 있습니다.

note
afterDate 필터는 지원되지 않습니다. beforeDate 또는 inDateRange를 사용하십시오.
{
  "query": {
      "measures": [
        "FUNNEL_NAME.count"
      ],
      "order": {
        "FUNNEL_NAME.count": "desc"
      },
      "filters": [
        {
          "member": "FUNNEL_NAME.date",
          "operator": "beforeDate",
          "values": [
            "2023-02-01"
          ]
        }
      ],
      "dimensions": [
        "FUNNEL_NAME.step"
      ]
    }
}

원시 데이터 내보내기

기본 저장 엔진에서 원시 이벤트 데이터를 내보내는 것은 디버깅 및 데이터 분석을 위한 데이터 세트를 만드는 데 도움이 될 수 있습니다.

Cube는 원시 데이터와 API 간의 추상화 계층으로 작용하므로,

내보낸 원시 데이터에는 몇 가지 주의 사항이 있습니다:

  • 데이터는 선택한 차원별로 그룹화됩니다. 따라서 utcTimeuserAnonymousId를 모두 포함하지 않으면 내보낸 데이터가 불완전할 수 있습니다.
  • 데이터는 기본적으로 10,000행으로 제한되지만 최대 50,000행으로 증가시킬 수 있습니다. 데이터 세트가 50,000행을 초과하는 경우 limitoffset 매개변수를 사용하여 결과를 페이지로 나누어야 합니다.
  • 데이터는 항상 JSON 형식으로 반환됩니다. 다른 형식이 필요한 경우 스크립팅 언어를 사용하여 JSON을 필요한 형식으로 변환해야 합니다.

Issue 391683는 더 확장 가능한 내보내기 솔루션 구현을 추적합니다.

Cube 쿼리로 원시 데이터 내보내기

REST API로 원시 데이터 쿼리할 수 있습니다,

그리고 JSON 출력을 필요한 형식으로 변환할 수 있습니다.

특정 차원의 원시 데이터를 내보내려면 dimensions 키에 차원 목록을 전달하십시오.

예를 들어, 다음 쿼리는 나열된 속성의 원시 데이터를 출력합니다:

POST /api/v4/projects/PROJECT_ID/product_analytics/request/load?queryType=multi

{
    "query":{
  "dimensions": [
    "TrackedEvents.docEncoding",
    "TrackedEvents.docHost",
    "TrackedEvents.docPath",
    "TrackedEvents.docSearch",
    "TrackedEvents.eventType",
    "TrackedEvents.localTzOffset",
    "TrackedEvents.pageTitle",
    "TrackedEvents.src",
    "TrackedEvents.utcTime",
    "TrackedEvents.vpSize"
  ],
  "order": {
    "TrackedEvents.apiKey": "asc"
  }
    }
}

요청이 성공하면, 반환된 JSON에는 결과 행 배열이 포함됩니다.

제품 분석 사용 할당량 보기

  • GitLab 16.6에서 product_analytics_usage_quota라는 플래그로 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 16.7에서 일반적으로 제공됩니다. 기능 플래그 product_analytics_usage_quota가 제거되었습니다.

제품 분석 사용 할당량은 계측된 애플리케이션에서 수신된 이벤트 수를 기준으로 계산됩니다.

제품 분석 사용 할당량을 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 설정 > 사용 할당량을 선택합니다.
  3. 제품 분석 탭을 선택합니다.

탭에는 그룹의 월간 총계와 프로젝트별 사용 내역이 표시됩니다.

현재 월에는 오늘까지 집계된 이벤트가 표시됩니다.

사용 할당량은 제품 분석에 온보딩되지 않은 프로젝트는 제외됩니다.

모범 사례

  • 처음부터 주요 메트릭과 목표를 정의합니다. 어떤 질문에 답하고 싶은지 결정하여 수집된 데이터를 어떻게 사용할지 알 수 있습니다.
  • 사용자 여정의 모든 단계에서 이벤트 데이터를 사용합니다. 이 데이터는 사용자 경험에 대한 포괄적인 뷰를 제공합니다.
  • 팀의 필요에 맞춘 대시보드를 구축합니다. 서로 다른 팀은 서로 다른 데이터 통찰력이 필요합니다.
  • 대시보드를 정기적으로 검토합니다. 이렇게 하면 고객 결과를 검증하고, 데이터의 경향을 식별하며, 시각화를 업데이트할 수 있습니다.
  • 원시 데이터를 주기적으로 내보냅니다. 대시보드는 데이터의 하위 집합에 대한 개요만 제공하므로 더 깊은 분석을 위해 데이터를 내보내야 합니다.

문제 해결

이벤트가 수집되지 않음

계측 세부정보를 확인하고, 제품 분석이 활성화되고 올바르게 설정되었는지 확인하세요.

제품 분석 접근이 제한됨

제품 분석 제공업체에 연결되어 있는지 확인하세요.