이벤트 정의 가이드

참고: 이벤트 사전은 진행 중인 작업이며이 프로세스는 변경될 수 있습니다.

이 가이드는 이벤트 사전 및 해당 구현 방법에 대해 설명합니다.

이벤트 정의 및 유효성 검사

이 프로세스는 모든 내부 이벤트를 문서화하고 일관성을 확보하기 위한 것입니다. 모든 내부 이벤트는 그러한 정의가 되어야 합니다. 이벤트 정의는 JSON Schema을 준수해야 합니다.

모든 이벤트 정의는 다음 디렉터리에 저장됩니다.

각 이벤트는 다음 필드로 구성된 별도의 YAML 파일에 정의됩니다.

필드 필요 여부 추가 정보
description 이벤트에 대한 설명입니다.
internal_events 아니오 내부 이벤트에서 사용되는 이벤트의 경우 항상 true입니다.
category 아니오 레거시 이벤트에 필요합니다. 내부 이벤트에는 사용하면 안 됩니다.
action 이벤트를 위한 고유한 이름입니다. 소문자, 숫자, 밑줄만 허용됩니다. <operation>_<target_of_operation>_<where/when> 형식을 사용하세요.

예: publish_go_module_to_the_registry_from_pipeline
<operation> = publish
<target> = go_module
<when/where> = to_the_registry_from_pipeline
identifiers 아니오 이벤트와 함께 전송된 식별자 목록입니다. project, user, namespace 또는 feature_enabled_by_namespace_ids 중 하나 이상으로 설정할 수 있습니다.
product_group 이벤트를 소유한 그룹입니다.
milestone 아니오 이벤트가 소개된 마일스톤입니다.
introduced_by_url 아니오 이벤트를 소개한 합병 요청의 URL입니다.
distributions 추적 대상 기능이 있는 배포입니다. ce 또는 ee 중 하나 이상으로 설정할 수 있습니다.
tiers 추적 대상 기능이 있는 티어입니다. free, premium, 또는 ultimate 중 하나 이상으로 설정할 수 있습니다.
additional_properties 아니오 이벤트와 함께 전송된 추가 속성 목록입니다. 각 레코드에는 description 필드가 있어야 합니다. 내장 속성은 label (문자열), property (문자열), value (숫자)가 있습니다. 사용자 정의 속성을 추가할 수 있습니다. 내장 옵션이 충분하지 않은 경우.

예시 이벤트 정의

다음은 내부 이벤트에 대한 YAML 파일 예시입니다:

description: 사용자가 제품 분석 대시보드를 방문했습니다
internal_events: true
action: visit_product_analytics_dashboard
identifiers:
- project
- user
- namespace
product_group: group::product analytics
milestone: "16.4"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128029
distributions:
- ee
tiers:
- ultimate