This guide describes the event dictionary and how it’s implemented.
This process is meant to document all internal events and ensure consistency. Every internal event needs to have such a definition. Event definitions must comply with the JSON Schema.
All event definitions are stored in the following directories:
Each event is defined in a separate YAML file consisting of the following fields:
|yes||A description of the event.|
|yes||Always InternalEventTracking (only different for legacy events).|
|yes||A unique name for the event.|
|no||A list of identifiers sent with the event. Can be set to one or more of |
|no||The stage for the event.|
|yes||The group that owns the event.|
|no||The milestone when the event is introduced.|
|no||The URL to the merge request that introduced the event.|
|yes||The distributions where the tracked feature is available. Can be set to one or more of |
|yes||The tiers where the tracked feature is available. Can be set to one or more of |
This is an example YAML file for an internal event:
description: A user visited a product analytics dashboard category: InternalEventTracking action: user_visited_dashboard identifiers: - project - user - namespace product_section: dev product_stage: monitor product_group: group::product analytics milestone: "16.4" introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128029 distributions: - ee tiers: - ultimate