イベント辞書ガイド

note
イベント辞書は現在作成中であり、このプロセスは変更される可能性があります。

このガイドでは、イベント辞書とその実装方法について説明します。

イベントの定義と検証

このプロセスは、すべてのSnowplowイベントを文書化し、一貫性を確保するためのものです。すべてのSnowplowイベントはこのような定義を持つ必要があります。イベント定義はJSONスキーマに準拠する必要があります。

すべてのイベント定義は以下のディレクトリに保存されます:

それぞれのイベントは以下のフィールドで構成される個別のYAMLファイルで定義されます:

項目必須追加情報
descriptionyesイベントの説明。
categoryyesイベントカテゴリー(Event schema参照)。
actionyesイベントアクション(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_sectionyesセクション
product_stageいいえイベントのステージ
product_groupyesイベントを所有するグループ
milestoneいいえイベントが導入されるマイルストーン。
introduced_by_urlいいえイベントを導入したマージリクエストへのURL。
distributionsyes追跡機能が利用可能なディストリビューションce またはeeのいずれか1つ以上に設定できます。
tiersyes追跡機能が利用可能な階層freepremiumultimateのいずれか、または複数を設定できます。

イベント定義例

リンク先の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

新しいイベント定義を作成します。

新しいイベント定義を作成するには、専用のイベント定義ジェネレーターを使用します。

各イベントのcategoryaction は、ファイル名を標準化するためにファイル名に含まれます。

ジェネレーターは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