Connected Devices/Projects/Metrics/Sprint 4
- Participants: Tamara, Russ, Dylan, Michael, Maria
- Sprint dates: from May 2nd to May 13th
- Links of interest:
- 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.
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
|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
Actions taken from last sprint
Things that went well