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 随事件发送的标识符列表。可以设置为 projectusernamespacefeature_enabled_by_namespace_ids 中的一个或多个
product_group 拥有该事件的 group
product_categories 事件所代表使用功能的 功能类别 列表。某些事件可能对应多个类别或没有类别。
milestone 引入事件的里程碑。
status 事件的状态。可以设置为 activeremovednull 之一。
milestone_removed 移除事件的里程碑。
removed_by_url 移除该事件的合并请求的 URL。
introduced_by_url 引入该事件的合并请求的 URL。
tiers 追踪功能可用的 版本。可以设置为 freepremiumultimate 中的一个或多个。
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