microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.17k stars 28.54k forks source link

Consider adding OpenTelemetry support #193724

Open JamyDev opened 11 months ago

JamyDev commented 11 months ago

At Uber we have a decently large Remote - SSH based rollout of VS Code. There are certain things that, without hooking into VS Code core, we don't currently have telemetry insights on (eg ssh connection failures, etc). And ideally we want to stay on the main VS Code version, we don't have the manpower to maintain our own fork.

A proposal from one of our engineers was to add OpenTelemetry support, which would mean a way for us to receive events such as a connection failure.

cc @isidorn, I think we had a quick chat about some telemetry last year, but this seems to be a better approach than what we discussed before.

lramos15 commented 11 months ago

I'm not sure I follow, you want to hook in and collect data from core? Extension authors are free to use any telemetry library.

JamyDev commented 11 months ago

@lramos15 Main trouble we're facing right now is that telemetry from core parts (eg remote - ssh) is not currently available. There is also some telemetry in core that we'd like to capture, like extension and workbench load time etc.

Aiming to support something like Open Telemetry would make it possible for us to collect this for our internal dashboards, since we're trying to gauge quality of our engineering tooling.

isidorn commented 11 months ago

@JamyDev thanks for opening this issue. I do not think we will invest in supporting Open Telemetry.

But we might be able to share some data insights with you. If you have a finite set of data questions you can send me an email and I can share the general information (like workbench load time that you mentioned).

JamyDev commented 11 months ago

@isidorn We're not quite looking for data insights. While those could be useful for the business folks, we want to ensure we provide a quality platform for our engineers, part of that involves ensuring nothing's broken (eg connection issues with Remote - SSH, general code completion performance across language servers, etc ).

We've done our best to get some telemetry with the extension API. But it's not quite enough to consistently be able to give our devtooling a consistent uptime, or notice and track incidents as they happen (eg if someone on our team pushes a bad config, or if a VS Code extension starts misbehaving after an upgrade).

An alternative option would be allowing us to configure our own AppInsights instance to push data to (this can be alongside the main one you are already writing to today).