We all know Google is in the business of analytics, whether it’s as a service to help web developers or to help improve the relevance of ads you’re shown. Android developers even have the option of putting Google Analytics into their apps to better understand their users actions and decisions.
It comes as no surprise to me that Google’s Fuchsia Team has decided to build analytics directly into the operating system.
According to the official documentation, Cobalt (not to be confused with another Google product with the same name) “is a system for collecting metrics from Fuchsia devices, sending metric observations to servers running in the cloud, aggregating and analyzing the collected observations and generating useful reports and visualizations.”
Put simply, this is a way for Google to create and obtain custom analytics and statistics from each and every Fuchsia device. One of the key goals of the system, Google claims, is user privacy. At this time though, it seems like most of the privacy features have not been implemented yet, which means most of the data is sent un-encoded.
While Cobalt’s code and registration files are open source, the running system being managed by the Cobalt team is currently intended to be used by software engineers at Google in order to collect metrics in a way that preserves our users’ privacy. If you are a Google software engineer please see our internal [user guide](go/fuchsia-cobalt-userguide) or ask for assistance from the Cobalt [team](go/fuchsia-cobalt#comms).
The privacy minded will be interested to know that Fuchsia currently tracks how many times you open each module, and what modules you pair together into Stories. (A module is like a piece of an app. A Story is one or more modules working to do one human task. We’ve talked about this at length, if you need a full refresher.) This means Google will be fully aware of what software you run on your device and how you shape them to your needs. Humorously this also means that the Fuchsia demo app we made some months ago is logged somewhere in the depths of Cobalt.
(To any Googlers reading, I sincerely apologize for messing with your statistics.)
Another interesting stat that Cobalt keeps is the queries to and responses from a “query handler.” The commit that added this functionality was tagged with “Kronk,” which we know to be the Google Assistant, but it’s interesting that Cobalt also stores which query handler was used, meaning there could be more than one. This could mean that Fuchsia might have support for other voice AIs like Alexa or Cortana out of the box. Or perhaps Google is working on a revamped Assistant or something that can work alongside Assistant. It’s hard to know for sure, as all the code related to Kronk is closed-source.
Unfortunately, the Fuchsia Team has no current plans to make Cobalt services and data available outside of Google — the kinds of analytics that Cobalt can gather are managed by a Google controlled Git repo, in fact. This is a missed opportunity, and part of me sincerely believes that analytics should be in developer hands natively instead of through a library.
Fuchsia Friday is a series where we dive into the Fuchsia source code and interpret what the current state of the OS might mean for the finished product. All information in this article is speculation based on available information and is subject to change.
Read more in our Fuchsia Friday series:
- Fuchsia Friday: FIDL is the Rosetta Stone of Fuchsia
- Fuchsia Friday: So is Android imitating Fuchsia’s features?
- Fuchsia Friday: How ad targeting might be a hidden cost of Fuchsia’s structure
- Fuchsia Friday: Google is working on two unusual Fuchsia device prototypes
- Fuchsia Friday: ‘Machina’ brings support for running Linux on top of Fuchsia