- 제품 분석 작동 방식
- 제품 분석 활성화
- GitLab 프로젝트 온보딩
- 애플리케이션 계측
- 제품 분석 대시보드
- 깔때기 분석
- 원시 데이터 내보내기
- 제품 분석 사용 할당량 보기
- 모범 사례
- 문제 해결
제품 분석
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를 제공하는 범용 의미 계층입니다.
다음 다이어그램은 제품 분석 흐름을 설명합니다:
제품 분석 활성화
- 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_preview
가product_analytics_dashboards
로 대체되었습니다.- GitLab 16.11에서 기능 플래그
product_analytics_admin_settings
가 기본적으로 활성화되었습니다.- GitLab 17.1에서 기능 플래그
product_analytics_admin_settings
가 제거되었습니다.
프로젝트의 애플리케이션에서 이벤트를 추적하려면,
제품 분석을 활성화하고 구성해야 합니다.
제품 분석 제공자
귀하의 GitLab 인스턴스는 제품 분석 제공자에 연결됩니다.
제품 분석 제공자는 귀하의 분석 데이터를 수신, 처리, 저장 및 쿼리하는 데 필요한 서비스 집합입니다.
GitLab.com에서는 Google Cloud Platform 영역 us-central-1
에서만 제공되는 GitLab 관리 제공자를 사용할 수 있습니다. 이 서비스는 베타 버전으로만 제공됩니다.
GitLab이 귀하의 제품 분석 제공자를 관리하는 경우, 귀하의 분석 데이터는 1년 동안 보관됩니다.
지원팀에 연락하여 언제든지 귀하의 데이터를 삭제 요청할 수 있습니다.
도입됨 GitLab 16.0에서.
자체 관리형 제품 분석 제공자는 제품 분석 Helm 차트의 배포된 인스턴스입니다.
GitLab.com에서는 자체 관리형 제공자 세부정보가 프로젝트 수준 설정에 정의되어 있습니다.
GitLab 자체 관리 및 GitLab 전용에서는 인스턴스 수준 설정에서 자체 관리형 분석 제공자를 정의해야 합니다.
프로젝트마다 다른 제공자가 필요한 경우, 프로젝트 수준 설정에서 추가 분석 제공자를 정의할 수 있습니다.
인스턴스 수준 설정
Offering: Self-managed, GitLab Dedicated
필수 조건:
- 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
참고: 이 인스턴스 수준 설정은 GitLab self-managed 및 GitLab Dedicated에서 제품 분석을 활성화하는 데 필요하며, 기본적으로 모든 프로젝트에 전파됩니다.
인스턴스에서 제품 분석을 활성화하려면:
-
왼쪽 사이드바에서, 하단의 Admin을 선택합니다.
-
Settings > Analytics를 선택합니다.
-
구성 값을 입력합니다.
-
Save changes를 선택합니다.
프로젝트 수준 설정
프로젝트에 대해 다른 구성의 제품 분석 인스턴스를 갖고 싶다면, 관리자가 정의한 인스턴스 수준 설정을 각 프로젝트별로 재정의할 수 있습니다.
필수 조건:
-
프로젝트 또는 프로젝트가 속한 그룹에 대해 최소한 Maintainer 역할이 있어야 합니다.
-
프로젝트는 그룹 네임스페이스에 있어야 합니다.
-
왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
Settings > Analytics를 선택합니다.
-
Data sources를 확장하고 구성 값을 입력합니다.
-
Save changes를 선택합니다.
GitLab 프로젝트 온보딩
- 최소 필수 역할 변경됨 GitLab 17.1에서.
필수 조건:
- 프로젝트 또는 프로젝트가 속한 그룹에 대해 최소한 Maintainer 역할이 있어야 합니다.
GitLab 프로젝트 온보딩은 제품 분석에 사용되는 이벤트를 수신할 수 있도록 준비하는 것을 의미합니다.
프로젝트를 온보딩하려면:
-
왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
Analyze > Analytics dashboards를 선택합니다.
-
Product analytics 아래에서 Set up을 선택합니다.
그런 다음 공급자 유형에 따라 설정을 계속 진행합니다.
필수 조건:
- GitLab-managed provider에 대한 접근 권한이 있어야 합니다.
-
이 지역에서 이벤트 수집 및 처리에 동의합니다. 체크박스를 선택합니다.
-
Connect GitLab-managed provider를 선택합니다.
-
self-managed provider에 대한 프로젝트 수준의 설정이 이미 구성된 경우 제거합니다:
-
Go to analytics settings를 선택합니다.
-
Data sources를 확장하고 구성 값을 제거합니다.
-
Save changes를 선택합니다.
-
Analyze > Analytics dashboards를 선택합니다.
-
Product analytics 아래에서 Set up을 선택합니다.
-
Connect GitLab-managed provider를 선택합니다.
-
당신의 인스턴스가 생성되고 있고, 프로젝트가 온보딩되었습니다.
-
Connect your own provider를 선택합니다.
-
self-managed provider에 대한 프로젝트 수준의 설정을 구성합니다:
-
Go to analytics settings를 선택합니다.
-
Data sources를 확장하고 구성 값을 입력합니다.
-
Save changes를 선택합니다.
-
Analyze > Analytics dashboards를 선택합니다.
-
Product analytics 아래에서 Set up을 선택합니다.
-
Connect your own provider를 선택합니다.
-
당신의 인스턴스가 생성되고 있고, 프로젝트가 온보딩되었습니다.
애플리케이션 계측
Tracking SDKs를 사용하여 데이터를 수집하기 위해 코드를 계측할 수 있습니다.
제품 분석 대시보드
- GitLab 15.5에 플래그
product_analytics_internal_preview
와 함께 도입됨. 기본적으로 비활성화됨.
제품 분석 대시보드는 Analytics dashboards 아래의 대시보드의 하위 집합입니다.
특히, 제품 분석 대시보드 및 시각화는 cube_analytics
데이터 유형을 사용합니다.
cube_analytics
데이터 유형은 제품 분석이 활성화되었을 때 정의된 Cube 인스턴스와 연결됩니다.
모든 필터와 쿼리는 Cube 인스턴스에 전송되며, 반환된 데이터는 제품 분석 데이터 소스에 의해 처리되어 적절한 시각화에 의해 렌더링됩니다.
cube_analytics
의 데이터 테이블 시각화는 links
렌더링을 위한 추가 구성 옵션을 가지고 있습니다.
이 옵션은 각 text
및 href
속성을 가지는 객체의 배열로, 링크에 사용될 차원을 지정합니다.
href
에 여러 차원이 포함될 경우, 값들은 단일 URL로 결합됩니다.
예시를 확인하세요.
누락된 데이터 채우기
- GitLab 16.3에서
product_analytics_dashboards
라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
데이터 내보내기 또는 대시보드 보기 시, 특정 날짜에 데이터가 없으면 누락된 데이터는 0
으로 자동 채워집니다.
자동 채우기 방식에는 장점과 한계가 있습니다.
- 장점:
-
시각화의 날짜 축이 선택한 날짜 범위와 일치하여 누락된 데이터에 대한 모호성을 제거합니다.
-
데이터 내보내기는 전체 날짜 범위를 위한 행을 가지므로 데이터 분석이 용이합니다.
-
- 한계:
-
day
세분성을 사용해야 합니다. 다른 모든 세분성은 지원되지 않습니다. -
inDateRange
필터로 정의된 날짜 범위만 채워집니다.- UI의 날짜 선택기는 이미 이 필터를 사용합니다.
-
데이터 채우기는 쿼리 정의 한계를 무시합니다. 20일 동안 10개의 데이터 포인트로 한계를 설정하면 20개의 데이터 포인트가 반환되며, 누락된 데이터는
0
으로 채워집니다. 문제 417231은 이 한계에 대한 해결책을 제안합니다.
-
깔때기 분석
깔때기 분석을 사용하여 애플리케이션을 통해 사용자의 흐름을 이해하고 정의된 흐름(예: 체크아웃 프로세스 또는 티켓 구매)에서 사용자가 이탈하는 지점을 확인하세요.
각 프로젝트는 무제한의 깔때기를 정의할 수 있습니다.
대시보드처럼, 깔때기는 GitLab YAML 스키마로 정의되며
프로젝트 레포지토리의 .gitlab/analytics/funnels/
디렉토리에 저장됩니다.
레포지토리에 다른 레포지토리를 가리키는 사용자 정의 대시보드 포인터 프로젝트가 있는 경우, 깔때기는 포인터 프로젝트에 정의되어야 합니다.
깔때기 대시보드 생성
깔때기 대시보드를 만들기 위해서는 우선 깔때기 정의 파일과 시각화를 생성해야 합니다.
각 깔때기는 그에 대해 정의된 사용자 정의 시각화를 가져야 합니다.
깔때기 정의와 시각화가 준비되면,
사용자 정의 대시보드 생성하여 깔때기 분석 행동을 시각화할 수 있습니다.
깔때기 정의 만들기
-
.gitlab/analytics/
디렉토리에서funnels
라는 디렉토리를 생성합니다. - 새로 생성한
.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
예를 들어, 퍼널 이름 Successful Conversions
는 successful_conversions
로 변환됩니다.
퍼널 쿼리
이렇게 하려면 아래의 예제 쿼리 본문을 사용하고, FUNNEL_NAME
을 퍼널 이름으로 교체하십시오.
단어를 언더스코어로 구분하고 특수 문자를 제거합니다.
예를 들어, .gitlab/analytics/funnels/Successful Conversions.yaml
의 퍼널 정의 파일에서는 퍼널 이름이 successful_conversions
입니다.
이 퍼널 이름은 시각화 정의에서 참조할 수 있습니다.
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 간의 추상화 계층으로 작용하므로,
내보낸 원시 데이터에는 몇 가지 주의 사항이 있습니다:
- 데이터는 선택한 차원별로 그룹화됩니다. 따라서
utcTime
과userAnonymousId
를 모두 포함하지 않으면 내보낸 데이터가 불완전할 수 있습니다. - 데이터는 기본적으로 10,000행으로 제한되지만 최대 50,000행으로 증가시킬 수 있습니다. 데이터 세트가 50,000행을 초과하는 경우
limit
및offset
매개변수를 사용하여 결과를 페이지로 나누어야 합니다. - 데이터는 항상 JSON 형식으로 반환됩니다. 다른 형식이 필요한 경우 스크립팅 언어를 사용하여 JSON을 필요한 형식으로 변환해야 합니다.
Issue 391683는 더 확장 가능한 내보내기 솔루션 구현을 추적합니다.
Cube 쿼리로 원시 데이터 내보내기
그리고 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
가 제거되었습니다.
제품 분석 사용 할당량은 계측된 애플리케이션에서 수신된 이벤트 수를 기준으로 계산됩니다.
제품 분석 사용 할당량을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 사용 할당량을 선택합니다.
- 제품 분석 탭을 선택합니다.
탭에는 그룹의 월간 총계와 프로젝트별 사용 내역이 표시됩니다.
현재 월에는 오늘까지 집계된 이벤트가 표시됩니다.
사용 할당량은 제품 분석에 온보딩되지 않은 프로젝트는 제외됩니다.
모범 사례
- 처음부터 주요 메트릭과 목표를 정의합니다. 어떤 질문에 답하고 싶은지 결정하여 수집된 데이터를 어떻게 사용할지 알 수 있습니다.
- 사용자 여정의 모든 단계에서 이벤트 데이터를 사용합니다. 이 데이터는 사용자 경험에 대한 포괄적인 뷰를 제공합니다.
- 팀의 필요에 맞춘 대시보드를 구축합니다. 서로 다른 팀은 서로 다른 데이터 통찰력이 필요합니다.
- 대시보드를 정기적으로 검토합니다. 이렇게 하면 고객 결과를 검증하고, 데이터의 경향을 식별하며, 시각화를 업데이트할 수 있습니다.
- 원시 데이터를 주기적으로 내보냅니다. 대시보드는 데이터의 하위 집합에 대한 개요만 제공하므로 더 깊은 분석을 위해 데이터를 내보내야 합니다.
문제 해결
이벤트가 수집되지 않음
계측 세부정보를 확인하고, 제품 분석이 활성화되고 올바르게 설정되었는지 확인하세요.
제품 분석 접근이 제한됨
제품 분석 제공업체에 연결되어 있는지 확인하세요.