Generally, I’m opposed to any telemetry in any project, open source or not. However, there was recently a discussion about adding telemetry to the Go programming language’s tools, and Go is my primary language. My initial reaction was outrage, I don’t want Google spyware on my system, but reading the proposal for how it was actually going to work changed my opinion.

Here’s a link to the proposal: https://research.swtch.com/telemetry. It was designed for Go, but the author believes it can be applied to other open source projects as well.

It was originally going to be opt-out, which I disagree with, but the Go team has listened to feedback and it will be opt-in instead. This is the first telemetry proposal I’m not completely opposed to, and I might even enable it on some of my devices.

While Google has had a very bad track record with spyware, this proposal actually seems reasonable and carefully designed to take privacy into consideration. The system will only collect numbers and stack traces. The numbers are statistics like the amount of times a Go tool has crashed or the amount of times a feature was used. Every week, with a 10% probability, a report will be sent. This amounts to an average of just 5 reports per year. The reports will contain no identifying information, not even a randomly-generated ID, they will be publicly viewable, and the decisions about what to collect will be made in an open, public process. All the code for this will be completely open source. It only applies to the Go tools themselves, not programs compiled with the Go compiler, and all the collection logic is local, with the metrics being stored in files that you can inspect to see what will be sent.

It seems like this proposal would preserve privacy while still providing only the necessary data to allow the Go team to improve their tools. What are your thoughts on this?