제품 분석

Tier: Ultimate Offering: GitLab.com Status: Beta
  • GitLab 15.4에서 실험 기능으로 소개되었으며 기본적으로 비활성화된 cube_api_proxy라는 플래그로 Introduce됨.
  • 로컬지니어에게 배포할 목적으로, GitLab 15.6에서 cube_api_proxy를 GitLab 내부의 제품 분석 API에만 참조하도록 변경함.
  • cube_api_proxy는 GitLab 15.10에서 제거되고 product_analytics_internal_preview로 대체됨.
  • GitLab 15.11에서 product_analytics_internal_previewproduct_analytics_dashboards로 대체됨.
  • GitLab 15.11에서 Snowplow 통합product_analytics_snowplow_support라는 플래그로 기본적으로 비활성화되어 추가됨.
  • Snowplow 통합 플래그 product_analytics_snowplow_support가 기본적으로 비활성화된 채로 GitLab 16.4에서 제거됨.
  • GitLab 16.7에서 GitLab Self-Managed에서 GitLab.com으로 이동됨.
  • GitLab 16.7에서 베타 기능으로 활성화됨.

이 페이지는 진행 중인 작업이며 더 많은 기능을 추가하는 대로 정보를 업데이트합니다. 자세한 정보는 그룹 방향 페이지를 참조하십시오. 제품 분석 버그 또는 기능에 대한 피드백을 남기려면:

  • 이슈 391970에 댓글을 남깁니다.
  • group::product analytics 레이블이 지정된 이슈를 생성합니다.

제품 분석 작동 방식

제품 분석에서는 여러 도구를 사용합니다:

  • Snowplow - 행동 데이터를 수집하고 ClickHouse로 전달하는 개발자 중심 엔진입니다.
  • ClickHouse - 분석 데이터를 저장, 조회 및 검색하는 데 적합한 데이터베이스입니다.
  • Cube - ClickHouse에 저장된 데이터에 대해 쿼리를 실행하기 위한 API를 제공하는 범용 의미론적 레이어입니다.

다음 다이어그램은 제품 분석 흐름을 보여줍니다:

--- title: 제품 분석 흐름 --- flowchart TB subgraph 이벤트 수집 A([SDK]) --사용자 데이터 전송--> B[Snowplow Collector] B --데이터 전달--> C[Snowplow Enricher] end subgraph 데이터 웨어하우스 C --데이터 변환 및 보강--> D([ClickHouse]) end subgraph 대시보드를 사용한 데이터 시각화 E([대시보드]) --YAML 정의에서 생성됨--> 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에서 cube_api_proxyproduct_analytics_admin_settings라는 플래그로 이동됨. 기본적으로 비활성화됨.
  • cube_api_proxy는 GitLab 15.10에서 제거되고 product_analytics_internal_preview로 대체됨.
  • GitLab 15.11에서 product_analytics_internal_previewproduct_analytics_dashboards로 대체됨.

GitLab.com에서 프로젝트 응용 프로그램의 이벤트를 추적하려면, 제품 분석을 활성화하고 구성해야 합니다.

전제 조건:

  • 제품 분석을 사용하려면 그룹의 소유자여야 합니다.

그룹 수준 설정

참고: 이러한 그룹 수준 설정은 최상위 그룹에 대해 사용 가능하며, 해당 그룹에 속하는 모든 프로젝트에 적용됩니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 권한 및 그룹 기능 섹션을 확장합니다.
  4. 실험 및 베타 기능 사용 확인란을 선택합니다.
  5. 제품 분석 사용 확인란을 선택합니다.
  6. 변경 사항 저장을 선택합니다.

프로젝트 수준 설정

관리자가 정의한 인스턴스 수준 설정을 프로젝트별로 재정의할 수 있습니다. 이를 통해 프로젝트마다 다른 구성된 제품 분석 인스턴스를 가질 수 있습니다.

전제 조건:

  • 프로젝트 또는 해당 프로젝트가 속한 그룹의 유지보수자 역할 이상이어야 합니다.
  • 프로젝트가 그룹 네임스페이스여야 합니다.
  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 분석을 선택합니다.
  3. 데이터 소스를 확장하고 구성 값을 입력합니다.
  4. 변경 사항 저장을 선택합니다.

데이터 보존

만약 GitLab이 귀하의 제품 분석 인스턴스를 관리한다면, 귀하의 분석 데이터는 1년 동안 보존됩니다.

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

GitLab 프로젝트에 탑재

GitLab 프로젝트를 탑재하는 것은 제품 분석에 사용되는 이벤트를 받을 준비를 하는 것을 의미합니다.

프로젝트를 탑재하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. Analyze > Analytics 대시보드를 선택합니다.
  3. 제품 분석 아래에서 설정을 선택합니다.
  4. 제품 분석 설정을 선택합니다. 인스턴스가 생성되고 프로젝트가 탑재됩니다.

응용 프로그램을 기기화하다

데이터를 수집하기 위해 코드를 기기화하려면 기존 SDK 중 하나 이상을 사용하십시오:

제품 분석 대시보드

  • GitLab 15.5에서 도입됨 플래그product_analytics_internal_preview와 함께. 기본적으로 비활성화됨.
  • product_analytics_internal_preview가 GitLab 15.11에서 product_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개 데이터 포인트에 대한 제한을 설정하면, 누락된 데이터는 0으로 채워진 채 20개 데이터 포인트가 반환됩니다.

이슈 417231는 이 제약에 대한 해결책을 제안하고 있습니다.

퍼널 분석

퍼널 분석을 사용하여 응용 프로그램을 통한 사용자의 흐름과 미리 정의된 흐름(예: 체크아웃 프로세스 또는 티켓 구매)에서 사용자가 탈락하는 지점을 이해할 수 있습니다.

각 제품은 또한 무제한의 퍼널을 정의할 수 있습니다. 대시보드와 마찬가지로 퍼널은 GitLab YAML 스키마를 사용하여 정의되며 프로젝트 리포지토리의 .gitlab/analytics/funnels/ 디렉터리에 저장됩니다.

퍼널 정의에는 nameseconds_to_convert 키, 그리고 steps의 배열이 포함되어야 합니다.

설명
name 퍼널의 이름.
seconds_to_convert 사용자가 퍼널을 완료하는 데 필요한 초.
steps 퍼널 단계의 배열.

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

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

예시 퍼널 정의

다음 예에서는 세 개의 대상 페이지를 거쳐 1시간 이내에 구매를 완료한 사용자를 추적하는 퍼널을 정의합니다.

name: completed_purchase
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'

퍼널 조회

REST API를 사용하여 퍼널 데이터를 조회할 수 있습니다. 이를 위해 아래 예시 쿼리 본문을 사용하여 FUNNEL_NAME을 퍼널 이름으로 바꿔야 합니다.

주의: afterDate 필터는 지원되지 않습니다. 대신 beforeDate 또는 inDateRange를 사용하세요.

{
  "query": {
      "measures": [
        "FUNNEL_NAME.count"
      ],
      "order": {
        "completed_purchase.count": "desc"
      },
      "filters": [
        {
          "member": "FUNNEL_NAME.date",
          "operator": "beforeDate",
          "values": [
            "2023-02-01"
          ]
        }
      ],
      "dimensions": [
        "FUNNEL_NAME.step"
      ]
    }
}

Raw 데이터 내보내기

기반 스토리지 엔진에서 원시 이벤트 데이터를 내보내면 디버그 및 데이터 분석을 위한 데이터셋을 생성하는 데 도움이 됩니다.

Cube는 원시 데이터와 API 간의 추상화 레이어로 동작하기 때문에 내보낸 원시 데이터에는 몇 가지 주의할 점이 있습니다.

  • 데이터는 선택한 차원으로 그룹화됩니다. 따라서 내보낸 데이터는 utcTimeuserAnonymousId 모두 포함해야 완전하지 않을 수 있습니다.
  • 데이터는 기본적으로 최대 10,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에는 결과의 행 배열이 포함됩니다.

제품 분석 사용량 할당량 보기

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

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

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

해당 탭에는 해당 그룹의 월간 총계와 프로젝트별 사용량 분할이 표시됩니다. 현재 달에는 날짜별 이벤트가 표시됩니다.

사용량 할당량은 제품 분석이 실행되지 않은 프로젝트를 제외합니다.

문제 해결

수집된 이벤트가 없음

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