-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/go,x/telemetry/config: collect the set of OS versions on which the go command is run #70126
Comments
I wonder how much of a difference there is between developer machines where |
Continuing the train of thought from @seankhliao's comment above... I would expect that usage of a particular platform for actual development is likely to drop considerably faster than use of that same platform as a deployment target, since deployment targets typically have more cautious platform upgrade rhythms than developer workstations. I could therefore imagine potentially making compromises where a specific platform gets phased out as a toolchain host while remaining as a cross-compilation target, if a target seems used more heavily for deploy targets than for actually running A deployed Go program cannot (and should not) collect telemetry itself, but perhaps collecting both the host and target information (i.e. the effective target selected by the |
I share your concerns about the difference between developer and deployment OSs, and we should try to make clear in the metadata of the metric that it refers to the OS on which the tools run, which is an imperfect measure of deployment. The specific proposal here is about collecting OS version numbers, not mere GOOS values, which we already collect. I'm not sure there's much quantitative signal in the noise of correlating host and target OS (or ARCH) pairs. Even when you primarily develop for a different primary OS (or ARCH), programs are portable enough that most of the time one builds for the host machine and runs tests locally. |
Thanks, I think this makes sense. See also https://research.swtch.com/telemetry-uses#windows7. (Aside: this doesn't need to go through the main proposal process, just the telemetry proposal process). I do share others' concerns that this is only measuring usage on go developer machines, which is only one type of usage we care about. Nevertheless, I think it is a useful indicator. Certainly it can tell us of true positives, even if it can't detect true negatives. |
Quoting that page:
So just to be clear, this should be coarse-grained when collected. For Linux that would mean truncating to x.y, not x.y.z. |
We're comfortable accepting this, provided the buckets are coarse, as @rsc said. This is a non-trivial amount of work to implement, as instrumentation will vary by platform and bucketing may not be obvious. Nevertheless it would be nice to get this into 1.24. |
In Go 1.23 we have a Unfortunately, the mapping of Windows major and minor versions are all 10.0 for Windows 10, 11, Server 2016, Server 2019, and Server 2022 (see https://learn.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version). And those are the only versions of Windows we support for Go 1.21 and later... If we want that information we'd have to use the build number, which is also a counter in 1.23: |
When deciding to drop support for an OS version (e.g. #69839) it is useful to know how many people still use it. We can collect this information through telemetry. I propose that we do.
@findleyr
The text was updated successfully, but these errors were encountered: