イベント辞書ガイド
イベント辞書は現在作成中であり、このプロセスは変更される可能性があります。
このガイドでは、イベント辞書とその実装方法について説明します。
イベントの定義と検証
このプロセスは、すべてのSnowplowイベントを文書化し、一貫性を確保するためのものです。すべてのSnowplowイベントはこのような定義を持つ必要があります。イベント定義はJSONスキーマに準拠する必要があります。
すべてのイベント定義は以下のディレクトリに保存されます:
それぞれのイベントは以下のフィールドで構成される個別のYAMLファイルで定義されます:
項目 | 必須 | 追加情報 |
---|---|---|
description | yes | イベントの説明。 |
category | yes | イベントカテゴリー(Event schema参照)。 |
action | yes | イベントアクション(Event schema参照)。 |
label_description | いいえ | イベントラベルの説明(イベントスキーマ参照)。 |
property_description | いいえ | イベントプロパティの説明(イベントスキーマを参照)。 |
value_description | いいえ | イベント値の説明(イベントスキーマを参照)。 |
extra_properties | いいえ | イベントと共に送信される各追加プロパティのタイプと説明。 |
identifiers | いいえ | イベントと共に送信される識別子のリスト。project ,user ,namespace の中から1つ以上を設定できます。 |
iglu_schema_url | いいえ | イベントと共に送信されるカスタムスキーマのURL、例えばiglu:com.gitlab/gitlab_experiment/jsonschema/1-0-0 。 |
product_section | yes | セクション |
product_stage | いいえ | イベントのステージ。 |
product_group | yes | イベントを所有するグループ。 |
milestone | いいえ | イベントが導入されるマイルストーン。 |
introduced_by_url | いいえ | イベントを導入したマージリクエストへのURL。 |
distributions | yes | 追跡機能が利用可能なディストリビューション。ce またはee のいずれか1つ以上に設定できます。 |
tiers | yes | 追跡機能が利用可能な階層。free 、premium 、ultimate のいずれか、または複数を設定できます。 |
イベント定義例
リンク先のuuid
YAML ファイルにはイベント定義の例が含まれています。
description: Issue promoted to epic
category: epics
action: promote
property_description: The string "issue_id"
value_description: ID of the issue
extra_properties:
weight:
type: integer
description: Weight of the issue
identifiers:
- project
- user
- namespace
product_section: dev
product_stage: plan
product_group: group::product planning
milestone: "11.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10537
distributions:
- ee
tiers:
- premium
- ultimate
新しいイベント定義を作成します。
新しいイベント定義を作成するには、専用のイベント定義ジェネレーターを使用します。
各イベントのcategory
とaction
は、ファイル名を標準化するためにファイル名に含まれます。
ジェネレーターは3つのオプションを取ります:
-
--ee
:イベントがEE向けかどうかを示します。 -
--category=CATEGORY
:イベントのcategory
を示します。 -
--action=ACTION
:イベントのaction
を示します。
bundle exec rails generate gitlab:snowplow_event_definition --category Groups::EmailCampaignsController --action click
create create config/events/groups__email_campaigns_controller_click.yml