이벤트 정의 가이드
주의:
이 이벤트 사전은 진행 중이며, 이 과정은 변경될 수 있습니다.
이 가이드는 이벤트 사전과 그 구현 방법을 설명합니다.
이벤트 정의 및 검증
이 과정은 모든 내부 이벤트를 문서화하고 일관성을 보장하기 위한 것입니다. 모든 내부 이벤트는 이러한 정의를 가져야 합니다. 이벤트 정의는 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