Internal Event Tracking

This page provides detailed guidelines on using the Internal Event Tracking system to instrument features on GitLab.

Currently Internal Event Tracking is consolidating the following systems:

Internal Events is an unified interface to track events in GitLab. Each tracking call represents a user action and the associated properties. Internal Events then provides underlying systems the properties they require for their specific analytics needs.

Important: Starting with GitLab 18.0, event data is collected from Self-Managed instances, not just aggregated metrics as in previous versions. This change provides more detailed insights into product usage while maintaining user privacy through pseudonymization.

Analytics systems summary:

Function\SystemService PingSnowplow
Primary functionProvide aggregated analytics dataTrack raw events (user interactions with the service)
Data storageLocal instance (Redis, Postgres etc)Snowflake
Data granularityNone (data is aggregated)Per event
Extra parametersNoneAny amount of custom data
Receiving delayUp to 1 weekA few minutes
ImplementationUtilises Internal Events, Database records, System SettingsInternal Events plus custom tracking context

This page is a work in progress. If you have access to the GitLab Slack workspace, use the #g_monitor_analytics_instrumentation channel for any questions or clarifications.