Connected Devices/Projects/Metrics/Sprint 4
< Connected Devices | Projects | Metrics
Jump to navigation
Jump to search
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
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
- We had a meeting with John Jessen as we requested help to query and dashboard CD data sent to the Telemetry pipeline (some skills in iPython notebooks and Scala are necessary)
- They don’t have any resources to help in that area right now.
- He suggested that maybe we should use Google Analytics instead of Telemetry because:
- The benefits of using Telemetry are clear for Gecko-based projects, but this might not apply to other projects.
- The CD projects are intended to be initially small projects and Google Analytics offer kind of dashboards really easy to be used.
- Some other projects have started to use GA (e.g. Tofino) in Mozilla
- However, he also pointed out that this might lead to Privacy issues.
- We decided stopping the tasks planned for Sprint3 and start to investigate Google Analytics and similar third party services just in case we could use it to benefit from the easiness to create dashboards on top it. We plan to do that assessment during the following weeks.
- In parallel we are trying to contact Marshall Erwin, to check what are the legal implications and consequences of following such an approach.
Demos
Retrospective
Actions taken from last sprint
Things that went well