Collect more usage data

This issue is the working issue to ship what's been described in #892 (closed).

Description

We want

  • to have a better understanding on how our users use our product
  • to provide more tools for the customer success team to help customers onboard better.

The first step is to gather the total number of items.

  • We will use our existing ping mechanism to send data from EE instances to GitLab.
  • Everything that will be sent will be shown to the user in the JSON in the ping section of the admin panel.
  • We will not collect anything qualitative. Only quantitative. Meaning, no project name, author name, nature of comments, name of labels,...
  • Data is sent to version.gitlab.com
  • All data will be logged in such a way that will be able to draw graphs for the trends, query stuff like "how many comments have been created in the last 30 days", etc...
  • Queries have to be simple and have no performance issue whatsoever. If something is complex, we are doing something wrong.
  • Per instance, we need to send the total number of
    • Comments
    • Groups
    • Users
    • Projects
    • Issues
    • Labels
    • CI builds
    • Snippets
    • Milestones
    • Todos
    • Pushes
    • Merge requests
    • Environments
    • Triggers
    • Deploy keys
    • Pages
    • Project Services
    • Issue Boards
    • CI Runners
    • Deployments
    • Geo Nodes
    • LDAP Groups
    • LDAP Keys
    • LDAP Users
    • LFS objects
    • Protected branches
    • Releases
    • Remote mirrors
    • Web hooks
  • Note: a future version of this feature will allow us to make calculations like "on average (median), how many projects are there per instance?

Specification

cc @JobV