InfoGrab DocsInfoGrab Docs

로컬 설정 및 디버깅

요약

브라우저에서 사용자 상호작용을 추적하려면, 개인 정보 보호 필터(예: AdBlock, uBlock) 및 추적 거부(Do-Not-Track, DNT)와 같은 브라우저 설정이 영향을 미칩니다. 내부 이벤트는 내부적으로 Snowplow라는 도구를 사용합니다.

브라우저에서 사용자 상호작용을 추적하려면, 개인 정보 보호 필터(예: AdBlock, uBlock) 및 추적 거부(Do-Not-Track, DNT)와 같은 브라우저 설정이 영향을 미칩니다. 자세한 내용은 추적에 영향을 미치는 설정을 참조하세요.

내부 이벤트는 내부적으로 Snowplow라는 도구를 사용합니다. 내부 이벤트를 개발하고 테스트하기 위해 프론트엔드 및 백엔드 이벤트를 테스트하는 여러 도구가 있습니다:

테스트 도구 프론트엔드 추적 백엔드 추적 로컬 개발 환경 프로덕션 환경 개별 이벤트 표시
Internal Events Monitor Yes Yes Yes Yes Yes
Snowplow Micro Yes Yes Yes No Yes
GDK 수동 확인 Yes Yes Yes Yes No
Snowplow Analytics Debugger Chrome Extension Yes No Yes Yes Yes
Remote event collector Yes No Yes No Yes

로컬 개발 시 새 이벤트를 활발하게 개발할 때는 Internal Events Monitor를 사용하는 것을 권장합니다.

Internal Events Monitor#

Internal Events Tracking Monitor 데모 영상을 시청하세요.

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 이벤트의 선택된 속성이 나열됩니다. 이 테이블이 표시되려면, 이벤트 추적을 활성화하거나(Admin > Settings > Metrics and profiling > Event tracking에서 "Enable event tracking"을 선택하고 변경 사항을 저장) GDK를 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#

GitLab 18.0부터 Self-Managed 인스턴스는 기본적으로 이벤트 데이터를 수집합니다. 18.0 이전 버전에서 GitLab Self-Managed 인스턴스는 기본적으로 Snowplow를 통해 이벤트 데이터를 수집하지 않습니다. Docker 기반 Snowplow 수집기인 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는 /micro/ui 경로에서 찾을 수 있습니다. 예: http://localhost:9092/micro/ui.

Snowplow Micro UI 및 API 소개#

Snowplow Micro 영상을 시청하세요.

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 Extension#

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

  • Snowplow Analytics Debugger Chrome 브라우저 확장 프로그램을 설치합니다.

  • Chrome DevTools를 열고 Snowplow Debugger 탭으로 이동합니다.

  • GitLab 페이지에서 트리거된 모든 이벤트가 Snowplow Debugger 탭에 나타납니다.

Remote event collector#

GitLab.com에서 이벤트는 GitLab이 운영하는 수집기(snowplowprd.trx.GitLab.net)로 직접 전송됩니다. GitLab 18.0부터 Self-Managed 및 Dedicated 인스턴스는 이벤트 데이터를 먼저 로컬에서 수집한 다음, GitLab 이벤트 수집기(events.GitLab.net)로 전달합니다. 18.0 이전 버전에서 GitLab Self-Managed 인스턴스는 수집기가 구성되어 있지 않으며 기본적으로 Snowplow로 데이터를 수집하지 않습니다.

인스턴스를 사용자 지정 Snowplow 수집기를 사용하도록 구성할 수 있습니다.

  • 오른쪽 상단 모서리에서 Admin을 선택합니다.

  • 왼쪽 사이드바에서 Settings > General을 선택합니다.

  • Snowplow를 펼칩니다.

  • Enable Snowplow tracking을 선택하고 Snowplow 구성 정보를 입력합니다. 예를 들어 사용자 지정 Snowplow 수집기가 your-snowplow-collector.net에서 사용 가능한 경우:

이름
Collector hostname your-snowplow-collector.net
App ID gitlab
Cookie domain .your-gitlab-instance.com
  • Save changes를 선택합니다.

로컬 설정 및 디버깅

GitLab v19.1
원문 보기
요약

브라우저에서 사용자 상호작용을 추적하려면, 개인 정보 보호 필터(예: AdBlock, uBlock) 및 추적 거부(Do-Not-Track, DNT)와 같은 브라우저 설정이 영향을 미칩니다. 내부 이벤트는 내부적으로 Snowplow라는 도구를 사용합니다.

브라우저에서 사용자 상호작용을 추적하려면, 개인 정보 보호 필터(예: AdBlock, uBlock) 및 추적 거부(Do-Not-Track, DNT)와 같은 브라우저 설정이 영향을 미칩니다. 자세한 내용은 추적에 영향을 미치는 설정을 참조하세요.

내부 이벤트는 내부적으로 Snowplow라는 도구를 사용합니다. 내부 이벤트를 개발하고 테스트하기 위해 프론트엔드 및 백엔드 이벤트를 테스트하는 여러 도구가 있습니다:

테스트 도구 프론트엔드 추적 백엔드 추적 로컬 개발 환경 프로덕션 환경 개별 이벤트 표시
Internal Events Monitor Yes Yes Yes Yes Yes
Snowplow Micro Yes Yes Yes No Yes
GDK 수동 확인 Yes Yes Yes Yes No
Snowplow Analytics Debugger Chrome Extension Yes No Yes Yes Yes
Remote event collector Yes No Yes No Yes

로컬 개발 시 새 이벤트를 활발하게 개발할 때는 Internal Events Monitor를 사용하는 것을 권장합니다.

Internal Events Monitor#

Internal Events Tracking Monitor 데모 영상을 시청하세요.

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 이벤트의 선택된 속성이 나열됩니다. 이 테이블이 표시되려면, 이벤트 추적을 활성화하거나(Admin > Settings > Metrics and profiling > Event tracking에서 "Enable event tracking"을 선택하고 변경 사항을 저장) GDK를 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#

GitLab 18.0부터 Self-Managed 인스턴스는 기본적으로 이벤트 데이터를 수집합니다. 18.0 이전 버전에서 GitLab Self-Managed 인스턴스는 기본적으로 Snowplow를 통해 이벤트 데이터를 수집하지 않습니다. Docker 기반 Snowplow 수집기인 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는 /micro/ui 경로에서 찾을 수 있습니다. 예: http://localhost:9092/micro/ui.

Snowplow Micro UI 및 API 소개#

Snowplow Micro 영상을 시청하세요.

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 Extension#

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

  • Snowplow Analytics Debugger Chrome 브라우저 확장 프로그램을 설치합니다.

  • Chrome DevTools를 열고 Snowplow Debugger 탭으로 이동합니다.

  • GitLab 페이지에서 트리거된 모든 이벤트가 Snowplow Debugger 탭에 나타납니다.

Remote event collector#

GitLab.com에서 이벤트는 GitLab이 운영하는 수집기(snowplowprd.trx.GitLab.net)로 직접 전송됩니다. GitLab 18.0부터 Self-Managed 및 Dedicated 인스턴스는 이벤트 데이터를 먼저 로컬에서 수집한 다음, GitLab 이벤트 수집기(events.GitLab.net)로 전달합니다. 18.0 이전 버전에서 GitLab Self-Managed 인스턴스는 수집기가 구성되어 있지 않으며 기본적으로 Snowplow로 데이터를 수집하지 않습니다.

인스턴스를 사용자 지정 Snowplow 수집기를 사용하도록 구성할 수 있습니다.

  • 오른쪽 상단 모서리에서 Admin을 선택합니다.

  • 왼쪽 사이드바에서 Settings > General을 선택합니다.

  • Snowplow를 펼칩니다.

  • Enable Snowplow tracking을 선택하고 Snowplow 구성 정보를 입력합니다. 예를 들어 사용자 지정 Snowplow 수집기가 your-snowplow-collector.net에서 사용 가능한 경우:

이름
Collector hostname your-snowplow-collector.net
App ID gitlab
Cookie domain .your-gitlab-instance.com
  • Save changes를 선택합니다.