Connected Devices/Projects/Metrics/Sprint 4

From MozillaWiki
Jump to: navigation, search

General info

Some Background

  • After studying several third party the team decided to go for Google Analytics.
    • It fits our needs both in terms of metric collection and visualization
    • GA has been already vetted in Mozilla and we are already paying for a premium service
    • Implementing GA will be faster and less effort than adapting the Mozilla telemetry pipeline for use with CD projects
  • We are working in three major activities:
    • Implementing a library for Rust and JS that simplifies the adoption of Google Analytics by the trains. Bear in mind that GA was initially envisioned as a way to capture metrics from Web Pages. Although it can be used by any service, it requires a bit more of work and the target of the metrics team is to make it as smooth as possible for trains to do it.
    • Documenting the parameters that can be used for collection of events
      • Generic Parameters (can be filled-in by the library): Tracking ID, Client ID, etc.
      • Train-specific parameters such as AppName, AppVersion, Language, etc.
      • Event-specific parameters: event category, label, value, etc.
    • Evaluating reporting/visualization tools to ensure that metric data can be easily analyzed by the trains
  • The target of this is ensuring all the trains send information in a consistent way and dashboards/reporting are consistent cross-train.

Sprint Objectives

Our main goal during this sprint is sending data end to end through Google Analytics. Tracking the progress/tasks in Trello

Tasks or Bugs committed for this sprint

Task Assigned Status Status Notes
Assumption that we can start with metrics_controller and chop out the pieces we don’t need and modify/create new pieces Tamara Done
Controller: We don’t need histogram creation APIs Done
Bring back the integration flag switch that we had working Done
Add an integration test to main.rs and one in integration tests/lib.rs Done
(Controller) Have a simple API that is some sort of record_event and includes Done
Create integration test for sending metrics Michael Done
Controller: We will keep the start/stop collection Done
Adding the event_info to the event string and encoding and test Tamara Done
Controller: We will add a few more parameters to the constructor (the ones in red where it says “add to constructor”) Done
SysInfo: We will remove sysinfo since we rely on train for this. Done
Worker: We can batch things - so we will still need multiple threads to manage the sending logic and batching logic. Done
Worker: We need to change the storage from histograms to event string. This can be changed from a map to a vector Done
Histograms: Can be replaced with events.rs and a vector vs. a HashMap Done
Transmitter: Transmitter needs to remove the gzipping) Done
Transmitter: Need to cut out the unused stuff Done
Transmitter: Gzip: Can go away Done
Let’s keep this as is since it’s a generic parameter reading capability Done
Fixup the headers in the transmitter to match to what GA wants Not Started
Add logging to the new parts we added Not Started

Issues during this sprint

Demos

Retrospective

Actions taken from last sprint

Things that went well


Things that went not that well

Actions for this sprint