로컬 설정 및 디버깅
개인정보 보호 필터(예: AdBlock, uBlock) 및 Do-Not-Track(DNT)와 같은 브라우저 설정이 필요합니다.
추적에 영향을 미치는 설정에 대해 자세히 알아보세요.
내부 이벤트는 Snowplow라는 도구를 사용하여 처리됩니다. 내부 이벤트를 개발하고 테스트하기 위해서는
프론트엔드 및 백엔드 이벤트를 테스트할 수 있는 여러 도구가 있습니다:
테스트 도구 | 프론트엔드 추적 | 백엔드 추적 | 로컬 개발 환경 | 프로덕션 환경 | 개별 이벤트 표시 |
---|---|---|---|---|---|
내부 이벤트 모니터 | 예 | 예 | 예 | 예 | 예 |
Snowplow Micro | 예 | 예 | 예 | 아니오 | 예 |
GDK에서 수동 체크 | 예 | 예 | 예 | 예 | 아니오 |
Snowplow Analytics Debugger Chrome Extension | 예 | 아니오 | 예 | 예 | 예 |
원격 이벤트 수집기 | 예 | 아니오 | 예 | 아니오 | 예 |
로컬 개발을 위해서는 새로운 이벤트를 적극적으로 개발할 때 내부 이벤트 모니터를 사용하는 것을 추천합니다.
내부 이벤트 모니터
로컬에서 GitLab 애플리케이션을 사용하거나 rails console
을 사용하는 동안
이벤트가 어떻게 트리거되고 메트릭이 업데이트되는지 이해하려면 모니터를 사용할 수 있습니다.
모니터를 시작하고 모니터링할 하나 이상의 이벤트를 나열하세요. 이 예시에서는 i_code_review_user_create_mr
를 모니터링하고자 합니다.
rails runner scripts/internal_events/monitor.rb i_code_review_user_create_mr
모니터는 두 개의 테이블을 보여줄 수 있습니다:
-
RELEVANT METRICS
테이블은i_code_review_user_create_mr
이벤트에서 정의된 모든 메트릭을 나열합니다.
두 번째에서 가장 오른쪽 열은 모니터가 시작되었을 때 각 메트릭의 값을 보여주고 가장 오른쪽 열은 각 메트릭의 현재 값을 보여줍니다. -
SNOWPLOW EVENTS
테이블은 모니터가 시작된 후 발생한 Snowplow 이벤트 중 이벤트 이름과 일치하는 속성을 선택하여 나열합니다.
이 테이블을 보려면 Snowplow Micro를 설정할 필요가 더 이상 없습니다.
새로운 i_code_review_user_create_mr
이벤트가 발생하면 메트릭 값이 업데이트되고 SNOWPLOW EVENTS
테이블에 새로운 이벤트가 나타납니다.
모니터는 아래와 같습니다.
Updated at 2023-10-11 10:17:59 UTC
Monitored events: i_code_review_user_create_mr
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| RELEVANT METRICS |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| Key Path | Monitored Events | Instrumentation Class | Initial Value | Current Value |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| counts_monthly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 13 | 14 |
| counts_monthly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 13 | 14 |
| counts_weekly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
| counts_weekly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
| redis_hll_counters.code_review.i_code_review_user_create_mr_monthly | i_code_review_user_create_mr | RedisHLLMetric | 8 | 9 |
| redis_hll_counters.code_review.i_code_review_user_create_mr_weekly | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
+---------------------------------------------------------------------------------------------------------+
| SNOWPLOW EVENTS |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| Event Name | Collector Timestamp | user_id | namespace_id | project_id | plan |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| i_code_review_user_create_mr | 2023-10-11T10:17:15.504Z | 29 | 93 | | default |
+------------------------------+--------------------------+---------+--------------+------------+---------+
모니터의 키보드 명령:
-
p
키는 모니터를 일시 정지 및 시작하는 토글 역할을 합니다.
이는 테이블을 선택하고 복사하는 것을 더 쉽게 만듭니다. -
r
키는 모니터를 내부 상태로 재설정하고, 이전에 발생했었던 이벤트를 표시에서 제거합니다. -
q
키는 모니터를 종료합니다.
Snowplow Micro
기본적으로, 자체 관리형 인스턴스는 Snowplow를 통해 이벤트 데이터를 수집하지 않습니다. 우리는 이벤트를 로컬에서 테스트하기 위해 Docker 기반의 Snowplow 수집기인 Snowplow Micro를 사용할 수 있습니다:
-
Snowplow Micro를 활성화합니다:
gdk config set snowplow_micro.enabled true
-
선택 사항. Snowplow Micro는 기본적으로 포트
9091
에서 실행되며, 다음을 실행하여9092
로 변경할 수 있습니다:gdk config set snowplow_micro.port 9092
-
GDK를 재구성하여 Procfile 및 YAML 구성 파일을 재생성합니다:
gdk reconfigure
-
GDK를 다시 시작합니다:
gdk restart
-
이제 Snowplow Micro UI에서 로컬 인스턴스가 전송하는 모든 이벤트를 확인하고 특정 이벤트를 필터링할 수 있습니다.
Snowplow Micro UI 및 API 소개
GDK에서 수동 확인
이벤트가 트리거되고 메트릭이 업데이트되고 있는지 빠르게 테스트하려면, rails 콘솔에서 최신 값을 확인할 수 있습니다.
아래의 헬퍼를 로드하여 최근 이벤트 및 레코드가 출력에 포함되도록 하세요.
전체 서비스 핑 페이로드를 보려면:
require_relative 'spec/support/helpers/service_ping_helpers.rb'
ServicePingHelpers.get_current_service_ping_payload
특정 메트릭의 현재 값을 보려면:
require_relative 'spec/support/helpers/service_ping_helpers.rb'
ServicePingHelpers.get_current_usage_metric_value(key_path)
Snowplow Analytics Debugger Chrome 확장 프로그램
Snowplow Analytics Debugger는 프론트엔드 이벤트 테스트를 위한 브라우저 확장 프로그램입니다.
이는 프로덕션, 스테이징 및 로컬 개발 환경에서 작동합니다. 배포된 환경에서 올바른 이벤트가 전송되는지를 확인하는 데 특히 적합합니다.
- Snowplow Analytics Debugger Chrome 브라우저 확장 프로그램을 설치합니다.
- Chrome DevTools의 Snowplow Debugger 탭을 엽니다.
- GitLab 페이지에서 트리거된 이벤트는 Snowplow Debugger 탭에 표시되어야 합니다.
원격 이벤트 수집기
GitLab.com에서는 이벤트가 GitLab에서 구성한 수집기로 전송됩니다. 기본적으로, 자체 관리형 인스턴스는 수집기가 구성되어 있지 않으며 Snowplow로 데이터를 수집하지 않습니다.
자체 관리형 GitLab 인스턴스를 사용자 지정 Snowplow 수집기를 사용하도록 구성할 수 있습니다.
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Settings > General을 선택합니다.
- Snowplow를 확장합니다.
-
Enable Snowplow tracking을 선택하고 Snowplow 구성 정보를 입력합니다. 예를 들어 사용자 지정 Snowplow 수집기가
your-snowplow-collector.net
에서 사용할 수 있다면:이름 값 수집기 호스트 이름 your-snowplow-collector.net
앱 ID gitlab
쿠키 도메인 .your-gitlab-instance.com
- 변경 사항 저장을 선택합니다.