Skip to content

GitLab Next

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 39,511
    • Issues 39,511
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 1,223
    • Merge requests 1,223
  • Requirements
    • Requirements
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
    • Value stream
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLabGitLab
  • Merge requests
  • !36443

Merged
Created Jul 09, 2020 by Dmitriy Zaporozhets (DZ)@dzaporozhetsOwner0 of 13 tasks completed0/13 tasks

Product Analytics collector

  • Overview 31
  • Commits 3
  • Pipelines 6
  • Changes 11

What does this MR do?

Rack application within Rails to record product analytics events.

The Product Analytics feature itself is built in several steps. You can see the progress here => #225167 (closed)

Related to !27730 (closed).

Why rack application:

  • we want as much performance as we can get. No need for controllers with all hooks etc.
  • we want it in Rails while feature is in experimental stage. Easy to ship. The future is go collector => https://gitlab.com/gitlab-org/snowplow-go-collector
  • its easier to remove later

Details:

  • Rack limit: 100 requests per minute per aid. aid stands for application id and means GitLab project id.
  • Ignore all requests without application id and event id.
  • No authentication (and never will be). Write any event if it's valid. Like snowplow collector.
  • Product analytics feature itself is behind a feature flag and disabled by default.
  • Deny requests for projects that don't have feature flag enabled (temporary until feature is enabled by default)
  • Requests will come from snowplow javascript tracker.

Does this MR meet the acceptance criteria?

Conformity

  • Changelog entry
  • Documentation (if required)
  • Code review guidelines
  • Merge request performance guidelines
  • Style guides
  • Database guides
  • Separation of EE specific content

Availability and Testing

  • Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
  • Tested in all supported browsers
  • Informed Infrastructure department of a default or new setting change, if applicable per definition of done

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited Jul 15, 2020 by Dmitriy Zaporozhets (DZ)
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: dz-pa-rails-collector-from-master

Enable Gitpod?

To use Gitpod you must first enable the feature in the integrations section of your user preferences.

Cancel Enable Gitpod