- 로컬 이벤트 수집기 설정
- 원격 이벤트 수집기 설정
- 내부 이벤트 모니터
- GDK에서 관련 메트릭 값 매뉴얼으로 확인
- Snowplow Analytics Debugger Chrome Extension
로컬 설정 및 디버깅
내부 이벤트는 Snowplow라는 도구를 사용합니다. 내부 이벤트를 개발하고 테스트하려면 Snowplow와 관련된 여러 도구가 필요합니다.
테스트 도구 | 프런트엔드 추적 | 백엔드 추적 | 로컬 개발 환경 | 프로덕션 환경 | 프로덕션 환경 |
---|---|---|---|---|---|
Snowplow Analytics Debugger Chrome Extension | Yes | No | Yes | Yes | Yes |
Snowplow Micro | Yes | Yes | Yes | No | No |
로컬에서 개발하기 위해서는 로컬 이벤트 수집기 설정 또는 원격 이벤트 수집기 설정 중 하나를 해야 합니다. 새로운 이벤트를 개발할 때는 로컬 설정과 함께 내부 이벤트 모니터를 사용하는 것이 좋습니다.
로컬 이벤트 수집기 설정
기본적으로 Self-Managed 인스턴스는 Snowplow를 통해 이벤트 데이터를 수집하지 않습니다. 로컬에서 이벤트를 테스트하려면 Docker 기반의 Snowplow 수집기인 Snowplow Micro를 사용할 수 있습니다:
-
Docker를 설치하고 작동 확인합니다.
-
Snowplow Micro를 활성화합니다:
gdk config set snowplow_micro.enabled true
-
선택 사항. Snowplow Micro는 기본적으로 포트
9091
에서 실행되며, 다음 명령을 실행하여9092
로 변경할 수 있습니다:gdk config set snowplow_micro.port 9092
-
Procfile 및 YAML 구성을 다시 구성하여 설정을 다시 적용합니다:
gdk reconfigure
-
GDK를 다시 시작합니다:
gdk restart
-
이제 로컬 인스턴스에서 보낸 모든 이벤트를 Snowplow Micro UI에서 볼 수 있으며 특정 이벤트를 필터링할 수 있습니다.
Snowplow Micro UI 및 API 소개
원격 이벤트 수집기 설정
GitLab.com에서 이벤트는 GitLab이 구성한 수집기로 전송됩니다. Self-Managed 인스턴스는 기본적으로 수집기가 구성되어 있지 않으며 Snowplow를 통해 데이터를 수집하지 않습니다.
Self-Managed GitLab 인스턴스를 사용자 정의 Snowplow 수집기를 사용하도록 구성할 수 있습니다.
- 왼쪽 사이드바에서 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- Snowplow를 확장합니다.
-
Snowplow 추적 활성화를 선택하고 Snowplow 구성 정보를 입력합니다. 예:
이름 값 수집기 호스트명 your-snowplow-collector.net
애플리케이션 ID gitlab
쿠키 도메인 .your-gitlab-instance.com
- 변경 사항 저장을 선택합니다.
내부 이벤트 모니터
로컬에서 Rails 앱 또는 rails console
을 사용하면 이벤트가 트리거되고 메트릭이 업데이트되는 방식을 이해할 수 있습니다. 모니터를 이용할 수 있습니다.
원하는 이벤트를 모니터링하고 싶으면 모니터를 시작하고 하나 이상의 이벤트를 나열합니다. 이 예제에서는 i_code_review_user_create_mr
를 모니터링하기를 원합니다:
rails runner scripts/internal_events/monitor.rb i_code_review_user_create_mr
모니터에는 두 개의 테이블이 표시됩니다. 상단 테이블에는 i_code_review_user_create_mr
이벤트에 정의된 모든 메트릭이 나열되어 있습니다. 가장 오른쪽 열은 모니터가 시작될 때 메트릭의 값과 가장 오른쪽 열은 각 메트릭의 현재 값이 표시됩니다. 하단 테이블에는 이벤트명과 일치하는 모든 Snowplow 이벤트의 선택된 속성이 나열됩니다.
새로운 i_code_review_user_create_mr
이벤트가 트리거되면 메트릭 값이 업데이트되고 SNOWPLOW 이벤트
테이블에 새로운 이벤트가 나타날 것입니다.
모니터는 아래와 같은 모습입니다.
2023-10-11 10:17:59 UTC에 업데이트됨
모니터링된 이벤트: i_code_review_user_create_mr
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 관련 메트릭들 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| 키 경로 | 모니터링된 이벤트 | 계측 클래스 | 초기 값 | 현재 값 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| counts_monthly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | AggregatedMetric | 13 | 14 |
| counts_monthly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | AggregatedMetric | 13 | 14 |
| counts_weekly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | AggregatedMetric | 0 | 1 |
| counts_weekly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | AggregatedMetric | 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 |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| 이벤트명 | 수집기 타임스탬프 | 사용자 ID | 네임스페이스 ID | 프로젝트 ID | 계획 |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| i_code_review_user_create_mr | 2023-10-11T10:17:15.504Z | 29 | 93 | | default |
+------------------------------+--------------------------+---------+--------------+------------+---------+
GDK에서 관련 메트릭 값 매뉴얼으로 확인
이벤트가 트리거되고 메트릭이 업데이트되는지 빠르게 테스트하려면 Rails 콘솔에서 최신 값들을 확인할 수 있습니다. 최신 이벤트 및 레코드가 결과에 포함되도록 아래 도우미를 로드해야 합니다.
전체 서비스 핑(payload)을 보려면:
spec/support/helpers/service_ping_helpers.rb'를 추가하고 ServicePingHelpers.get_current_service_ping_payload를 실행합니다.
특정 메트릭에 대한 현재 값을 보려면:
spec/support/helpers/service_ping_helpers.rb'를 추가하고 ServicePingHelpers.get_current_usage_metric_value(key_path)를 실행합니다.
Snowplow Analytics Debugger Chrome Extension
Snowplow Analytics Debugger는 프런트엔드 이벤트를 테스트하는 브라우저 확장 프로그램입니다. 프로덕션, 스테이징 및 로컬 개발 환경에서 작동하며 배포된 환경에서 올바른 이벤트가 전송되는지 확인하는 데 특히 적합합니다.
- Snowplow Analytics Debugger Chrome 브라우저 확장 프로그램을 설치합니다.
- Chrome 개발자 도구를 열고 Snowplow Debugger 탭을 선택합니다.
- GitLab 페이지에서 트리거된 이벤트는 Snowplow Debugger 탭에 나타납니다.