Connected Devices/Projects/Metrics/Sprint 4
From MozillaWiki
< Connected Devices | Projects | Metrics
Contents
General info
- Participants: Tamara, Russ, Dylan, Michael, Maria
- Sprint dates: from May 2nd to May 13th
- Links of interest:
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