Google intends to add telemetry to Go

goland

Go is a concurrent, compiled programming language with static typing inspired by C syntax.

The news recently broke that Google plans to add telemetry collection sending collected data by default in the GO programming language.

Telemetry will cover command line utilities developed by the Go language development team, such as the "go" utility, the compiler, the gopls and govulncheck applications. The collection of information will be limited only to the accumulation of information on the characteristics of public services, i.e. telemetry will not be added to the created applications.

I'd like to explore the use of transparent telemetry, or a similar system, in the Go toolchain, which I hope will help developers and users of Go projects alike. To be clear, I'm just suggesting that the instrumentation be added to the Go command line tools written and distributed by the Go team.

The reason to collect telemetry, it is the desire to obtain the missing information about the needs and characteristics of the work of developers that cannot be detected using error messages and surveys as a feedback method.

telemetry collection will help identify anomalies and abnormal behaviors, Evaluate how developers interact with the toolset and understand which options are most in demand and which are rarely used. The accumulated statistics are expected to make it possible to modernize the set of tools, improve the efficiency and comfort of work, and pay special attention to the necessary skills for developers.

For data collection, a new "transparent telemetry" architecture has been proposed, intended to provide the possibility of an independent public audit of the data received and to collect only the minimum generalized information necessary to prevent the leakage of traces with detailed information about user activity.

For example, when evaluating the traffic consumed by the toolset, it is planned to take into account metrics such as the data counter in kilobytes for the entire year. All data collected will be published in the public domain for inspection and analysis. To disable sending telemetry, you must set the environment variable “GOTELEMETRY=off”.

In the statement, mentions the key principles to build a transparent telemetry:

  • Decisions about the metrics collected will be made through an open public process.
  • The telemetry collection settings will be automatically generated based on the list of actively monitored metrics, without collecting data that is not associated with these metrics.
  • Telemetry collection settings will be maintained in a transparent audit trail with verifiable records, making it difficult to selectively apply different collection settings to different systems.
  • The telemetry collection configuration will take the form of a cached Go proxy module, which can be used automatically on systems with local Go proxies already in use. The download of the telemetry configuration will start no more than once a week with a probability of 10% (ie each system will download the configuration about 5 times a year).
  • Information transmitted to external servers will include only total counters that take into account statistics in the context of a full week and are not tied to a specific time.
  • Reports submitted will not include any type of system or user identifiers.
  • Reports sent will only contain strings that are already known on the server, ie counter names, typical program names, known version numbers, function names in regular toolkit utilities (when stack traces are sent). Non-string data will be limited to counters, dates, and row counts.
  • The IP addresses from which the telemetry servers are accessed will not be stored in the logs.
  • To obtain the required sample, it is planned to collect 16.000 reports per week, which, given the presence of two million installations of the tool, will require reports to be sent each week from only 2% of the systems.
  • Metrics collected in aggregate form will be publicly published in graphical and tabular presentations.
  • The full initial data accumulated during the telemetry collection will also be published.
  • Telemetry collection will be enabled by default, but an easy way to disable it will be provided.

Finally if you are interested in knowing more about it, you can check the details In the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.