| --- | |
| Title: Go Telemetry Privacy Policy | |
| Layout: privacy.html | |
| --- | |
| # Privacy Policy | |
| _Last updated: January 24, 2024_ | |
| Go Telemetry is a way for Go toolchain programs to collect data about their | |
| performance and usage. This data can help developers improve the language and | |
| tools. | |
| ## What Go Telemetry Records {#collection} | |
| Go toolchain programs, such as the `go` command and `gopls`, record certain information | |
| about their own execution. This data is stored in local files on your computer, | |
| specifically in the [`os.UserConfigDir()/go/telemetry/local`](https://pkg.go.dev/os#UserConfigDir) directory. | |
| Here is what these files contain: | |
| * Event counters: Information about how Go toolchain programs | |
| are used. | |
| * Stack traces: Details about program execution for troubleshooting. | |
| * Basic system information: Your operating system, CPU architecture, and name and version of the Go tool being executed. | |
| Importantly, these files do not contain personal or other | |
| identifying information about you or your system. | |
| ## Data Privacy {#data-privacy} | |
| By default, the data collected by Go Telemetry is kept only locally on your computer. | |
| It is not shared with anyone unless you explicitly decide to enable Go Telemetry. | |
| You can do this by running the command [`gotelemetry on`](#command) or using a command | |
| in your integrated development environment (IDE). | |
| Once enabled, Go Telemetry may decide once a week to upload reports to a Google | |
| server. A local copy of the uploaded reports is kept in the | |
| [`os.UserConfigDir()/go/telemetry/remote`](https://pkg.go.dev/os#UserConfigDir) directory on the user's machine. | |
| These reports include only approved counters and are collected in | |
| accordance with the Google Privacy Policy, which you can find | |
| at [Google Privacy Policy](https://policies.google.com/privacy). | |
| The uploaded reports are also made available as part of a public dataset at | |
| [telemetry.go.dev](https://telemetry.go.dev). Developers working on Go, | |
| both inside and outside of Google, use this dataset to understand | |
| how the Go toolchain is used and if it is performing as expected. | |
| ## Using the `gotelemetry` Command Line Tool {#command} | |
| To manage Go Telemetry, you can use the `gotelemetry` command line tool. | |
| go install golang.org/x/telemetry/cmd/gotelemetry@latest | |
| Here are some useful commands: | |
| * `gotelemetry on`: Upload Go Telemetry data weekly. | |
| * `gotelemetry off`: Do not upload Go Telemetry data. | |
| * `gotelemetry view`: View locally collected telemetry data. | |
| * `gotelemetry clear`: Clear locally collected telemetry data at any time. | |
| For the complete usage documentation of the gotelemetry command line tool, visit | |
| [golang.org/x/telemetry/cmd/gotelemetry](https://golang.org/x/telemetry/cmd/gotelemetry). | |
| ## Approved Counters {#config} | |
| Go Telemetry only uploads counters that have been approved through the [public proposal process](https://github.com/orgs/golang/projects/29). | |
| You can find the set of approved counters as a Go module at | |
| [golang.org/x/telemetry/config](https://go.googlesource.com/telemetry/+/refs/heads/master/config/config.json) and the [current config in use](https://telemetry.go.dev/config). | |
| ## IDE Integration {#integration} | |
| If you're using an integrated development environment (IDE) like Visual Studio | |
| Code, versions | |
| [`v0.14.0`](https://github.com/golang/tools/releases/tag/gopls%2Fv0.14.0) and | |
| later of the Go language server [gopls](https://go.dev/s/gopls) collect | |
| telemetry data. As described above, data is only uploaded after you have opted | |
| in, either by using the command [`gotelemetry on`](#command) as described above | |
| or by accepting a dialog in the IDE. | |
| You can always opt out of uploading at any time by using the | |
| [`gotelemetry local`](#command) or [`gotelemetry off`](#command) commands. | |
| By sharing performance statistics, usage information, and crash reports with Go Telemetry, | |
| you can help improve the Go programming language and its tools while also ensuring | |
| your data privacy. |