Snowplow schemas
This page provides Snowplow schema reference for GitLab events.
gitlab_standard
We are including the gitlab_standard
schema for structured events and page views.
The StandardContext
class represents this schema in the application. Some properties are
automatically populated for frontend events,
and can be provided manually for backend events.
Field Name | Required | Default value | Type | Description |
---|---|---|---|---|
project_id
| Current project ID * | integer | ||
namespace_id
| Current group/namespace ID * | integer | ||
user_id
| Current user ID * | integer | User database record ID attribute. This value undergoes a pseudonymization process at the collector level. | |
context_generated_at
| Current timestamp | string (date time format) | Timestamp indicating when context was generated. | |
environment
| Current environment | string (max 32 chars) | Name of the source environment, such as production or staging
| |
source
| Event source | string (max 32 chars) | Name of the source application, such as gitlab-rails or gitlab-javascript
| |
plan
| Current namespace plan * | string (max 32 chars) | Name of the plan for the namespace, such as free , premium , or ultimate . Automatically picked from the namespace .
| |
google_analytics_id
| GA ID value * | string (max 32 chars) | Google Analytics ID, present when set from our marketing sites. | |
extra
| JSON | Any additional data associated with the event, in the form of key-value pairs |
* Default value present for frontend events only
Default Schema
Frontend events include a web-specific schema provided by Snowplow.
All URLs are pseudonymized. The entity identifier replaces personally identifiable
information (PII). PII includes usernames, group, and project names.
Page titles are hardcoded as GitLab
for the same reason.
Field Name | Required | Type | Description |
---|---|---|---|
app_id
| string | Unique identifier for website / application | |
base_currency
| string | Reporting currency | |
br_colordepth
| integer | Browser color depth | |
br_cookies
| boolean | Does the browser permit cookies? | |
br_family
| string | Browser family | |
br_features_director
| boolean | Director plugin installed? | |
br_features_flash
| boolean | Flash plugin installed? | |
br_features_gears
| boolean | Google gears installed? | |
br_features_java
| boolean | Java plugin installed? | |
br_features_pdf
| boolean | Adobe PDF plugin installed? | |
br_features_quicktime
| boolean | Quicktime plugin installed? | |
br_features_realplayer
| boolean | RealPlayer plugin installed? | |
br_features_silverlight
| boolean | Silverlight plugin installed? | |
br_features_windowsmedia
| boolean | Windows media plugin installed? | |
br_lang
| string | Language the browser is set to | |
br_name
| string | Browser name | |
br_renderengine
| string | Browser rendering engine | |
br_type
| string | Browser type | |
br_version
| string | Browser version | |
br_viewheight
| string | Browser viewport height | |
br_viewwidth
| string | Browser viewport width | |
collector_tstamp
| timestamp | Time stamp for the event recorded by the collector | |
contexts
| |||
derived_contexts
| Contexts derived in the Enrich process | ||
derived_tstamp
| timestamp | Timestamp making allowance for inaccurate device clock | |
doc_charset
| string | Web page’s character encoding | |
doc_height
| string | Web page height | |
doc_width
| string | Web page width | |
domain_sessionid
| string | Unique identifier (UUID) for this visit of this user_id to this domain
| |
domain_sessionidx
| integer | Index of number of visits that this user_id has made to this domain (The first visit is 1 )
| |
domain_userid
| string | Unique identifier for a user, based on a first party cookie (so domain specific) | |
dvce_created_tstamp
| timestamp | Timestamp when event occurred, as recorded by client device | |
dvce_ismobile
| boolean | Indicates whether device is mobile | |
dvce_screenheight
| string | Screen / monitor resolution | |
dvce_screenwidth
| string | Screen / monitor resolution | |
dvce_sent_tstamp
| timestamp | Timestamp when event was sent by client device to collector | |
dvce_type
| string | Type of device | |
etl_tags
| string | JSON of tags for this ETL run | |
etl_tstamp
| timestamp | Timestamp event began ETL | |
event
| string | Event type | |
event_fingerprint
| string | Hash client-set event fields | |
event_format
| string | Format for event | |
event_id
| string | Event UUID | |
event_name
| string | Event name | |
event_vendor
| string | The company who developed the event model | |
event_version
| string | Version of event schema | |
geo_city
| string | City of IP origin | |
geo_country
| string | Country of IP origin | |
geo_latitude
| string | An approximate latitude | |
geo_longitude
| string | An approximate longitude | |
geo_region
| string | Region of IP origin | |
geo_region_name
| string | Region of IP origin | |
geo_timezone
| string | Time zone of IP origin | |
geo_zipcode
| string | Zip (postal) code of IP origin | |
ip_domain
| string | Second level domain name associated with the visitor’s IP address | |
ip_isp
| string | Visitor’s ISP | |
ip_netspeed
| string | Visitor’s connection type | |
ip_organization
| string | Organization associated with the visitor’s IP address – defaults to ISP name if none is found | |
mkt_campaign
| string | The campaign ID | |
mkt_clickid
| string | The click ID | |
mkt_content
| string | The content or ID of the ad. | |
mkt_medium
| string | Type of traffic source | |
mkt_network
| string | The ad network to which the click ID belongs | |
mkt_source
| string | The company / website where the traffic came from | |
mkt_term
| string | Keywords associated with the referrer | |
name_tracker
| string | The tracker namespace | |
network_userid
| string | Unique identifier for a user, based on a cookie from the collector (so set at a network level and shouldn’t be set by a tracker) | |
os_family
| string | Operating system family | |
os_manufacturer
| string | Manufacturers of operating system | |
os_name
| string | Name of operating system | |
os_timezone
| string | Client operating system time zone | |
page_referrer
| string | Referrer URL | |
page_title
| string | To not expose personal identifying information, the page title is hardcoded as GitLab
| |
page_url
| string | Page URL | |
page_urlfragment
| string | Fragment aka anchor | |
page_urlhost
| string | Host aka domain | |
page_urlpath
| string | Path to page | |
page_urlport
| integer | Port if specified, 80 if not | |
page_urlquery
| string | Query string | |
page_urlscheme
| string | Scheme (protocol name) | |
platform
| string | The platform the app runs on | |
pp_xoffset_max
| integer | Maximum page x offset seen in the last ping period | |
pp_xoffset_min
| integer | Minimum page x offset seen in the last ping period | |
pp_yoffset_max
| integer | Maximum page y offset seen in the last ping period | |
pp_yoffset_min
| integer | Minimum page y offset seen in the last ping period | |
refr_domain_userid
| string | The Snowplow domain_userid of the referring website
| |
refr_dvce_tstamp
| timestamp | The time of attaching the domain_userid to the inbound link
| |
refr_medium
| string | Type of referer | |
refr_source
| string | Name of referer if recognised | |
refr_term
| string | Keywords if source is a search engine | |
refr_urlfragment
| string | Referer URL fragment | |
refr_urlhost
| string | Referer host | |
refr_urlpath
| string | Referer page path | |
refr_urlport
| integer | Referer port | |
refr_urlquery
| string | Referer URL query string | |
refr_urlscheme
| string | Referer scheme | |
se_action
| string | The action / event itself | |
se_category
| string | The category of event | |
se_label
| string | A label often used to refer to the ‘object’ the action is performed on | |
se_property
| string | A property associated with either the action or the object | |
se_value
| decimal | A value associated with the user action | |
ti_category
| string | Item category | |
ti_currency
| string | Currency | |
ti_name
| string | Item name | |
ti_orderid
| string | Order ID | |
ti_price
| decimal | Item price | |
ti_price_base
| decimal | Item price in base currency | |
ti_quantity
| integer | Item quantity | |
ti_sku
| string | Item SKU | |
tr_affiliation
| string | Transaction affiliation (such as channel) | |
tr_city
| string | Delivery address: city | |
tr_country
| string | Delivery address: country | |
tr_currency
| string | Transaction Currency | |
tr_orderid
| string | Order ID | |
tr_shipping
| decimal | Delivery cost charged | |
tr_shipping_base
| decimal | Shipping cost in base currency | |
tr_state
| string | Delivery address: state | |
tr_tax
| decimal | Transaction tax value (such as amount of VAT included) | |
tr_tax_base
| decimal | Tax applied in base currency | |
tr_total
| decimal | Transaction total value | |
tr_total_base
| decimal | Total amount of transaction in base currency | |
true_tstamp
| timestamp | User-set exact timestamp | |
txn_id
| string | Transaction ID | |
unstruct_event
| JSON | The properties of the event | |
uploaded_at
| |||
user_fingerprint
| integer | User identifier based on (hopefully unique) browser features | |
user_id
| string | Unique identifier for user, set by the business using setUserId | |
user_ipaddress
| string | IP address | |
useragent
| string | User agent (expressed as a browser string) | |
v_collector
| string | Collector version | |
v_etl
| string | ETL version | |
v_tracker
| string | Identifier for Snowplow tracker |
gitlab_service_ping
Backend events converted from ServicePing (redis
and redis_hll
) must include ServicePing context
using the helper class.
An example of converted redis_hll
event with context.
Field Name | Required | Type | Description |
---|---|---|---|
data_source
| string (max 64 chars) | The data_source attribute from the metrics YAML definition.
| |
event_name *
| string (max 128 chars) | When there is a many-to-many relationship between events and metrics, this field contains the name of a Redis event that can be used for aggregations in downstream systems | |
key_path *
| string (max 256 chars) | The key_path attribute from the metrics YAML definition
|
* Either event_name
or key_path
is required