Help us learn about your current experience with the documentation. Take the survey.
事件定义指南
事件字典仍在开发中,此流程可能会有变更。
本指南介绍事件字典及其实现方式。
事件定义和验证
此流程旨在记录所有内部事件并确保一致性。每个内部事件都需要有相应的定义。事件定义必须符合 JSON Schema。
所有事件定义都存储在以下目录中:
已移除的事件存储在 /removed 子文件夹中:
更多详情请参阅 事件生命周期 指南。
每个事件都在单独的 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 |
是 | 拥有该事件的 group。 |
product_categories |
否 | 事件所代表使用功能的 功能类别 列表。某些事件可能对应多个类别或没有类别。 |
milestone |
否 | 引入事件的里程碑。 |
status |
否 | 事件的状态。可以设置为 active、removed 或 null 之一。 |
milestone_removed |
否 | 移除事件的里程碑。 |
removed_by_url |
否 | 移除该事件的合并请求的 URL。 |
introduced_by_url |
否 | 引入该事件的合并请求的 URL。 |
tiers |
是 | 追踪功能可用的 版本。可以设置为 free、premium 或 ultimate 中的一个或多个。 |
additional_properties |
否 | 随事件发送的附加属性列表。每个附加属性都必须有一个包含 description 字段的记录条目。需要在事件定义文件中添加所有随事件发送的附加属性。内置属性有:label(字符串)、property(字符串)和 value(数值)。如果内置选项不满足需求,可以添加 自定义 属性。 |
更改事件定义中的 action 属性
在考虑更改事件定义中的 action 字段时,需要了解以下几点:
-
重命名事件等同于删除现有事件并创建新事件。如果该事件未用于任何指标,这是可以接受的。
-
确保 YAML 文件名与新的
action名称匹配,以避免混淆。这有助于保持事件定义的清晰度和一致性。
示例事件定义
这是一个内部事件的示例 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
tiers:
- ultimate