Add telemetry instrumentation for various interactions
Why
- Local Optimization: We currently have to track stage level SMAU via vanity metrics because we have yet to implement the sufficient instrumentation on the event level.
- Global Optimization: ~"group::telemetry" reached out to groupproject management to partner and collaborate on documentation, use cases, and workflows to enable cross-functional teams with the necessary toolkit to properly instrument these sort of events during the course of feature development and perform the necessary implementation steps to allow the metrics to be viewable within Periscope. This is a good issue to use as an example (#2036 (closed)).
What
- Add proper instrumentation to the list of
Plan
actions here -- https://docs.google.com/spreadsheets/d/16Pv4QMWE1UVLvKNaskVBsKUy4db7-XFJZR1a2a3Q_eQ/edit#gid=0 (internal)
- Provide feedback to ~"group::telemetry" on difficulties with Step 1.
- Collaborate on making documentation/handbook improvements to make it easier for other teams to embark on this same journey based on discussions resulting from Step 2.
Desired Outcomes
- Plan is properly instrumented to track the "Strict" definition of SMAU (https://about.gitlab.com/handbook/product/categories/plan/#strict-definitions)
- ~"group::telemetry" makes significant progress in creating a standardized framework and toolkit the encompasses best practices, implementation standards, testing requirements, documentation requirements, and workflow suggestions that any team across GitLab can easily reference and utilize while working on feature delivery.
Considerations
- When adding JS instrumentation, consider recording the event after a successful completion / response from the server. (i.e. if there is event tracking on a form or button that is connected to some sort of validation checks, tracking
onClick
would produce duplicative event counts in the scenario where the validation was triggered preventing the "completion" of the given event that we want to track). This enables us to have more accurate data.