8 ms·
Hi all, I work on the VS Code team. This came up the other day in stand up and the initial plan was to deprecate and eventually remove the old setting. Several
by Tyriar 5y ago
Hi all, I work on the VS Code team. This came up the other day in stand up and the initial plan was to deprecate and eventually remove the old setting. Several of us pushed back and said while we may deprecate the setting in favor of something else, the old setting should always be respected due to the sensitivity around telemetry.
If there's any confusion around this messaging it's because this discussion literally happened 2 days ago. I'll reopen https://github.com/microsoft/vscode/issues/134660 https://github.com/microsoft/vscode/issues/134660 to make sure we clear up confusion.
- artificialLimbs 5y agoSo we should keep a copy of the old installer around?
- Tyriar 5y agoWhy would you need to do that given what I said?
- mejari 5y agoPresumably so someone installing for the first time can install an older version where they can set the toggle before upgrading to when the toggle is removed?
- Tyriar 5y agoMaybe there's a misunderstanding. The old toggle is deprecated, but the plan is that you will always be able to use it. The new toggle is just a different setting and can still be used there on newer versions ("telemetry.telemetryLevel": "off").
- tremon 5y agoAnd how do both toggles combine? Is this the implemented truth table? telemetryLevel newTelemetryLevel result off off no telemetry sent on off telemetry sent off on telemetry sent on on telemetry sent
- judge2020 5y agohttps://github.com/microsoft/vscode/blob/be75065e817ebd7b6250a100cf5af78bb931265b/src/vs/platform/telemetry/common/telemetryUtils.ts#L120-L137 https://github.com/microsoft/vscode/blob/be75065e817ebd7b625... If either are 'off', it's sending no data. The new one also allows you to only send error logs, so the truth table would be more complex.
- rnotaro 5y agoIt used the most restrictive setting. [1] > @john-aws It does respect your prior settings. If you disabled telemetry before it will still be disabled even though telemetryLevel is set to "on" by default. We always take the most restrictive of the two settings. You can confirm this by setting Log level to trace and seeing no telemetry is flowing in the output channel. The old setting will never be completely removed to prevent enablement of people who previously disabled telemetry but it is deprecated so we recommend setting this new setting to "off" and removing the older settings from your settings.json So the truth table would look like this : telemetryLevel newTelemetryLevel result off off no telemetry sent on off no telemetry sent off on no telemetry sent on on telemetry sent The new telemetry level can be set to Off, Error, On. The actual code is on github[2] and looks like this : const newConfig = configurationService.getValue<TelemetryConfiguration>(TELEMETRY_SETTING_ID); const oldConfig = configurationService.getValue(TELEMETRY_OLD_SETTING_ID); // Check old config for disablement if (oldConfig !== undefined && oldConfig === false) { return TelemetryLevel.NONE; } switch (newConfig ?? TelemetryConfiguration.ON) { case TelemetryConfiguration.ON: return TelemetryLevel.USAGE; case TelemetryConfiguration.ERROR: return TelemetryLevel.ERROR; case TelemetryConfiguration.OFF: return TelemetryLevel.NONE; } [1] https://github.com/microsoft/vscode/issues/134660#issuecomment-939163141 https://github.com/microsoft/vscode/issues/134660#issuecomme... [2] https://github.com/microsoft/vscode/blob/be75065e817ebd7b6250a100cf5af78bb931265b/src/vs/platform/telemetry/common/telemetryUtils.ts#L120-L137 https://github.com/microsoft/vscode/blob/be75065e817ebd7b625...
- siproprio 5y agoYes. Those get harder to find every day unless you know exactly where to look. I also wouldn't put it past them retroactively patching builds to cover them up.
- throwawaymanbot 5y agoWhy the dick move though? Any insight? M$ keeps saying it’s no longer like this but does stuff like this…
- anakaine 5y agoAs devs dont often hear feedback - you guys are doing a great job on VSCode. There are some key issues that Code overcame compared to other IDEs, which is why so many teams use it. One of those is forced telemetry (others are pricing, integration, and memory / resources footprint). Please continue to push back against moves towards forced telemetry. Some of us work in sensitive environments, others wish for privacy. For those of us that work in sensitive environments we could simply firewall the program to stop talk back, but that will likely break many other things. Currently we have a level of trust that strikes a good balance between over the top strict security and permissive security where there are few issues because Code is trusted from a trusted domain. Forcing telemetry is likely to have Cybersecurity teams flag the app at an enterprise level and start to introduce headaches as they start to try and curb information leak.
- jiggawatts 5y agoJust some feedback from the field: I work with some high-security networks, and the perception from those Microsoft customers is that whatever "good" that has come from Microsoft improving security in general has been completely undermined by the pervasive telemetry. Windows 10 alone has something like 200 individual settings for disabling its various forms of telemetry. Office adds several dozen more. Dotnet itself has telemetry, then PowerShell on top of that. VS Code and Visual Studio both send telemetry. On and on, and on... and then some more, and on... and ON and ON and... There's just no end to it. As administrators, it's like playing whack-a-mole against a thousand moles that are breeding exponentially. We don't want to play this game any more.
- Tyriar 5y agoNoted. I can't speak for anything other than VS Code but we have the toggle in product which is all you need to change to turn it off for the core, extensions may have their own setting or share the core toggle, but we often can't control that. There's also the very detailed page on the website detailing this as well as how to see all telemetry events that are sent in real time in the output panel and even how to print out a report of all events that get sent with their classification (code --telemetry).
- bloqs 5y agoReally appreciate the open responsiveness. I think most people on this site know the position you are in. Dont be put off by irritated people, it's easy to underestimate how much of waking life some people spend dealing with frustrations with specific bits of software.