Skip to content

x/tools/gopls: add a prompt to ask users if they want to enable Go telemetry #62576

Closed
@findleyr

Description

@findleyr

As part of opt-in transparent telemetry (#58894), we're planning to experiment with a prompt asking users if they want to enable Go telemetry reporting. This is part of the "campaign cost" of opt-in telemetry mentioned at https://research.swtch.com/telemetry-opt-in. Implementing this prompt in gopls rather than the VS Code Go extension will result in a a more representative sample of participants across different editors.

Asking for the attention of our users is an important part of the opt-in telemetry model, but also must be done with great care. Here are some ideas for how to make prompting minimally invasive (other ideas welcome):

  • Once a user has responded to the prompt from any LSP session, we should not prompt again. For example, I regularly use both VS Code and vim, and don't want to be prompted twice.
  • We must have a gopls setting that permanently disables prompting.
  • We should roll out the prompt out slowly, evaluating its effectiveness.

Therefore, we plan to do the following:

  1. Implement a new global persistent configuration mechanism for gopls. Previously, all configuration was per-session and managed by the editor. Storing the prompt response will be the first time that gopls persists its own configuration.
  2. Add a "prompt.telemetry" setting controlling whether or not to ask about enabling telemetry. Until we're confident that the prompt is reliable and effective, the default value for this setting will be false.
  3. Implement the prompt using the LSP ShowMessage request, which allows the server to query the user through the editor UI.
  4. For a small sample of VS Code Go users, send "prompt.telemetry": true from the VS Code client, and use the rate of new telemetry participants as a signal for whether the prompt is effective. We'll also pay close attention to any feedback we receive about the prompt itself.

We expect that telemetry will help our team to deliver a faster, more robust, and generally higher quality product. If the prompt proves to be a net benefit for our users, we'll consider enabling it more widely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions