제품 분석
Offering: GitLab.com
Status: Beta
- Experiment 기능으로 GitLab 15.4에서 도입되었으며
cube_api_proxy
라는 플래그로 제공되었습니다. 기본적으로 비활성화됩니다.cube_api_proxy
가 GitLab 15.6에서는 GitLab 내 제품 분석 API만을 참조하도록 개정되었습니다.cube_api_proxy
가 제거되고 GitLab 15.10에서product_analytics_internal_preview
로 대체되었습니다.- GitLab 15.11에서
product_analytics_internal_preview
가product_analytics_dashboards
로 대체되었습니다.- Snowplow 통합은 GitLab 15.11에서 플래그를 사용하여 기본적으로 비활성화된 채로 도입되었습니다.
- Snowplow 통합 피처 플래그
product_analytics_snowplow_support
는 GitLab 16.4에서 제거되었습니다.- GitLab 16.7에서 GitLab Self-managed에서 GitLab.com으로 이동되었습니다.
- 16.7에서 Beta 기능으로 활성화되었습니다.
이 페이지는 작업 중이며 더 많은 기능을 추가할 때마다 정보를 업데이트합니다. 자세한 내용은 그룹 방향 페이지를 참조하십시오. 제품 분석 버그 또는 기능에 대한 피드백을 남기려면:
- issue 391970에 댓글 남기기
-
group::product analytics
라벨이 있는 문제 만들기
제품 분석 작동 방법
제품 분석은 다음과 같은 도구를 사용합니다.
- Snowplow - 개발자 중심의 행동 데이터를 수집하여 ClickHouse로 전달하는 엔진입니다.
- ClickHouse - 저장, 쿼리 및 분석 데이터 검색에 적합한 데이터베이스입니다.
- Cube - ClickHouse에 저장된 데이터에 대한 쿼리를 실행하기 위한 API를 제공하는 범용 의미론적 레이어입니다.
다음 다이어그램은 제품 분석 흐름을 보여줍니다.
제품 분석 활성화
- GitLab 15.6에서
cube_api_proxy
라는 플래그로 도입되었습니다. 기본적으로 비활성화됩니다.- GitLab 15.7에서
product_analytics_admin_settings
라는 플래그로 이동되었습니다. 기본적으로 비활성화됩니다.cube_api_proxy
가 제거되고 GitLab 15.10에서product_analytics_internal_preview
로 대체되었습니다.- GitLab 15.11에서
product_analytics_internal_preview
가product_analytics_dashboards
로 대체되었습니다.
GitLab.com에서 프로젝트 응용 프로그램의 이벤트를 추적하려면 제품 분석을 활성화하고 구성해야 합니다.
필수 사항:
- 제품 분석을 활성화하려면 그룹의 소유자여야 합니다.
그룹 수준 설정
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 일반을 선택합니다.
- 권한 및 그룹 기능 섹션을 확장합니다.
- 실험 및 베타 기능 사용 확인란을 선택합니다.
- 제품 분석 사용 확인란을 선택합니다.
- 변경 사항 저장을 선택합니다.
프로젝트 수준 설정
관리자가 정의한 인스턴스 수준 설정을 프로젝트별로 재정의할 수 있습니다. 이를 통해 프로젝트에 대해 다른 구성된 제품 분석 인스턴스를 가질 수 있습니다.
필수 사항:
- 프로젝트 또는 프로젝트가 속한 그룹에 대한 유지자 역할을 최소한으로 가지고 있어야 합니다.
- 프로젝트가 그룹 네임스페이스에 있어야 합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 분석을 선택합니다.
- 데이터 원본을 확장하고 구성 값을 입력합니다.
- 변경 사항 저장을 선택합니다.
데이터 보존
GitLab이 제품 분석 인스턴스를 관리하는 경우 분석 데이터는 1년간 보존됩니다.
언제든지 지원팀에 연락하여 데이터를 삭제할 수 있습니다.
GitLab 프로젝트에 투입
GitLab 프로젝트를 투입하면 제품 분석에 사용되는 이벤트를 준비합니다.
프로젝트를 투입하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 분석 > 분석 대시보드를 선택합니다.
- 제품 분석에서 설정을 선택합니다.
- 제품 분석 설정을 선택합니다. 인스턴스가 생성되고 프로젝트가 투입됩니다.
응용 프로그램에 기기화
데이터 수집을 위해 코드를 기기화하려면 기존 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
에서의 데이터 테이블 시각화는 링크
를 렌더링하는 추가적인 구성 옵션을 갖습니다.
이 옵션은 text
와 href
속성을 갖는 객체 배열로, 링크에 사용될 차원을 지정합니다.
href
에 여러 차원이 포함된 경우 값은 하나의 URL로 결합됩니다.
예제를 확인하세요.
누락된 데이터 채우기
- GitLab 16.3에서 도입되었습니다. 피처 플래그의 이름은
product_analytics_dashboards
입니다. 기본값으로 비활성화되어 있습니다.
데이터를 내보내거나 대시보드를 보는 경우, 특정 날짜에 데이터가 없는 경우 누락된 데이터는 0
으로 자동으로 채워집니다.
자동 채우기 접근 방식에는 장단점이 있습니다.
- 장점:
- 시각화의 날짜 축이 선택한 날짜 범위와 일치하여 누락된 데이터에 대한 모호함이 제거됩니다.
- 데이터 내보내기는 날짜 범위에 대한 행을 갖기 때문에 데이터 분석이 더 쉬워집니다.
- 한계:
-
day
granularity를 사용해야 합니다. 다른 모든 세분화는 지원되지 않습니다. -
inDateRange
필터에 의해 정의된 날짜 범위만 채워집니다.- UI의 날짜 선택기에서 이미 이 필터를 사용합니다.
- 데이터의 채우기는 쿼리로 정의된 제한을 무시합니다. 20일 동안 10개의 데이터 포인트에 대한 제한을 설정했다면,
누락된 데이터가
0
으로 채워진 20개의 데이터 포인트를 반환합니다.
-
Issue 417231는 이 한계에 대한 해결책을 제안합니다.
퍼널 분석
퍼널 분석을 사용하여 애플리케이션을 통한 사용자의 흐름과 사용자가 미리 정의된 흐름(예: 체크아웃 프로세스 또는 티켓 구매)에서 이탈하는 지점을 이해할 수 있습니다.
각 제품은 무제한의 퍼널을 정의할 수 있습니다.
대시보드와 마찬가지로 퍼널은 GitLab YAML 스키마를 사용하여 정의되며, 프로젝트 리포지터리의 .gitlab/analytics/funnels/
디렉터리에 저장됩니다.
퍼널 정의에는 name
과 seconds_to_convert
키 그리고 steps
배열이 포함되어야 합니다.
키 | 설명 |
---|---|
name
| 퍼널의 이름. |
seconds_to_convert
| 사용자가 퍼널을 완료하는 데 걸리는 시간(초). |
steps
| 퍼널 단계 배열. |
각 단계는 name
, target
, 그리고 action
키를 포함해야 합니다.
키 | 설명 |
---|---|
name
| 단계의 이름. 이것은 고유한 슬러그여야 합니다. |
action
| 수행된 작업. (Only pageview is supported.)
|
target
| 단계의 대상. (pageview 만 지원되므로, 이것은 경로여야 합니다.)
|
퍼널 정의 예
다음 예제는 세 개의 대상 페이지를 통해 한 시간 이내에 구매를 완료한 사용자를 추적하는 퍼널을 정의합니다.
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"
]
}
}
원시 데이터 내보내기
기본 저장 엔진에서의 원시 이벤트 데이터를 내보내면 디버깅 및 데이터 분석용 데이터 집합을 생성하는 데 도움이 됩니다.
Cube는 원시 데이터와 API 간의 추상화 계층으로 작동하기 때문에 내보낸 원시 데이터에는 몇 가지 주의사항이 있습니다.
- 데이터는 선택한 차원에 의해 그룹화됩니다. 따라서 내보낸 데이터는
utcTime
과userAnonymousId
모두를 포함해야만 완전하지 않을 수 있습니다. - 데이터는 기본적으로 10,000개의 행으로 제한되지만 최대 50,000개의 행으로 제한을 증가할 수 있습니다. 데이터 집합이 50,000개 이상의 행을 갖는 경우,
limit
및offset
매개변수를 사용하여 결과를 페이징해야 합니다. - 데이터는 항상 JSON 형식으로 반환됩니다. 다른 형식으로 필요한 경우, 선택한 스크립팅 언어를 사용하여 JSON을 원하는 형식으로 변환해야 합니다.
Issue 391683는 더 확장 가능한 내보내기 솔루션을 구현하는 작업을 추적하고 있습니다.
Cube 쿼리를 사용하여 Raw 데이터 내보내기
REST API를 사용하여 Raw 데이터를 쿼리하고 JSON 출력을 필요한 형식으로 변환할 수 있습니다.
특정 차원에 대한 Raw 데이터를 내보내려면 dimensions
키에 차원 디렉터리을 전달하세요. 예를 들어, 다음 쿼리는 다음과 같은 속성에 대한 Raw 데이터를 출력합니다:
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에는 결과의 행 배열이 포함됩니다.
제품 분석 사용량 할당량 확인
제품 분석 사용량 할당량은 계기화된 응용 프로그램에서 받은 이벤트 수에 따라 계산됩니다.
제품 분석 사용량 할당량을 확인하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 그룹을 찾습니다.
- 설정 > 사용량 할당량을 선택합니다.
- 제품 분석 탭을 선택합니다.
탭에는 그룹의 월별 합계 및 프로젝트별 사용량의 세부 정보가 표시됩니다. 현재 달에는 현재까지 계산된 이벤트가 표시됩니다.
사용량 할당량에는 제품 분석에 연동되지 않은 프로젝트가 제외됩니다.
문제 해결
수집된 이벤트가 없음
instrumentation 상세정보를 확인하고, 제품 분석이 활성화되어 있는지 및 올바르게 설정되었는지 확인하세요.