Skip to content

GitLab Next

  • Menu
Projects Groups Snippets
  • 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 43,142
    • Issues 43,142
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,354
    • Merge requests 1,354
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 has launched! Please visit Breaking changes in 15.0 and 15.0 Removals to see which breaking changes may impact your workflow.

  • GitLab.org
  • GitLabGitLab
  • Merge requests
  • !36443

Product Analytics collector

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Dmytro Zaporozhets (DZ) requested to merge dz-pa-rails-collector-from-master into master Jul 09, 2020
  • 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 Dmytro Zaporozhets (DZ)
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: dz-pa-rails-collector-from-master