in src/Microsoft.VisualStudio.SlnGen/Program.cs [348:383]
private static void LogTelemetry(ProgramArguments arguments, TimeSpan evaluationTime, int evaluationCount, int customProjectTypeGuidCount, int solutionItemCount, Guid solutionGuid)
{
try
{
TelemetryClient.PostEvent(
"execute",
new Dictionary<string, object>
{
["AssemblyInformationalVersion"] = ThisAssembly.AssemblyInformationalVersion,
["DevEnvFullPathSpecified"] = (!arguments.DevEnvFullPath?.LastOrDefault().IsNullOrWhiteSpace()).ToString(),
["EntryProjectCount"] = arguments.Projects?.Length.ToString(),
["Folders"] = arguments.EnableFolders().ToString(),
["CollapseFolders"] = arguments.EnableCollapseFolders().ToString(),
["IsCoreXT"] = CurrentDevelopmentEnvironment.IsCorext.ToString(),
["IsNetCore"] = IsNetCore.ToString(),
["LaunchVisualStudio"] = arguments.ShouldLaunchVisualStudio().ToString(),
["SolutionFileFullPathSpecified"] = (!arguments.SolutionFileFullPath?.LastOrDefault().IsNullOrWhiteSpace()).ToString(),
#if NETFRAMEWORK
["Runtime"] = $".NET Framework {Environment.Version}",
#elif NETCOREAPP
["Runtime"] = $".NET Core {Environment.Version}",
#endif
["UseBinaryLogger"] = arguments.BinaryLogger.HasValue.ToString(),
["UseFileLogger"] = arguments.FileLoggerParameters.HasValue.ToString(),
["CustomProjectTypeGuidCount"] = customProjectTypeGuidCount,
["ProjectCount"] = evaluationCount,
["ProjectEvaluationMilliseconds"] = evaluationTime.TotalMilliseconds,
["SolutionItemCount"] = solutionItemCount,
["VS.Platform.Solution.Project.SccProvider.SolutionId"] = solutionGuid == Guid.Empty ? string.Empty : solutionGuid.ToString("B"),
});
}
catch (Exception)
{
// Ignored
}
}