Internal Event 추적 빠른 시작
Internal Event Tracking을 사용하여 GitLab 코드베이스에서 이벤트를 정의하고, 메트릭을 생성하며, 백엔드 및 프론트엔드에서 이벤트를 트리거하는 방법을 설명합니다.
보다 효율적이고 확장 가능하며 통합된 추적 API를 제공하기 위해 GitLab은 기존의 RedisHLL 및 Snowplow 추적을 더 이상 사용하지 않을 예정입니다. 대신, 새로운 track_event (백엔드) 및 trackEvent (프론트엔드) 메서드를 구현하고 있습니다. 이 접근 방식을 사용하면 기본 구현에 대한 걱정 없이 RedisHLL 카운터를 업데이트하고 Snowplow 이벤트를 전송할 수 있습니다. 중요 : GitLab 18.0부터 Self-Managed 인스턴스에서도 이벤트 데이터를 수집하여, 이전 버전에서 수집된 집계 메트릭보다 더 상세한 인사이트를 제공합니다. Internal Events 추적으로 코드를 계측하려면 세 가지 작업이 필요합니다: 이벤트 정의 하나 이상의 메트릭 정의 이벤트 트리거 이벤트 및 메트릭 정의 # 이벤트 및/또는 메트릭 정의를 생성하려면 gitlab_internal_events_cli gem 을 사용합니다. > gem install gitlab_internal_events_cli > gem exec gitlab_internal_events_cli 이 CLI gem은 특정 사용 사례에 맞는 올바른 정의 파일을 생성하는 데 도움을 주며, 계측 및 테스트를 위한 코드 예제도 제공합니다. 이벤트 이름은 <action>_<target_of_action>_<where/when> 형식으로 지정해야 하며, 유효한 예로는 create_ci_build 또는 click_previous_blame_on_blob_page 가 있습니다. 이벤트 트리거 # 이벤트를 트리거하고 메트릭을 업데이트하는 방법은 백엔드와 프론트엔드에서 약간 다릅니다. 아래의 관련 섹션을 참조하세요. 백엔드 추적 # Internal Events를 사용한 백엔드 계측 에 대한 동영상을 시청하세요. 이벤트를 트리거하려면 Gitlab::InternalEventsTracking 모듈의 track_internal_event 메서드를 원하는 인수와 함께 호출합니다: include Gitlab::InternalEventsTracking track_internal_event( "create_ci_build", user: user, namespace: namespace, project: project ) 이 메서드는 create_ci_build 이벤트와 관련된 모든 RedisHLL 메트릭을 자동으로 증가시키고, 명명된 인수 및 표준 컨텍스트(GitLab.com 전용)와 함께 해당 Snowplow 이벤트를 전송합니다. 또한, 이벤트를 트리거하는 클래스의 이름이 Snowplow 이벤트의 category 속성에 저장됩니다. unique: project.id 와 같이 unique 속성으로 메트릭을 정의한 경우, project 인수를 반드시 제공해야 합니다. 데이터 품질을 높이고 향후 메트릭 정의를 더 쉽게 할 수 있도록, user , namespace , project 를 최대한 많이 채우는 것을 권장합니다. project 만 제공하고 name