Synergy DBL Integration Improvement Program (SDI telemetry)
This topic includes the following sections:
- Types of information collected by SDI telemetry
- Steps we take to remove personal information from collected data
- How we use telemetry data
- Opting in or out
- Additional telemetry for builds
The Synergy DBL Integration Improvement Program, which is the name of SDI’s telemetry functionality, serves two purposes: it collects information that can help debug issues with SDI and Synergy projects, and it tracks issues and project type usage to help us prioritize fixes and new features. SDI telemetry is active when SDI is used with Visual Studio and you have chosen to enable it (i.e., to “opt in” the program). SDI telemetry does not collect information if you have chosen to disable it (i.e., to “opt out” of the program), and it does not collect information for an SDI installation with only MSBuild Components, not Visual Studio Components (see the Synergy DBL Integration Requirements page).
Types of information collected by SDI telemetry
If you opt in the Synergy DBL Integration Improvement Program, SDI telemetry collects anonymous data on SDI performance and usage for your machine and transmits this data to Microsoft Azure Application Insights for analysis. SDI telemetry includes the following:
- Exception and event tracking
- Information on SDI and Visual Studio versions used
- Metrics tracking, such as the time it takes for IntelliSense to be operational, the time it takes to perform a full build operation, and the length of time the SDI extension is loaded during a Visual Studio session
- SDI project information such as project type and the following (if you enable additional telemetry for builds): project inputs and outputs, whether the project is up to date, and information on any out-of-date project items (see Additional telemetry for builds below)
Steps we take to remove personal information from collected data
Our goal is to prevent SDI telemetry from storing personal information. SDI telemetry does not store IP addresses or specific IP location information. We sanitize data that Azure Application Insights collects by default, including machine name and IP address, and we take steps to prevent personal information from appearing in paths in collected data:
- Usernames after the Windows Users directory are changed to the <user> token. For example: “C:\Users\fred” becomes “C:\Users\<user>”.
- File paths in the following Windows directories are replaced with \...\, and only the file name is retained (e.g., repos\...\SomeFile.synproj): Repos, Documents, Downloads, and Desktop.
- Sensitive information in local app data is removed and replaced with \...\ (e.g., AppData\Local\Temp\...\test.dbc).
To enable us to follow up on customer issues, SDI telemetry does generate client (machine) and session IDs and associates them with telemetry data. But these IDs are randomly generated, and we cannot trace them to a specific user unless the user gives us their client or session ID to enable us to view their telemetry data.
How we use telemetry data
We primarily use telemetry data to discover which SDI exceptions occur the most so that we can prioritize addressing these problems. We also use this data to debug customer issues with Synergy projects, and we use it to discover how many users use a given type of project, version of SDI, version of Visual Studio, etc., which helps us prioritize our development efforts.
Opting in or out
The first time you open Visual Studio after installing or updating SDI, a dialog opens with options that enable you to either participate in or opt out of this program. Additionally, you can choose to participate in or opt out at any time a Synergy project is open in Visual Studio by selecting the following from the Visual Studio menu: Tools > Synergy DBL Integration Improvement Program.
Additional telemetry for builds
If you opt in the Synergy DBL Integration Improvement Program, you can set an option that determines whether SDI telemetry will collect additional data to help us better understand Synergy project builds. This data includes project inputs, project outputs, build time, whether a project is up to date, and information on any project items that are out of date. To allow or prevent collection of this additional build-specific data, select Tools > Options > Text Editor > Synergy DBL > Advanced. Then select or clear the “Allow logging information about project up-to-date checks” check box.
To delete build-specific information in memory for the current Visual Studio session, select Tools > Flush Project Up-To-Date Telemetry Data. Note that this menu entry is available only when you have opted in the Synergy DBL Integration Improvement program, the “Allow logging information about project up-to-date checks” option is selected, and there is build-specific SDI telemetry data in memory for the current Visual Studio session.