로컬 설정 및 디버깅

내부 이벤트는 기본적으로 Snowplow 도구를 사용합니다. 내부 이벤트를 개발하고 테스트하기 위해서 Snowplow와 관련된 여러 도구가 있습니다. 이는 프론트엔드 및 백엔드 이벤트를 테스트하기 위한 것입니다.

테스트 도구 프론트엔드 추적 백엔드 추적 로컬 개발 환경 프로덕션 환경  
Snowplow Analytics Debugger Chrome Extension 아니요
Snowplow Micro 아니요 아니요

로컬 개발을 위해서는 로컬 이벤트 수집기 설정하거나 원격 이벤트 수집기 구성을 해야 합니다. 새로운 이벤트를 적극적으로 개발하는 경우 내부 이벤트 모니터와 함께 로컬 설정을 사용하는 것을 권장합니다.

로컬 이벤트 수집기 설정

기본적으로, 자체 관리형 인스턴스는 Snowplow를 통해 이벤트 데이터를 수집하지 않습니다. Snowplow Micro를 사용하여 로컬에서 이벤트를 테스트할 수 있습니다:

  1. Docker가 설치되어 작동 중인지 확인합니다.
  2. Snowplow Micro를 활성화합니다:

    gdk config set snowplow_micro.enabled true
    
  3. 선택 사항. Snowplow Micro는 기본적으로 포트 9091에서 실행되며, 다음을 실행하여 9092로 변경할 수 있습니다:

    gdk config set snowplow_micro.port 9092
    
  4. Procfile 및 YAML 구성을 다시 구성하여 재구성하십시오:

    gdk reconfigure
    
  5. GDK를 다시 시작합니다:

    gdk restart
    
  6. 이제 로컬 인스턴스에서 보내는 모든 이벤트를 Snowplow Micro UI에서 볼 수 있으며 특정 이벤트를 필터링할 수 있습니다.

Snowplow Micro UI 및 API 소개

Snowplow Micro에 대한 비디오를 시청하세요

원격 이벤트 수집기 구성

GitLab.com에서 이벤트는 GitLab이 구성한 수집기로 전송됩니다. 기본적으로 자체 관리형 인스턴스는 구성된 수집기가 없으며 Snowplow를 통해 데이터를 수집하지 않습니다.

자체 관리형 GitLab 인스턴스를 사용자 정의 Snowplow 수집기를 사용하도록 구성할 수 있습니다.

  1. 왼쪽 사이드바에서 관리 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다
  3. Snowplow를 확장합니다.
  4. Snowplow 추적 사용을 선택하고 Snowplow 구성 정보를 입력합니다. 예를 들어:

    이름
    수집기 호스트 이름 your-snowplow-collector.net
    App ID gitlab
    쿠키 도메인 .your-gitlab-instance.com
  5. 변경 사항 저장을 선택합니다.

내부 이벤트 모니터

내부 이벤트 추적 모니터에 대한 데모 비디오를 시청하세요.

로컬에서 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 EVENTS 테이블에 새 이벤트가 표시됩니다.

모니터는 아래와 같이 보입니다.

2023년 10월 11일 10:17:59 UTC에 업데이트됨
모니터링된 이벤트: i_code_review_user_create_mr

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                          관련 메트릭들                                                                          |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| 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 | 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                                             |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| 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 |
+------------------------------+--------------------------+---------+--------------+------------+---------+

Snowplow Analytics Debugger Chrome Extension

Snowplow Analytics Debugger는 프론트엔드 이벤트를 테스트하기 위한 브라우저 확장 프로그램입니다. 이는 프로덕션, 스테이징 및 로컬 개발 환경에서 작동합니다. 배포된 환경에서 올바른 이벤트가 전송되는지 확인하는 데 특히 적합합니다.

  1. Snowplow Analytics Debugger Chrome 브라우저 확장 프로그램을 설치합니다.
  2. Chrome DevTools를 열어 Snowplow Debugger 탭으로 이동합니다.
  3. GitLab 페이지에서 트리거된 모든 이벤트는 Snowplow Debugger 탭에 표시됩니다.