Skip to content

Commit

Permalink
internal/content/telemetrygodev: update privacy.md
Browse files Browse the repository at this point in the history
It is strange that this is in x/telemetry module - we will fix it
in a future cl.

Change-Id: Ie3c30585dd32097c2d01075fd3c297f6f190da7a
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/530098
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Peter Weinberger <[email protected]>
Reviewed-by: Robert Findley <[email protected]>
Run-TryBot: Hyang-Ah Hana Kim <[email protected]>
  • Loading branch information
hyangah committed Sep 22, 2023
1 parent 4f00ffe commit 2c5a2fb
Showing 1 changed file with 80 additions and 28 deletions.
108 changes: 80 additions & 28 deletions internal/content/telemetrygodev/privacy.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,83 @@ Layout: base.html

# Privacy Policy

_Last updated: April 27, 2023_

When you enable Go toolchain telemetry using `go telemetry on`, Go toolchain
programs such as the go command and gopls record usage and performance data
about their own execution to local files on your computer stored in
`os.UserConfigDir()/go/telemetry/local`. The files contain event counters, stack
traces for the Go toolchain programs, and basic version information about your
operating system, CPU architecture, and dependency tools such as the host C
compiler and version control tools. The files do not contain any user data that
may be potentially identifying or any kind of system identifier.

You can view the locally collected data using `go telemetry view`.

Once a week, the Go toolchain will randomly decide whether to upload that week's
reports to a server at Google. The random choice is set so that a representative
sample of systems upload reports each week. As more systems participate, each
system uploads less often. This data is collected in accordance with the Google
Privacy Policy (https://policies.google.com/privacy). The uploaded reports are
republished in full as part of a public dataset. Developers working on Go
itself, both inside and outside Google, will use that dataset to better
understand how the toolchain is being used and whether it is performing as
expected.

You can collect telemetry information for local viewing without sending it to
Google by using `go telemetry local`. If you later switch from
`go telemetry local` to `go telemetry on`, the current week’s telemetry data may
be uploaded. You may clear your local telemetry data by running
`go telemetry clear` at any time.
_Last updated: September 22, 2023_


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

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

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

Go Telemetry only uploads counters that have been approved through the public proposal process.
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).

## IDE Integration

If you're using an integrated development environment (IDE) like Visual Studio Code,
Future versions (perhaps starting with v0.14.0) of [gopls](https://go.dev/s/gopls)
will 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 at any time by using the [`gotelemetry off`](#command) command.

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.

0 comments on commit 2c5a2fb

Please sign in to comment.