Go 工具链已经开始收集和上报使用数据!

开发 前端
Go 官方走了民主流程在社区内收集了大量的建议,虽然有许多的同学反对收集。不过从现在真正落地的情况来看,官方选择了一条比较折中的路线,让人有种吐槽也很难改的感觉。

还做了个投票,以下是我们当时的投票结果:

图片图片

从 Go 社区的讨论结果来看,最后是绝大部分开发者是没有直接同意 rsc 这么干的。都非常关注 ”隐私“ 的问题。更建议做成可选项,也就是用户选择上报。

最后 rsc 就以收集够信息,“草草了事” 的关掉了讨论区(Locked)当我以为这事就这么完了,没想到人家已经静悄悄干起来了,也已经上线完毕了。

遥测数据

遥测(Go Telemetry)是 Go 工具链程序收集其性能和使用数据的一种方式。这些数据可以帮助开发人员改进语言和工具。

Go 工具链程序(例如:go 命令和 gopls)会记录自身执行的某些信息。

这些数据存储在计算机的本地文件中,会存储在 os.UserConfigDir()/go/telemetry/local 目录中。

遥测文件内会至少包含以下数据:

  • 事件计数器:有关 Go 工具链程序使用情况的信息。
  • 堆栈跟踪:有关程序执行的详细信息,用于故障排除。
  • 基本系统信息:操作系统、CPU 架构以及正在执行的 Go 工具的名称和版本。
  • ...

遥测方式

Gotelemetry 工具

要管理 Go 遥测的相关配置和数据,可以使用官方提供的 gotelemetry 命令行工具。

安装命令如下:

$ go install golang.org/x/telemetry/cmd/gotelemetry@latest

常用命令如下:

  • gotelemetry on:每周上传 Go 遥测数据。
  • gotelemetry off:关闭遥测,不上传 Go 遥测数据。
  • gotelemetry view:查看本地收集的遥测数据。
  • gotelemetry env:打印当前遥测环境信息。
  • gotelemetry clear:删除所有本地采集的遥测数据。

IDE 集成

如果我们使用的是 Visual Studio Code 等 IDE,默认 gopls 会收集遥测数据,版本要求是 v0.14.0 及更高版本。

遥测收集后,数据只有在选择允许(IDE 中的同意对话框)后才会上传,您可以使用上文所述的命令 getelemetry on 去开启上传。

也可以随时使用 gotelemetry local 或 gotelemetry off 等命令退出上传。

数据隐私

默认情况下,Go 遥测收集的数据仅保存在你的计算机本地。除非你明确决定启用 Go 遥测同步,否则不会与任何人共享数据。

操作上,我们可以通过运行命令 getelemetry on 或使用 IDE 中的命令来实现遥测的开关。一旦启用,Go 遥测可能会决定每周一次将报告上传到 Google 服务器。

上传报告的本地副本,一般会保存在用户机器上的 os.UserConfigDir()/go/telemetry/remote目录中。

这些报告只包括经用户同意的的计数器等数据,并根据 Google 隐私政策收集做一定的规则配置或约束。上传的报告还将作为 telemetry.go.dev 公共数据集的一部分提供。

例如下图,可以看到近期的遥测图表,作为你的分析数据:

图片图片

Google 内部和外部的 Go 开发人员都可以使用该数据集来了解 Go 工具链的使用情况以及其性能是否符合预期。

总结

Go 官方走了民主流程在社区内收集了大量的建议,虽然有许多的同学反对收集。不过从现在真正落地的情况来看,官方选择了一条比较折中的路线,让人有种吐槽也很难改的感觉。

图片图片

像是本文提到的新版本的 IDE(gopls >= v0.14.0)等,本身 Go 遥测就会收集在本地,我们调整的更多的是遥测发送数据与否的开关等。

可能很多同学,没有细看,按着按着就加入发送遥测的名单里了。

责任编辑:武晓燕 来源: 脑子进煎鱼了
相关推荐

2012-11-08 09:32:24

2017-02-06 12:40:15

微软windows数据隐私

2022-06-12 21:28:26

Fluentd开源

2021-04-09 20:04:34

区块链Go加密

2024-02-26 00:02:00

开发Go

2015-08-14 09:21:09

gdb工具调试 Go

2010-02-12 09:34:24

Windows 8开发计划

2023-07-24 07:59:53

2021-04-16 20:43:18

Go区块链编程

2023-10-28 15:37:39

Go编程语言

2018-07-24 09:28:18

存储数据仓库

2009-09-22 09:15:29

Linus TorvaLinuxLinux内核

2017-10-20 08:25:10

数据收集工具数据源

2023-06-07 13:41:48

大型语言模型ChatGPT

2024-01-15 11:12:28

Go内存开发

2017-11-08 06:43:02

软件开发编程语言框架

2018-05-30 09:23:11

数据库Oracle性能收集

2023-08-31 07:46:54

KubernetesLoki

2018-03-14 11:15:06

2012-04-03 13:30:02

诺基亚
点赞
收藏

51CTO技术栈公众号