Telemetry Counters
This page shows every counter name ever published in a Go telemetry upload config. You can use this page to see what kind of information the Go toolchain uploads if you opt in to telemetry. If any of the counter names look suspicious, like they're trying to probe private information, it would be evidence that Go telemetry violates privacy. Since the checksum of every telemetry upload config is published in the Go Checksum Database, it would be difficult for Google to conceal malicious counter names from this page. Read more about transparent telemetry
| Program | Type | Name |
|---|---|---|
| cmd/compile | counter | compile/invocations |
| cmd/compile | stack | compile/bug |
| cmd/go | counter | go/build/flag/buildmode:{archive,c-archive,c-shared,default,exe,pie,shared,plugin} |
| cmd/go | counter | go/build/flag:{buildmode} |
| cmd/go | counter | go/invocations |
| cmd/go | counter | go/platform/host/darwin/major-version:{20,21,22,23,24,25,26,27,28} |
| github.com/go-delve/delve/cmd/dlv | stack | crash/crash |
| github.com/go-delve/delve/cmd/dlv | stack | delve/bug |
| github.com/golang/vscode-go/vscgo | counter | vscode-go/command/trigger:{gotests-command_palette,gotests-context_menu,gomodifytags-command_palette,gomodifytags-context_menu,gopls.add_test-command_palette,gopls.add_test-context_menu,gopls.add_test-code_action,gopls.modify_tags-command_palette,gopls.modify_tags-context_menu,gopls.modify_tags-code_action} |
| github.com/golang/vscode-go/vscgo | counter | vscode-go/tool/usage:{gotests,gomodifytags,goplay} |
| golang.org/x/tools/gopls | counter | crash/malformed |
| golang.org/x/tools/gopls | counter | crash/no-running-goroutine |
| golang.org/x/tools/gopls | counter | gopls/changesig |
| golang.org/x/tools/gopls | counter | gopls/client:{vscode,vscodium,code-server,eglot,govim,neovim,coc.nvim,sublimetext,other} |
| golang.org/x/tools/gopls | counter | gopls/client:{vscode,vscodium,vscode-insiders,code-server,eglot,govim,neovim,coc.nvim,sublimetext,other} |
| golang.org/x/tools/gopls | counter | gopls/client:{vscode,vscodium,vscode-insiders,code-server,eglot,govim,neovim,coc.nvim,sublimetext,windsurf,cursor,other} |
| golang.org/x/tools/gopls | counter | gopls/editor:{emacs,vim,vscode,other} |
| golang.org/x/tools/gopls | counter | gopls/extract:{func,method,variable,variable-all} |
| golang.org/x/tools/gopls | counter | gopls/gotoolchain:{auto,path,local,other} |
| golang.org/x/tools/gopls | counter | gopls/goversion:{1.16,1.17,1.18,1.19,1.20,1.21,1.22,1.23,1.24,1.25,1.26,1.27,1.28,1.29,1.30} |
| golang.org/x/tools/gopls | counter | gopls/inline:{call,variable} |
| golang.org/x/tools/gopls | counter | gopls/mcp |
| golang.org/x/tools/gopls | counter | gopls/mcp-headless:sse |
| golang.org/x/tools/gopls | counter | gopls/mcp-headless:stdio |
| golang.org/x/tools/gopls | counter | gopls/mcp-headless:{stdio,sse} |
| golang.org/x/tools/gopls | counter | gopls/mcp-tool:{go_context,go_diagnostics,go_file_context,go_file_diagnostics,go_file_metadata,go_package_api,go_references,go_search,go_symbol_references,go_workspace,go_vulncheck} |
| golang.org/x/tools/gopls | counter | gopls/rename |
| golang.org/x/tools/gopls | counter | gopls/renamekind:package |
| golang.org/x/tools/gopls | counter | gopls/setting/codelens/vulncheck:{true,false} |
| golang.org/x/tools/gopls | counter | gopls/setting/codelenses/vulncheck:{true,false} |
| golang.org/x/tools/gopls | counter | gopls/setting/vulncheck:{Off,Imports} |
| golang.org/x/tools/gopls | counter | gopls/structtags:{add,remove} |
| golang.org/x/tools/gopls | counter | gopls/telemetryprompt/accepted |
| golang.org/x/tools/gopls | stack | crash/crash |
| golang.org/x/tools/gopls | stack | gopls/bug |
| golang.org/x/vuln/cmd/govulncheck | counter | govulncheck/assumptions:{multi-patterns,no-binary-platform,no-relative-path,no-go-root,local-replace,unknown-pkg-mod-path} |
| golang.org/x/vuln/cmd/govulncheck | counter | govulncheck/format:{text,json,sarif,openvex} |
| golang.org/x/vuln/cmd/govulncheck | counter | govulncheck/mode:{source,binary,extract,query,convert} |
| golang.org/x/vuln/cmd/govulncheck | counter | govulncheck/scan:{symbol,package,module} |
| golang.org/x/vuln/cmd/govulncheck | counter | govulncheck/show:{none,traces,color,verbose,version} |
CSV of Counters / Atom Feed of Counters
Errors
Source Spotter was unable to process the following telemetry configs:
| Version | Time (UTC) | Error |
|---|---|---|
| v0.0.0-20230807184422-9e598b824621 | 2025-08-30 17:28 | error parsing "golang.org/x/telemetry/config@v0.0.0-20230807184422-9e598b824621/config.json": json: cannot unmarshal string into Go struct field configJSON.Programs of type struct { Name string; Counters []struct { Name string; Rate float32 }; Stacks []struct { Name string; Rate float32; Depth int } } |
| v0.0.0-20230806135156-6b1207f8206a | 2025-08-30 17:28 | error parsing "golang.org/x/telemetry/config@v0.0.0-20230806135156-6b1207f8206a/config.json": json: cannot unmarshal string into Go struct field configJSON.Programs of type struct { Name string; Counters []struct { Name string; Rate float32 }; Stacks []struct { Name string; Rate float32; Depth int } } |
| v0.0.0-20230804210017-585a8efc95ba | 2025-08-30 17:28 | error parsing "golang.org/x/telemetry/config@v0.0.0-20230804210017-585a8efc95ba/config.json": json: cannot unmarshal string into Go struct field configJSON.Programs of type struct { Name string; Counters []struct { Name string; Rate float32 }; Stacks []struct { Name string; Rate float32; Depth int } } |