diff --git a/src/gdpr.ts b/src/gdpr.ts index d8a66ecb710..af320ef9444 100644 --- a/src/gdpr.ts +++ b/src/gdpr.ts @@ -685,38 +685,7 @@ ] } */ -// (53). Telemetry.KernelStartFailureDueToMissingEnv (DATASCIENCE.KERNEL_START_FAILURE_MISSING_ENV) -// Telemetry sent when user Kernel startup fails due to a missing python env. -/* __GDPR__ - "DATASCIENCE.KERNEL_START_FAILURE_MISSING_ENV" : { - "resourceType": {"classification":"PublicNonPersonalData","purpose":"FeatureInsight","comment":"Used to determine whether this event is related to a Notebooks or Interactive window. Common to most of the events.","owner":"donjayamanne"}, - "actionSource": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "disableUI": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "userExecutedCell": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "resourceHash": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "pythonEnvironmentVersion": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "pythonEnvironmentType": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "pythonEnvironmentPath": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "pythonEnvironmentPackages": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "kernelSessionId": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "kernelLanguage": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "kernelSpecHash": {"classification":"EndUserPseudonymizedInformation","purpose":"FeatureInsight","comment":"","owner":"donjayamanne"}, - "kernelId": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "kernelConnectionType": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "isUsingActiveInterpreter": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "capturedEnvVars": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "newKernelPicker": {"classification":"PublicNonPersonalData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "envMissingReason": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "isEmptyCondaEnv": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "pythonEnvType": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "fileExists": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"","owner":"donjayamanne"}, - "${include}": [ - "${F1}" - - ] - } - */ -// (54). Telemetry.OpenNotebookAll (DATASCIENCE.NATIVE.OPEN_NOTEBOOK_ALL) +// (53). Telemetry.OpenNotebookAll (DATASCIENCE.NATIVE.OPEN_NOTEBOOK_ALL) // Sent when we have opened any Jupyter notebook in a VS Code session. // Not tagging as a user action as this could be something like auto opening a file // from a previous session and not a direct user action. @@ -730,7 +699,7 @@ ] } */ -// (55). Telemetry.NoActiveKernelSession (DATASCIENCE.NO_ACTIVE_KERNEL_SESSION) +// (54). Telemetry.NoActiveKernelSession (DATASCIENCE.NO_ACTIVE_KERNEL_SESSION) // Send when we want to install data viewer dependendies, but don't have an active kernel session. // Used by the dataViewerDependencyService. /* __GDPR__ @@ -741,7 +710,7 @@ ] } */ -// (56). Telemetry.NotebookFirstKernelAutoSelectionBreakDown (DATASCIENCE.NOTEBOOK_FIRST_KERNEL_AUTO_SELECTION_BREAKDOWN) +// (55). Telemetry.NotebookFirstKernelAutoSelectionBreakDown (DATASCIENCE.NOTEBOOK_FIRST_KERNEL_AUTO_SELECTION_BREAKDOWN) // This event is sent to measure the times involved in automatically selecting the first kernel of a notebook. /* __GDPR__ "DATASCIENCE.NOTEBOOK_FIRST_KERNEL_AUTO_SELECTION_BREAKDOWN" : { @@ -774,7 +743,7 @@ ] } */ -// (57). Telemetry.NotebookFirstStartBreakDown (DATASCIENCE.NOTEBOOK_FIRST_START_BREAKDOWN) +// (56). Telemetry.NotebookFirstStartBreakDown (DATASCIENCE.NOTEBOOK_FIRST_START_BREAKDOWN) // This event is sent to measure the times involved in various parts of extension when running a cell. // The reference time is `openedAfter` (time when the notebook was opened). // All other times are relative to this time, except in the case where a notebook was already opened before the extension was activated. @@ -833,7 +802,7 @@ ] } */ -// (58). Telemetry.NotebookInterrupt (DATASCIENCE.NOTEBOOK_INTERRUPT) +// (57). Telemetry.NotebookInterrupt (DATASCIENCE.NOTEBOOK_INTERRUPT) // Telemetry sent when user interrupts the kernel. // Check the `resourceType` to determine whether its a Jupyter Notebook or IW. /* __GDPR__ @@ -862,7 +831,7 @@ ] } */ -// (59). Telemetry.NotebookRestart (DATASCIENCE.NOTEBOOK_RESTART) +// (58). Telemetry.NotebookRestart (DATASCIENCE.NOTEBOOK_RESTART) // Telemetry sent when user Restarts the Kernel. // Check the `resourceType` to determine whether its a Jupyter Notebook or IW. /* __GDPR__ @@ -890,7 +859,7 @@ ] } */ -// (60). Telemetry.NotebookStart (DATASCIENCE.NOTEBOOK_START) +// (59). Telemetry.NotebookStart (DATASCIENCE.NOTEBOOK_START) // Send when a kernel starts. /* __GDPR__ "DATASCIENCE.NOTEBOOK_START" : { @@ -917,7 +886,7 @@ ] } */ -// (61). Telemetry.OpenPlotViewer (DATASCIENCE.OPEN_PLOT_VIEWER) +// (60). Telemetry.OpenPlotViewer (DATASCIENCE.OPEN_PLOT_VIEWER) // A new instance of the plot viewer was opened. /* __GDPR__ "DATASCIENCE.OPEN_PLOT_VIEWER" : { @@ -927,7 +896,7 @@ ] } */ -// (62). Telemetry.PythonVariableFetchingCodeFailure (DATASCIENCE.PYTHON_VARIABLE_FETCHING_CODE_FAILURE) +// (61). Telemetry.PythonVariableFetchingCodeFailure (DATASCIENCE.PYTHON_VARIABLE_FETCHING_CODE_FAILURE) // The Python code that we ran to fetch variables had a failure. /* __GDPR__ "DATASCIENCE.PYTHON_VARIABLE_FETCHING_CODE_FAILURE" : { @@ -937,7 +906,7 @@ ] } */ -// (63). Telemetry.RecommendExtension (DATASCIENCE.RECOMMENT_EXTENSION) +// (62). Telemetry.RecommendExtension (DATASCIENCE.RECOMMENT_EXTENSION) // Telemetry sent when we recommend installing an extension. /* __GDPR__ "DATASCIENCE.RECOMMENT_EXTENSION" : { @@ -949,7 +918,7 @@ ] } */ -// (64). Telemetry.RefreshDataViewer (DATASCIENCE.REFRESH_DATA_VIEWER) +// (63). Telemetry.RefreshDataViewer (DATASCIENCE.REFRESH_DATA_VIEWER) // Sent when the jupyter.refreshDataViewer command is invoked /* __GDPR__ "DATASCIENCE.REFRESH_DATA_VIEWER" : { @@ -959,7 +928,7 @@ ] } */ -// (65). Telemetry.ResumeCellExecution (DATASCIENCE.RESUME_EXECUTE_CELL) +// (64). Telemetry.ResumeCellExecution (DATASCIENCE.RESUME_EXECUTE_CELL) // Sent when we resume execution of a cell (e.g. when reloading VS Code while a cell was executing). /* __GDPR__ "DATASCIENCE.RESUME_EXECUTE_CELL" : { @@ -986,7 +955,7 @@ ] } */ -// (66). Telemetry.RunAllCells (DATASCIENCE.RUN_ALL_CELLS) +// (65). Telemetry.RunAllCells (DATASCIENCE.RUN_ALL_CELLS) // Command to Run all cells from the active python file in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_ALL_CELLS" : { @@ -996,7 +965,7 @@ ] } */ -// (67). Telemetry.RunAllCellsAbove (DATASCIENCE.RUN_ALL_CELLS_ABOVE) +// (66). Telemetry.RunAllCellsAbove (DATASCIENCE.RUN_ALL_CELLS_ABOVE) // Command to Run all the above cells in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_ALL_CELLS_ABOVE" : { @@ -1006,7 +975,7 @@ ] } */ -// (68). Telemetry.RunByLineVariableHover (DATASCIENCE.RUN_BY_LINE_VARIABLE_HOVER) +// (67). Telemetry.RunByLineVariableHover (DATASCIENCE.RUN_BY_LINE_VARIABLE_HOVER) // Fired when a user hovers a variable while debugging the IW. /* __GDPR__ "DATASCIENCE.RUN_BY_LINE_VARIABLE_HOVER" : { @@ -1016,7 +985,7 @@ ] } */ -// (69). Telemetry.RunCellAndAllBelow (DATASCIENCE.RUN_CELL_AND_ALL_BELOW) +// (68). Telemetry.RunCellAndAllBelow (DATASCIENCE.RUN_CELL_AND_ALL_BELOW) // Command to Run current cell and all below in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_CELL_AND_ALL_BELOW" : { @@ -1026,7 +995,7 @@ ] } */ -// (70). Telemetry.ChangeCellToCode (DATASCIENCE.RUN_CHANGE_CELL_TO_CODE) +// (69). Telemetry.ChangeCellToCode (DATASCIENCE.RUN_CHANGE_CELL_TO_CODE) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_CHANGE_CELL_TO_CODE" : { @@ -1036,7 +1005,7 @@ ] } */ -// (71). Telemetry.ChangeCellToMarkdown (DATASCIENCE.RUN_CHANGE_CELL_TO_MARKDOWN) +// (70). Telemetry.ChangeCellToMarkdown (DATASCIENCE.RUN_CHANGE_CELL_TO_MARKDOWN) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_CHANGE_CELL_TO_MARKDOWN" : { @@ -1046,7 +1015,7 @@ ] } */ -// (72). Telemetry.RunCurrentCell (DATASCIENCE.RUN_CURRENT_CELL) +// (71). Telemetry.RunCurrentCell (DATASCIENCE.RUN_CURRENT_CELL) // Command to Run the current Cell in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_CURRENT_CELL" : { @@ -1056,7 +1025,7 @@ ] } */ -// (73). Telemetry.RunCurrentCellAndAddBelow (DATASCIENCE.RUN_CURRENT_CELL_AND_ADD_BELOW) +// (72). Telemetry.RunCurrentCellAndAddBelow (DATASCIENCE.RUN_CURRENT_CELL_AND_ADD_BELOW) // Run the cell and everything below it in the Interactive Window. /* __GDPR__ "DATASCIENCE.RUN_CURRENT_CELL_AND_ADD_BELOW" : { @@ -1066,7 +1035,7 @@ ] } */ -// (74). Telemetry.RunCurrentCellAndAdvance (DATASCIENCE.RUN_CURRENT_CELL_AND_ADVANCE) +// (73). Telemetry.RunCurrentCellAndAdvance (DATASCIENCE.RUN_CURRENT_CELL_AND_ADVANCE) // Command to Run current cell in the Interactive Window and advance cursor to the next cell /* __GDPR__ "DATASCIENCE.RUN_CURRENT_CELL_AND_ADVANCE" : { @@ -1076,7 +1045,7 @@ ] } */ -// (75). Telemetry.DeleteCells (DATASCIENCE.RUN_DELETE_CELLS) +// (74). Telemetry.DeleteCells (DATASCIENCE.RUN_DELETE_CELLS) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_DELETE_CELLS" : { @@ -1086,7 +1055,7 @@ ] } */ -// (76). Telemetry.ExtendSelectionByCellAbove (DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_ABOVE) +// (75). Telemetry.ExtendSelectionByCellAbove (DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_ABOVE) // Cell Selection Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_ABOVE" : { @@ -1096,7 +1065,7 @@ ] } */ -// (77). Telemetry.ExtendSelectionByCellBelow (DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_BELOW) +// (76). Telemetry.ExtendSelectionByCellBelow (DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_BELOW) // Cell Selection Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_BELOW" : { @@ -1106,7 +1075,7 @@ ] } */ -// (78). Telemetry.RunFileInteractive (DATASCIENCE.RUN_FILE_INTERACTIVE) +// (77). Telemetry.RunFileInteractive (DATASCIENCE.RUN_FILE_INTERACTIVE) // Command to Run the active file in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_FILE_INTERACTIVE" : { @@ -1116,7 +1085,7 @@ ] } */ -// (79). Telemetry.RunFromLine (DATASCIENCE.RUN_FROM_LINE) +// (78). Telemetry.RunFromLine (DATASCIENCE.RUN_FROM_LINE) // Command to Run the active file contents from the cursor location in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_FROM_LINE" : { @@ -1126,7 +1095,7 @@ ] } */ -// (80). Telemetry.InsertCellAbove (DATASCIENCE.RUN_INSERT_CELL_ABOVE) +// (79). Telemetry.InsertCellAbove (DATASCIENCE.RUN_INSERT_CELL_ABOVE) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_INSERT_CELL_ABOVE" : { @@ -1136,7 +1105,7 @@ ] } */ -// (81). Telemetry.InsertCellBelow (DATASCIENCE.RUN_INSERT_CELL_BELOW) +// (80). Telemetry.InsertCellBelow (DATASCIENCE.RUN_INSERT_CELL_BELOW) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_INSERT_CELL_BELOW" : { @@ -1146,7 +1115,7 @@ ] } */ -// (82). Telemetry.InsertCellBelowPosition (DATASCIENCE.RUN_INSERT_CELL_BELOW_POSITION) +// (81). Telemetry.InsertCellBelowPosition (DATASCIENCE.RUN_INSERT_CELL_BELOW_POSITION) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_INSERT_CELL_BELOW_POSITION" : { @@ -1156,7 +1125,7 @@ ] } */ -// (83). Telemetry.MoveCellsDown (DATASCIENCE.RUN_MOVE_CELLS_DOWN) +// (82). Telemetry.MoveCellsDown (DATASCIENCE.RUN_MOVE_CELLS_DOWN) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_MOVE_CELLS_DOWN" : { @@ -1166,7 +1135,7 @@ ] } */ -// (84). Telemetry.MoveCellsUp (DATASCIENCE.RUN_MOVE_CELLS_UP) +// (83). Telemetry.MoveCellsUp (DATASCIENCE.RUN_MOVE_CELLS_UP) // Cell Edit Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_MOVE_CELLS_UP" : { @@ -1176,7 +1145,7 @@ ] } */ -// (85). Telemetry.SelectCell (DATASCIENCE.RUN_SELECT_CELL) +// (84). Telemetry.SelectCell (DATASCIENCE.RUN_SELECT_CELL) // Cell Selection Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_SELECT_CELL" : { @@ -1186,7 +1155,7 @@ ] } */ -// (86). Telemetry.SelectCellContents (DATASCIENCE.RUN_SELECT_CELL_CONTENTS) +// (85). Telemetry.SelectCellContents (DATASCIENCE.RUN_SELECT_CELL_CONTENTS) // Cell Selection Command in Interactive Window /* __GDPR__ "DATASCIENCE.RUN_SELECT_CELL_CONTENTS" : { @@ -1196,7 +1165,7 @@ ] } */ -// (87). Telemetry.RunSelectionOrLine (DATASCIENCE.RUN_SELECTION_OR_LINE) +// (86). Telemetry.RunSelectionOrLine (DATASCIENCE.RUN_SELECTION_OR_LINE) // Command to Run a Selection or Line in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_SELECTION_OR_LINE" : { @@ -1206,7 +1175,7 @@ ] } */ -// (88). Telemetry.RunToLine (DATASCIENCE.RUN_TO_LINE) +// (87). Telemetry.RunToLine (DATASCIENCE.RUN_TO_LINE) // Command to Run the active file contents up to the cursor location in the Interactive Window /* __GDPR__ "DATASCIENCE.RUN_TO_LINE" : { @@ -1216,7 +1185,7 @@ ] } */ -// (89). Telemetry.SelfCertsMessageClose (DATASCIENCE.SELFCERTSMESSAGECLOSE) +// (88). Telemetry.SelfCertsMessageClose (DATASCIENCE.SELFCERTSMESSAGECLOSE) // Sent when users chose not to allow connecting to Jupyter over HTTPS when certificate isn't trusted by a trusted CA. /* __GDPR__ "DATASCIENCE.SELFCERTSMESSAGECLOSE" : { @@ -1226,7 +1195,7 @@ ] } */ -// (90). Telemetry.SelfCertsMessageEnabled (DATASCIENCE.SELFCERTSMESSAGEENABLED) +// (89). Telemetry.SelfCertsMessageEnabled (DATASCIENCE.SELFCERTSMESSAGEENABLED) // Sent when users chose to use self-signed certificates when connecting to Jupyter over https. // Basically this means users has chosen to connect to Jupyter over HTTPS when certificate isn't trusted by a trusted CA. /* __GDPR__ @@ -1237,7 +1206,7 @@ ] } */ -// (91). Telemetry.ShowDataViewer (DATASCIENCE.SHOW_DATA_EXPLORER) +// (90). Telemetry.ShowDataViewer (DATASCIENCE.SHOW_DATA_EXPLORER) // Request was made to show the data viewer with specific data frame info. /* __GDPR__ "DATASCIENCE.SHOW_DATA_EXPLORER" : { @@ -1249,7 +1218,7 @@ ] } */ -// (92). Telemetry.ShowDataViewerRowsLoaded (DATASCIENCE.SHOW_DATA_EXPLORER_ROWS_LOADED) +// (91). Telemetry.ShowDataViewerRowsLoaded (DATASCIENCE.SHOW_DATA_EXPLORER_ROWS_LOADED) // Data viewer loads rows in chunks, this event is sent when the rows have all been loaded /* __GDPR__ "DATASCIENCE.SHOW_DATA_EXPLORER_ROWS_LOADED" : { @@ -1260,7 +1229,7 @@ ] } */ -// (93). Telemetry.StartShowDataViewer (DATASCIENCE.START_SHOW_DATA_EXPLORER) +// (92). Telemetry.StartShowDataViewer (DATASCIENCE.START_SHOW_DATA_EXPLORER) // User requested to open the data frame viewer. /* __GDPR__ "DATASCIENCE.START_SHOW_DATA_EXPLORER" : { @@ -1270,7 +1239,7 @@ ] } */ -// (94). Telemetry.UserDidNotInstallJupyter (DATASCIENCE.USER_DID_NOT_INSTALL_JUPYTER) +// (93). Telemetry.UserDidNotInstallJupyter (DATASCIENCE.USER_DID_NOT_INSTALL_JUPYTER) // Sent when user click `cancel` button when prompted to install Jupyter. /* __GDPR__ "DATASCIENCE.USER_DID_NOT_INSTALL_JUPYTER" : { @@ -1280,7 +1249,7 @@ ] } */ -// (95). Telemetry.UserDidNotInstallPandas (DATASCIENCE.USER_DID_NOT_INSTALL_PANDAS) +// (94). Telemetry.UserDidNotInstallPandas (DATASCIENCE.USER_DID_NOT_INSTALL_PANDAS) // Prompted to install Pandas and chose not to install // Note: This could be just ignoring the UI so not a user action. /* __GDPR__ @@ -1291,7 +1260,7 @@ ] } */ -// (96). Telemetry.UserInstalledJupyter (DATASCIENCE.USER_INSTALLED_JUPYTER) +// (95). Telemetry.UserInstalledJupyter (DATASCIENCE.USER_INSTALLED_JUPYTER) // Sent when user installs Jupyter. /* __GDPR__ "DATASCIENCE.USER_INSTALLED_JUPYTER" : { @@ -1301,7 +1270,7 @@ ] } */ -// (97). Telemetry.UserInstalledPandas (DATASCIENCE.USER_INSTALLED_PANDAS) +// (96). Telemetry.UserInstalledPandas (DATASCIENCE.USER_INSTALLED_PANDAS) // Installed the python Pandas package. /* __GDPR__ "DATASCIENCE.USER_INSTALLED_PANDAS" : { @@ -1311,7 +1280,7 @@ ] } */ -// (98). Telemetry.DataViewerUsingInterpreter (DATAVIEWER.USING_INTERPRETER) +// (97). Telemetry.DataViewerUsingInterpreter (DATAVIEWER.USING_INTERPRETER) // When the Data Viewer installer is using a Python interpreter to do the install. /* __GDPR__ "DATAVIEWER.USING_INTERPRETER" : { @@ -1321,7 +1290,7 @@ ] } */ -// (99). Telemetry.DataViewerUsingKernel (DATAVIEWER.USING_KERNEL) +// (98). Telemetry.DataViewerUsingKernel (DATAVIEWER.USING_KERNEL) // When the Data Viewer installer is using the Kernel to do the install. /* __GDPR__ "DATAVIEWER.USING_KERNEL" : { @@ -1331,7 +1300,7 @@ ] } */ -// (100). Telemetry.DataViewerWebviewLoaded (DATAVIEWER.WEBVIEW_LOADED) +// (99). Telemetry.DataViewerWebviewLoaded (DATAVIEWER.WEBVIEW_LOADED) // The Data Viewer webview was loaded. /* __GDPR__ "DATAVIEWER.WEBVIEW_LOADED" : { @@ -1341,7 +1310,7 @@ ] } */ -// (101). Telemetry.ActiveInterpreterListingPerf (DS_INTERNAL.ACTIVE_INTERPRETER_LISTING_PERF) +// (100). Telemetry.ActiveInterpreterListingPerf (DS_INTERNAL.ACTIVE_INTERPRETER_LISTING_PERF) // Total time taken by Python extension to return the active Python environment. /* __GDPR__ "DS_INTERNAL.ACTIVE_INTERPRETER_LISTING_PERF" : { @@ -1352,7 +1321,7 @@ ] } */ -// (102). Telemetry.CellOutputMimeType (DS_INTERNAL.CELL_OUTPUT_MIME_TYPE) +// (101). Telemetry.CellOutputMimeType (DS_INTERNAL.CELL_OUTPUT_MIME_TYPE) // Mime type of a cell output. // Used to detect the popularity of a mime type, that would help determine which mime types are most common. // E.g. if we see widget mimetype, then we know how many use ipywidgets and the like and helps us prioritize widget issues, @@ -1368,7 +1337,7 @@ ] } */ -// (103). Telemetry.CodeLensAverageAcquisitionTime (DS_INTERNAL.CODE_LENS_ACQ_TIME) +// (102). Telemetry.CodeLensAverageAcquisitionTime (DS_INTERNAL.CODE_LENS_ACQ_TIME) // How long on average we spent parsing code lens. Sent on shutdown. // We should be able to deprecate in favor of DocumentWithCodeCells, but we should compare the numbers first. /* __GDPR__ @@ -1379,7 +1348,7 @@ ] } */ -// (104). Telemetry.CommandExecuted (DS_INTERNAL.COMMAND_EXECUTED) +// (103). Telemetry.CommandExecuted (DS_INTERNAL.COMMAND_EXECUTED) // A command that the extension contributes is executed. /* __GDPR__ "DS_INTERNAL.COMMAND_EXECUTED" : { @@ -1390,7 +1359,7 @@ ] } */ -// (105). Telemetry.CreateInteractiveWindow (DS_INTERNAL.CREATED_INTERACTIVE_WINDOW) +// (104). Telemetry.CreateInteractiveWindow (DS_INTERNAL.CREATED_INTERACTIVE_WINDOW) /* __GDPR__ "DS_INTERNAL.CREATED_INTERACTIVE_WINDOW" : { "hasKernel": {"classification":"SystemMetaData","purpose":"FeatureInsight","comment":"If the kernel was known at the time of creation","owner":"amunger"}, @@ -1404,7 +1373,7 @@ ] } */ -// (106). Telemetry.DocumentWithCodeCells (DS_INTERNAL.DOCUMENT_WITH_CODE_CELLS) +// (105). Telemetry.DocumentWithCodeCells (DS_INTERNAL.DOCUMENT_WITH_CODE_CELLS) // Info about code lenses, count and average time to parse the document. /* __GDPR__ "DS_INTERNAL.DOCUMENT_WITH_CODE_CELLS" : { @@ -1416,7 +1385,7 @@ ] } */ -// (107). Telemetry.ExperimentLoad (DS_INTERNAL.EXPERIMENT_LOAD) +// (106). Telemetry.ExperimentLoad (DS_INTERNAL.EXPERIMENT_LOAD) // Telemetry event sent with perf measures related to loading experiments. /* __GDPR__ "DS_INTERNAL.EXPERIMENT_LOAD" : { @@ -1426,7 +1395,7 @@ ] } */ -// (108). Telemetry.GetActivatedEnvironmentVariables (DS_INTERNAL.GET_ACTIVATED_ENV_VARIABLES) +// (107). Telemetry.GetActivatedEnvironmentVariables (DS_INTERNAL.GET_ACTIVATED_ENV_VARIABLES) // Used to capture time taken to get environment variables for a python environment. // Also lets us know whether it worked or not. /* __GDPR__ @@ -1440,7 +1409,7 @@ ] } */ -// (109). Telemetry.GetPasswordFailure (DS_INTERNAL.GET_PASSWORD_FAILURE) +// (108). Telemetry.GetPasswordFailure (DS_INTERNAL.GET_PASSWORD_FAILURE) // Sent to indicate we've failed to connect to a Remote Jupyter Server successfully after requesting a password. /* __GDPR__ "DS_INTERNAL.GET_PASSWORD_FAILURE" : { @@ -1450,7 +1419,7 @@ ] } */ -// (110). Telemetry.GetPasswordSuccess (DS_INTERNAL.GET_PASSWORD_SUCCESS) +// (109). Telemetry.GetPasswordSuccess (DS_INTERNAL.GET_PASSWORD_SUCCESS) // Sent to indicate we've connected to a Remote Jupyter Server successfully after requesting a password. /* __GDPR__ "DS_INTERNAL.GET_PASSWORD_SUCCESS" : { @@ -1460,7 +1429,7 @@ ] } */ -// (111). Telemetry.InteractiveFileTooltipsPerf (DS_INTERNAL.INTERACTIVE_FILE_TOOLTIPS_PERF) +// (110). Telemetry.InteractiveFileTooltipsPerf (DS_INTERNAL.INTERACTIVE_FILE_TOOLTIPS_PERF) // How long it took to return our hover tooltips for a .py file. /* __GDPR__ "DS_INTERNAL.INTERACTIVE_FILE_TOOLTIPS_PERF" : { @@ -1471,7 +1440,7 @@ ] } */ -// (112). Telemetry.DiscoverIPyWidgetNamesPerf (DS_INTERNAL.IPYWIDGET_DISCOVER_WIDGETS_NB_EXTENSIONS) +// (111). Telemetry.DiscoverIPyWidgetNamesPerf (DS_INTERNAL.IPYWIDGET_DISCOVER_WIDGETS_NB_EXTENSIONS) // Total time taken to discover all IPyWidgets. // This is how long it takes to discover all widgets on disc (from python environment). /* __GDPR__ @@ -1483,7 +1452,7 @@ ] } */ -// (113). Telemetry.HashedIPyWidgetScriptDiscoveryError (DS_INTERNAL.IPYWIDGET_DISCOVERY_ERRORED) +// (112). Telemetry.HashedIPyWidgetScriptDiscoveryError (DS_INTERNAL.IPYWIDGET_DISCOVERY_ERRORED) // Something went wrong in looking for a widget. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_DISCOVERY_ERRORED" : { @@ -1493,7 +1462,7 @@ ] } */ -// (114). Telemetry.IPyWidgetExtensionJsInfo (DS_INTERNAL.IPYWIDGET_EXTENSIONJS_INFO) +// (113). Telemetry.IPyWidgetExtensionJsInfo (DS_INTERNAL.IPYWIDGET_EXTENSIONJS_INFO) // Telemetry event sent once we've successfully or unsuccessfully parsed the extension.js file in the widget folder. // E.g. if we have a widget named ipyvolume, we attempt to parse the nbextensions/ipyvolume/extension.js file to get some info out of it. /* __GDPR__ @@ -1508,7 +1477,7 @@ ] } */ -// (115). Telemetry.IPyWidgetLoadFailure (DS_INTERNAL.IPYWIDGET_LOAD_FAILURE) +// (114). Telemetry.IPyWidgetLoadFailure (DS_INTERNAL.IPYWIDGET_LOAD_FAILURE) // Telemetry event sent when an ipywidget module fails to load. Module name is hashed. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_LOAD_FAILURE" : { @@ -1522,7 +1491,7 @@ ] } */ -// (116). Telemetry.IPyWidgetLoadSuccess (DS_INTERNAL.IPYWIDGET_LOAD_SUCCESS) +// (115). Telemetry.IPyWidgetLoadSuccess (DS_INTERNAL.IPYWIDGET_LOAD_SUCCESS) // Telemetry event sent when an ipywidget module loads. Module name is hashed. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_LOAD_SUCCESS" : { @@ -1534,21 +1503,7 @@ ] } */ -// (117). Telemetry.IPyWidgetOverhead (DS_INTERNAL.IPYWIDGET_OVERHEAD) -// Telemetry event sent to indicate the overhead of syncing the kernel with the UI. -/* __GDPR__ - "DS_INTERNAL.IPYWIDGET_OVERHEAD" : { - "totalOverheadInMs": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"Total time in ms","owner":"donjayamanne","isMeasurement":true}, - "numberOfMessagesWaitedOn": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"Number of messages","owner":"donjayamanne","isMeasurement":true}, - "averageWaitTime": {"classification":"SystemMetaData","purpose":"PerformanceAndHealth","comment":"Average wait timne.","owner":"donjayamanne","isMeasurement":true}, - "numberOfRegisteredHooks": {"classification":"SystemMetaData","purpose":"FeatureInsight","comment":"Number of registered hook.","owner":"donjayamanne","isMeasurement":true}, - "${include}": [ - "${F1}" - - ] - } - */ -// (118). Telemetry.IPyWidgetPromptToUseCDN (DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN) +// (116). Telemetry.IPyWidgetPromptToUseCDN (DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN) // Telemetry sent when we prompt user to use a CDN for IPyWidget scripts. // This is always sent when we display a prompt. /* __GDPR__ @@ -1559,7 +1514,7 @@ ] } */ -// (119). Telemetry.IPyWidgetPromptToUseCDNSelection (DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN_SELECTION) +// (117). Telemetry.IPyWidgetPromptToUseCDNSelection (DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN_SELECTION) // Telemetry sent when user does something with the prompt displayed to user about using CDN for IPyWidget scripts. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN_SELECTION" : { @@ -1570,7 +1525,7 @@ ] } */ -// (120). Telemetry.IPyWidgetRenderFailure (DS_INTERNAL.IPYWIDGET_RENDER_FAILURE) +// (118). Telemetry.IPyWidgetRenderFailure (DS_INTERNAL.IPYWIDGET_RENDER_FAILURE) // Telemetry event sent when the widget render function fails (note, this may not be sufficient to capture all failures). /* __GDPR__ "DS_INTERNAL.IPYWIDGET_RENDER_FAILURE" : { @@ -1580,7 +1535,7 @@ ] } */ -// (121). Telemetry.IPyWidgetNbExtensionCopyTime (DS_INTERNAL.IPYWIDGET_TIME_TO_COPY_NBEXTENSIONS_DIR) +// (119). Telemetry.IPyWidgetNbExtensionCopyTime (DS_INTERNAL.IPYWIDGET_TIME_TO_COPY_NBEXTENSIONS_DIR) // Total time take to copy the nb extensions folder. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_TIME_TO_COPY_NBEXTENSIONS_DIR" : { @@ -1590,7 +1545,7 @@ ] } */ -// (122). Telemetry.IPyWidgetUnhandledMessage (DS_INTERNAL.IPYWIDGET_UNHANDLED_MESSAGE) +// (120). Telemetry.IPyWidgetUnhandledMessage (DS_INTERNAL.IPYWIDGET_UNHANDLED_MESSAGE) // Telemetry event sent when the widget tries to send a kernel message but nothing was listening /* __GDPR__ "DS_INTERNAL.IPYWIDGET_UNHANDLED_MESSAGE" : { @@ -1601,7 +1556,7 @@ ] } */ -// (123). Telemetry.HashedIPyWidgetNameUsed (DS_INTERNAL.IPYWIDGET_USED_BY_USER) +// (121). Telemetry.HashedIPyWidgetNameUsed (DS_INTERNAL.IPYWIDGET_USED_BY_USER) // Telemetry event sent with name of a Widget that is used. // Helps determine which widgets are used the most, and which are not. // Useful in prioritizing which widgets to work on if things fail to work. @@ -1619,7 +1574,7 @@ ] } */ -// (124). Telemetry.IPyWidgetWidgetVersionNotSupportedLoadFailure (DS_INTERNAL.IPYWIDGET_WIDGET_VERSION_NOT_SUPPORTED_LOAD_FAILURE) +// (122). Telemetry.IPyWidgetWidgetVersionNotSupportedLoadFailure (DS_INTERNAL.IPYWIDGET_WIDGET_VERSION_NOT_SUPPORTED_LOAD_FAILURE) // Telemetry event sent when an ipywidget version that is not supported is used & we have trapped this and warned the user abou it. /* __GDPR__ "DS_INTERNAL.IPYWIDGET_WIDGET_VERSION_NOT_SUPPORTED_LOAD_FAILURE" : { @@ -1631,7 +1586,7 @@ ] } */ -// (125). Telemetry.CheckPasswordJupyterHub (DS_INTERNAL.JUPYTER_HUB_PASSWORD) +// (123). Telemetry.CheckPasswordJupyterHub (DS_INTERNAL.JUPYTER_HUB_PASSWORD) // Sent when checking for passwords for Jupyter Hub /* __GDPR__ "DS_INTERNAL.JUPYTER_HUB_PASSWORD" : { @@ -1642,7 +1597,7 @@ ] } */ -// (126). Telemetry.KernelSpec (DS_INTERNAL.JUPYTER_KERNEL_SPEC) +// (124). Telemetry.KernelSpec (DS_INTERNAL.JUPYTER_KERNEL_SPEC) // Information about KernelSpecs /* __GDPR__ "DS_INTERNAL.JUPYTER_KERNEL_SPEC" : { @@ -1663,20 +1618,7 @@ ] } */ -// (127). Telemetry.StartedRemoteJupyterSessionWithBackingFile (DS_INTERNAL.JUPYTER_STARTED_SESSION_WITH_BACKING_FILE) -// Whether we managed to start a remote kernel successfully without a backing file. -/* __GDPR__ - "DS_INTERNAL.JUPYTER_STARTED_SESSION_WITH_BACKING_FILE" : { - "failedWithoutBackingFile": {"classification":"SystemMetaData","purpose":"FeatureInsight","comment":"Failed to start the session without the backing file.","owner":"donjayamanne"}, - "failedWithBackingFile": {"classification":"SystemMetaData","purpose":"FeatureInsight","comment":"Failed to start the session without the backing file.","owner":"donjayamanne"}, - "localHost": {"classification":"SystemMetaData","purpose":"FeatureInsight","comment":"Whether this is a local host connection or remote.","owner":"donjayamanne"}, - "${include}": [ - "${F1}" - - ] - } - */ -// (128). Telemetry.ZMQSupport (DS_INTERNAL.JUPYTER_ZMQ_SUPPORT) +// (125). Telemetry.ZMQSupport (DS_INTERNAL.JUPYTER_ZMQ_SUPPORT) // Information used to determine the zmq binary support. // the alpine, libc, armv version is used by the node module /* __GDPR__ @@ -1694,7 +1636,7 @@ ] } */ -// (129). Telemetry.ZMQSupportFailure (DS_INTERNAL.JUPYTER_ZMQ_SUPPORT_FAILURE) +// (126). Telemetry.ZMQSupportFailure (DS_INTERNAL.JUPYTER_ZMQ_SUPPORT_FAILURE) // Information used to determine the zmq binary support. // the alpine, libc, armv version is used by the node module /* __GDPR__ @@ -1715,7 +1657,7 @@ ] } */ -// (130). Telemetry.KernelCount (DS_INTERNAL.KERNEL_COUNT) +// (127). Telemetry.KernelCount (DS_INTERNAL.KERNEL_COUNT) // Telemetry sent with the total number of different types of kernels in the kernel picker. /* __GDPR__ "DS_INTERNAL.KERNEL_COUNT" : { @@ -1730,7 +1672,7 @@ ] } */ -// (131). Telemetry.KernelLauncherPerf (DS_INTERNAL.KERNEL_LAUNCHER_PERF) +// (128). Telemetry.KernelLauncherPerf (DS_INTERNAL.KERNEL_LAUNCHER_PERF) // Total time taken to Launch a raw kernel. /* __GDPR__ "DS_INTERNAL.KERNEL_LAUNCHER_PERF" : { @@ -1741,7 +1683,7 @@ ] } */ -// (132). Telemetry.NativeVariableViewLoaded (DS_INTERNAL.NATIVE_VARIABLE_VIEW_LOADED) +// (129). Telemetry.NativeVariableViewLoaded (DS_INTERNAL.NATIVE_VARIABLE_VIEW_LOADED) // The Variable View webview was loaded. /* __GDPR__ "DS_INTERNAL.NATIVE_VARIABLE_VIEW_LOADED" : { @@ -1751,7 +1693,7 @@ ] } */ -// (133). Telemetry.NativeVariableViewMadeVisible (DS_INTERNAL.NATIVE_VARIABLE_VIEW_MADE_VISIBLE) +// (130). Telemetry.NativeVariableViewMadeVisible (DS_INTERNAL.NATIVE_VARIABLE_VIEW_MADE_VISIBLE) // The Variable View webview was made visible. /* __GDPR__ "DS_INTERNAL.NATIVE_VARIABLE_VIEW_MADE_VISIBLE" : { @@ -1761,7 +1703,7 @@ ] } */ -// (134). Telemetry.NewFileForInteractiveWindow (DS_INTERNAL.NEW_FILE_USED_IN_INTERACTIVE) +// (131). Telemetry.NewFileForInteractiveWindow (DS_INTERNAL.NEW_FILE_USED_IN_INTERACTIVE) // Telemetry event sent when a user runs the interactive window with a new file /* __GDPR__ "DS_INTERNAL.NEW_FILE_USED_IN_INTERACTIVE" : { @@ -1771,7 +1713,7 @@ ] } */ -// (135). Telemetry.PerceivedJupyterStartupNotebook (DS_INTERNAL.PERCEIVED_JUPYTER_STARTUP_NOTEBOOK) +// (132). Telemetry.PerceivedJupyterStartupNotebook (DS_INTERNAL.PERCEIVED_JUPYTER_STARTUP_NOTEBOOK) // Time take for jupyter server to start and be ready to run first user cell. // (Note: The property `notebook` only gets sent correctly in Jupyter version 2022.8.0 or later) /* __GDPR__ @@ -1799,7 +1741,7 @@ ] } */ -// (136). Telemetry.PreferredKernelExactMatch (DS_INTERNAL.PREFERRED_KERNEL_EXACT_MATCH) +// (133). Telemetry.PreferredKernelExactMatch (DS_INTERNAL.PREFERRED_KERNEL_EXACT_MATCH) // Send we we complete our preferred kernel match. Matched reason might be 'no match'. /* __GDPR__ "DS_INTERNAL.PREFERRED_KERNEL_EXACT_MATCH" : { @@ -1810,7 +1752,7 @@ ] } */ -// (137). Telemetry.PythonExtensionInstalledViaKernelPicker (DS_INTERNAL.PYTHON_EXTENSION_INSTALLED_VIA_KERNEL_PICKER) +// (134). Telemetry.PythonExtensionInstalledViaKernelPicker (DS_INTERNAL.PYTHON_EXTENSION_INSTALLED_VIA_KERNEL_PICKER) // Python extension was attempted to be installed via the kernel picker command. /* __GDPR__ "DS_INTERNAL.PYTHON_EXTENSION_INSTALLED_VIA_KERNEL_PICKER" : { @@ -1821,7 +1763,7 @@ ] } */ -// (138). Telemetry.PythonExtensionNotInstalled (DS_INTERNAL.PYTHON_EXTENSION_NOT_INSTALLED) +// (135). Telemetry.PythonExtensionNotInstalled (DS_INTERNAL.PYTHON_EXTENSION_NOT_INSTALLED) // The kernel picker command to install python extension was shown. /* __GDPR__ "DS_INTERNAL.PYTHON_EXTENSION_NOT_INSTALLED" : { @@ -1832,7 +1774,7 @@ ] } */ -// (139). Telemetry.PythonModuleInstall (DS_INTERNAL.PYTHON_MODULE_INSTALL) +// (136). Telemetry.PythonModuleInstall (DS_INTERNAL.PYTHON_MODULE_INSTALL) // Telemetry sent when user is presented with a dialog to install a python package. // Also sent with the user's response to the dialog. /* __GDPR__ @@ -1849,7 +1791,7 @@ ] } */ -// (140). Telemetry.PythonNotInstalled (DS_INTERNAL.PYTHON_NOT_INSTALLED) +// (137). Telemetry.PythonNotInstalled (DS_INTERNAL.PYTHON_NOT_INSTALLED) // The kernel picker command to install python was shown. /* __GDPR__ "DS_INTERNAL.PYTHON_NOT_INSTALLED" : { @@ -1860,7 +1802,7 @@ ] } */ -// (141). Telemetry.RawKernelInfoResponse (DS_INTERNAL.RAWKERNEL_INFO_RESPONSE) +// (138). Telemetry.RawKernelInfoResponse (DS_INTERNAL.RAWKERNEL_INFO_RESPONSE) // After starting a kernel we send a request to get the kernel info. // This tracks the total time taken to get the response back (or wether we timedout). // If we timeout and later we find successful comms for this session, then timeout is too low @@ -1892,7 +1834,7 @@ ] } */ -// (142). Telemetry.RawKernelProcessLaunch (DS_INTERNAL.RAWKERNEL_PROCESS_LAUNCH) +// (139). Telemetry.RawKernelProcessLaunch (DS_INTERNAL.RAWKERNEL_PROCESS_LAUNCH) // Sent to measure time taken to spawn the raw kernel process. /* __GDPR__ "DS_INTERNAL.RAWKERNEL_PROCESS_LAUNCH" : { @@ -1902,7 +1844,7 @@ ] } */ -// (143). Telemetry.RawKernelSessionDisposed (DS_INTERNAL.RAWKERNEL_SESSION_DISPOSED) +// (140). Telemetry.RawKernelSessionDisposed (DS_INTERNAL.RAWKERNEL_SESSION_DISPOSED) // This event is sent when a RawSession's `dispose` method is called. // Used to determine what part of the code that shut down the session, so as to determine when and how the kernel session crashed. /* __GDPR__ @@ -1931,7 +1873,7 @@ ] } */ -// (144). Telemetry.RawKernelSessionKernelProcessExited (DS_INTERNAL.RAWKERNEL_SESSION_KERNEL_PROCESS_EXITED) +// (141). Telemetry.RawKernelSessionKernelProcessExited (DS_INTERNAL.RAWKERNEL_SESSION_KERNEL_PROCESS_EXITED) // This event is sent when the underlying kernelProcess for a // RawJupyterSession exits. /* __GDPR__ @@ -1961,7 +1903,7 @@ ] } */ -// (145). Telemetry.RawKernelSessionStartNoIpykernel (DS_INTERNAL.RAWKERNEL_SESSION_NO_IPYKERNEL) +// (142). Telemetry.RawKernelSessionStartNoIpykernel (DS_INTERNAL.RAWKERNEL_SESSION_NO_IPYKERNEL) // Telemetry event sent when raw kernel startup fails due to missing ipykernel dependency. // This is useful to see what the user does with this error message. /* __GDPR__ @@ -1990,7 +1932,7 @@ ] } */ -// (146). Telemetry.RawKernelSessionShutdown (DS_INTERNAL.RAWKERNEL_SESSION_SHUTDOWN) +// (143). Telemetry.RawKernelSessionShutdown (DS_INTERNAL.RAWKERNEL_SESSION_SHUTDOWN) // This event is sent when a RawJupyterSession's `shutdownSession` method is called. // Used to determine what part of the code that shut down the session, so as to determine when and how the kernel session crashed. /* __GDPR__ @@ -2020,7 +1962,7 @@ ] } */ -// (147). Telemetry.RunTest (DS_INTERNAL.RUNTEST) +// (144). Telemetry.RunTest (DS_INTERNAL.RUNTEST) // A automated test has been run /* __GDPR__ "DS_INTERNAL.RUNTEST" : { @@ -2035,7 +1977,7 @@ ] } */ -// (148). Telemetry.ShiftEnterBannerShown (DS_INTERNAL.SHIFTENTER_BANNER_SHOWN) +// (145). Telemetry.ShiftEnterBannerShown (DS_INTERNAL.SHIFTENTER_BANNER_SHOWN) // Information banner displayed to give the user the option to configure shift+enter for the Interactive Window. /* __GDPR__ "DS_INTERNAL.SHIFTENTER_BANNER_SHOWN" : { @@ -2045,7 +1987,7 @@ ] } */ -// (149). Telemetry.PandasNotInstalled (DS_INTERNAL.SHOW_DATA_NO_PANDAS) +// (146). Telemetry.PandasNotInstalled (DS_INTERNAL.SHOW_DATA_NO_PANDAS) // User tried to open the data viewer and Pandas package was not installed. // Note: Not a failure state, as we prompt for install after this. /* __GDPR__ @@ -2056,7 +1998,7 @@ ] } */ -// (150). Telemetry.PandasInstallCanceled (DS_INTERNAL.SHOW_DATA_PANDAS_INSTALL_CANCELED) +// (147). Telemetry.PandasInstallCanceled (DS_INTERNAL.SHOW_DATA_PANDAS_INSTALL_CANCELED) // When opening the data viewer the user was prompted to install / upgrade // pandas and choose to cancel the operation. /* __GDPR__ @@ -2067,7 +2009,7 @@ ] } */ -// (151). Telemetry.PandasOK (DS_INTERNAL.SHOW_DATA_PANDAS_OK) +// (148). Telemetry.PandasOK (DS_INTERNAL.SHOW_DATA_PANDAS_OK) // When opening the data viewer the version of Pandas installed was ok. /* __GDPR__ "DS_INTERNAL.SHOW_DATA_PANDAS_OK" : { @@ -2077,7 +2019,7 @@ ] } */ -// (152). Telemetry.PandasTooOld (DS_INTERNAL.SHOW_DATA_PANDAS_TOO_OLD) +// (149). Telemetry.PandasTooOld (DS_INTERNAL.SHOW_DATA_PANDAS_TOO_OLD) // When opening the data viewer the version of Pandas installed was too old. /* __GDPR__ "DS_INTERNAL.SHOW_DATA_PANDAS_TOO_OLD" : { @@ -2087,7 +2029,7 @@ ] } */ -// (153). Telemetry.SwitchKernel (DS_INTERNAL.SWITCH_KERNEL) +// (150). Telemetry.SwitchKernel (DS_INTERNAL.SWITCH_KERNEL) // Triggered when the kernel selection changes (note: This can also happen automatically when a notebook is opened). // WARNING: Due to changes in VS Code, this isn't necessarily a user action, hence difficult to tell if the user changed it or it changed automatically. /* __GDPR__ @@ -2115,7 +2057,7 @@ ] } */ -// (154). Telemetry.VariableExplorerFetchTime (DS_INTERNAL.VARIABLE_EXPLORER_FETCH_TIME) +// (151). Telemetry.VariableExplorerFetchTime (DS_INTERNAL.VARIABLE_EXPLORER_FETCH_TIME) // How long did it take for a single variable request to be resolved. /* __GDPR__ "DS_INTERNAL.VARIABLE_EXPLORER_FETCH_TIME" : { @@ -2125,7 +2067,7 @@ ] } */ -// (155). Telemetry.VariableExplorerVariableCount (DS_INTERNAL.VARIABLE_EXPLORER_VARIABLE_COUNT) +// (152). Telemetry.VariableExplorerVariableCount (DS_INTERNAL.VARIABLE_EXPLORER_VARIABLE_COUNT) // Count how many variables were in a variable request. /* __GDPR__ "DS_INTERNAL.VARIABLE_EXPLORER_VARIABLE_COUNT" : { @@ -2136,7 +2078,7 @@ ] } */ -// (156). Telemetry.VSCNotebookCellTranslationFailed (DS_INTERNAL.VSCNOTEBOOK_CELL_TRANSLATION_FAILED) +// (153). Telemetry.VSCNotebookCellTranslationFailed (DS_INTERNAL.VSCNOTEBOOK_CELL_TRANSLATION_FAILED) // We've failed to translate a Jupyter cell output for serialization into a Notebook cell. /* __GDPR__ "DS_INTERNAL.VSCNOTEBOOK_CELL_TRANSLATION_FAILED" : { @@ -2147,7 +2089,7 @@ ] } */ -// (157). EventName.ENVFILE_VARIABLE_SUBSTITUTION (ENVFILE_VARIABLE_SUBSTITUTION) +// (154). EventName.ENVFILE_VARIABLE_SUBSTITUTION (ENVFILE_VARIABLE_SUBSTITUTION) // Telemetry event sent when substituting Environment variables to calculate value of variables. // E.g. user has a a .env file with tokens that need to be replaced with env variables. // such as an env file having the variable `${HOME}`. @@ -2160,7 +2102,7 @@ ] } */ -// (158). EventName.ENVFILE_WORKSPACE (ENVFILE_WORKSPACE) +// (155). EventName.ENVFILE_WORKSPACE (ENVFILE_WORKSPACE) // Telemetry event sent when an environment file is detected in the workspace. /* __GDPR__ "ENVFILE_WORKSPACE" : { @@ -2170,7 +2112,7 @@ ] } */ -// (159). EventName.EXTENSION_LOAD (EXTENSION.LOAD) +// (156). EventName.EXTENSION_LOAD (EXTENSION.LOAD) // Telemetry event sent with perf measures related to activation and loading of extension. /* __GDPR__ "EXTENSION.LOAD" : { @@ -2183,7 +2125,7 @@ ] } */ -// (160). Telemetry.AmbiguousGlobalKernelSpec (GLOBAL_PYTHON_KERNELSPEC) +// (157). Telemetry.AmbiguousGlobalKernelSpec (GLOBAL_PYTHON_KERNELSPEC) // We have a Python Kernel spec without fully qualified path of Python env. // We have no idea how to start these kernels if the user has more than one Python env. // @@ -2207,7 +2149,7 @@ ] } */ -// (161). EventName.HASHED_PACKAGE_NAME (HASHED_PACKAGE_NAME) +// (158). EventName.HASHED_PACKAGE_NAME (HASHED_PACKAGE_NAME) // Telemetry event sent with hash of an imported python package. // Used to detect the popularity of a package, that would help determine which packages // need to be prioritized when resolving issues with intellisense or supporting similar issues related to a (known) specific package. @@ -2222,7 +2164,7 @@ ] } */ -// (162). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR_EX) +// (159). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR_EX) // Telemetry event sent when user opens the data viewer via the variable view and there is an error in doing so. /* __GDPR__ "OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR_EX" : { @@ -2232,7 +2174,7 @@ ] } */ -// (163). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST_EX) +// (160). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST_EX) // Telemetry event sent when user opens the data viewer via the variable view. /* __GDPR__ "OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST_EX" : { @@ -2242,7 +2184,7 @@ ] } */ -// (164). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS_EX) +// (161). EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS (OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS_EX) // Telemetry event sent when user opens the data viewer via the variable view and we successfully open the view. /* __GDPR__ "OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS_EX" : { @@ -2252,7 +2194,7 @@ ] } */ -// (165). Telemetry.PlotViewerWebviewLoaded (PLOTVIEWER.WEBVIEW_LOADED) +// (162). Telemetry.PlotViewerWebviewLoaded (PLOTVIEWER.WEBVIEW_LOADED) // The Plot Viewer webview was loaded. /* __GDPR__ "PLOTVIEWER.WEBVIEW_LOADED" : { diff --git a/src/kernels/errors/kernelErrorHandler.ts b/src/kernels/errors/kernelErrorHandler.ts index 2fd1db6afcf..e685e7901f9 100644 --- a/src/kernels/errors/kernelErrorHandler.ts +++ b/src/kernels/errors/kernelErrorHandler.ts @@ -64,8 +64,7 @@ import { getEnvironmentType, getPythonEnvDisplayName, getPythonEnvironmentName, - getSysPrefix, - isCondaEnvironmentWithoutPython + getSysPrefix } from '../../platform/interpreter/helpers'; import { JupyterServerCollection } from '../../api'; import { getJupyterDisplayName } from '../jupyter/connection/jupyterServerProviderRegistry'; @@ -417,37 +416,6 @@ export abstract class DataScienceErrorHandler implements IDataScienceErrorHandle this.interpreterService && !(await this.fs.exists(kernelConnection.interpreter.uri)) ) { - // Try to figure out why this happens, is it because the user deleted the env? - this.interpreterService - .getInterpreterDetails(kernelConnection.interpreter.id) - .then(async (details) => { - const fileExists = await this.fs.exists(kernelConnection.interpreter.uri); - if (details) { - sendKernelTelemetryEvent(resource, Telemetry.KernelStartFailureDueToMissingEnv, undefined, { - envMissingReason: 'Unknown', - isEmptyCondaEnv: isCondaEnvironmentWithoutPython(details), - pythonEnvType: getEnvironmentType(details), - fileExists - }); - } else { - sendKernelTelemetryEvent(resource, Telemetry.KernelStartFailureDueToMissingEnv, undefined, { - envMissingReason: 'EmptyEnvDetailsFromPython', - isEmptyCondaEnv: isCondaEnvironmentWithoutPython(kernelConnection.interpreter), - pythonEnvType: getEnvironmentType(kernelConnection.interpreter), - fileExists - }); - } - }) - .catch(async () => { - const fileExists = await this.fs.exists(kernelConnection.interpreter.uri); - sendKernelTelemetryEvent(resource, Telemetry.KernelStartFailureDueToMissingEnv, undefined, { - envMissingReason: 'FailedToGetEnvDetailsFromPython', - isEmptyCondaEnv: isCondaEnvironmentWithoutPython(kernelConnection.interpreter), - pythonEnvType: getEnvironmentType(kernelConnection.interpreter), - fileExists - }); - }) - .catch(noop); this.sendKernelTelemetry(err, errorContext, resource, KernelFailureReason.pythonEnvironmentMissing); window .showErrorMessage( diff --git a/src/notebooks/controllers/ipywidgets/message/ipyWidgetMessageDispatcher.ts b/src/notebooks/controllers/ipywidgets/message/ipyWidgetMessageDispatcher.ts index e668eb439f3..1289fa10330 100644 --- a/src/notebooks/controllers/ipywidgets/message/ipyWidgetMessageDispatcher.ts +++ b/src/notebooks/controllers/ipywidgets/message/ipyWidgetMessageDispatcher.ts @@ -12,7 +12,6 @@ import { Deferred, createDeferred } from '../../../../platform/common/utils/asyn import { noop } from '../../../../platform/common/utils/misc'; import { deserializeDataViews, serializeDataViews } from '../../../../platform/common/utils/serializers'; import { IPyWidgetMessages, IInteractiveWindowMapping } from '../../../../messageTypes'; -import { sendTelemetryEvent, Telemetry } from '../../../../telemetry'; import { IKernel, IKernelProvider } from '../../../../kernels/types'; import { IIPyWidgetMessageDispatcher, IPyWidgetMessage } from '../types'; import { shouldMessageBeMirroredWithRenderer } from '../../../../kernels/kernel'; @@ -64,9 +63,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { private pendingMessages: string[] = []; private subscribedToKernelSocket: boolean = false; private waitingMessageIds = new Map(); - private totalWaitTime: number = 0; - private totalWaitedMessages: number = 0; - private hookCount: number = 0; /** * The Output widget's model can set up or tear down a kernel message hook on state change. * We need to wait until the kernel message hook has been connected before it's safe to send @@ -111,8 +107,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { this.deserialize = jupyterLabSerialize.deserialize; } public dispose() { - // Send overhead telemetry for our message hooking - this.sendOverheadTelemetry(); this.disposed = true; while (this.disposables.length) { const disposable = this.disposables.shift(); @@ -274,7 +268,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { // If this is shell control message, mirror to the other side. This is how // we get the kernel in the UI to have the same set of futures we have on this side if (typeof data === 'string' && data.includes('shell') && data.includes('execute_request')) { - const startTime = Date.now(); // eslint-disable-next-line @typescript-eslint/no-require-imports const msg = this.deserialize(data) as KernelMessage.IExecuteRequestMsg; if (msg.channel === 'shell' && msg.header.msg_type === 'execute_request') { @@ -286,8 +279,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { if (this.isUsingIPyWidgets) { await promise; } - this.totalWaitTime = Date.now() - startTime; - this.totalWaitedMessages += 1; } } } @@ -390,8 +381,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { const pending = this.waitingMessageIds.get(payload.id); if (pending) { this.waitingMessageIds.delete(payload.id); - this.totalWaitTime += Date.now() - pending.startTime; - this.totalWaitedMessages += 1; pending.resultPromise.resolve(); } } @@ -497,7 +486,6 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { private registerMessageHook(msgId: string) { try { if (this.kernel?.session?.kernel && !this.messageHooks.has(msgId)) { - this.hookCount += 1; const callback = this.messageHookCallback.bind(this); this.messageHooks.set(msgId, callback); this.kernel.session.kernel.registerMessageHook(msgId, callback); @@ -570,13 +558,4 @@ export class IPyWidgetMessageDispatcher implements IIPyWidgetMessageDispatcher { promise.resolve(args.msgType.includes('comm') ? true : args.result); } } - - private sendOverheadTelemetry() { - sendTelemetryEvent(Telemetry.IPyWidgetOverhead, { - totalOverheadInMs: this.totalWaitTime, - numberOfMessagesWaitedOn: this.totalWaitedMessages, - averageWaitTime: this.totalWaitTime / this.totalWaitedMessages, - numberOfRegisteredHooks: this.hookCount - }); - } } diff --git a/src/platform/common/constants.ts b/src/platform/common/constants.ts index d9d38353898..357a9e97b3d 100644 --- a/src/platform/common/constants.ts +++ b/src/platform/common/constants.ts @@ -341,7 +341,6 @@ export enum Telemetry { * An export to a specific format failed */ ExportNotebookAsFailed = 'DATASCIENCE.EXPORT_NOTEBOOK_AS_FAILED', - StartedRemoteJupyterSessionWithBackingFile = 'DS_INTERNAL.JUPYTER_STARTED_SESSION_WITH_BACKING_FILE', ZMQSupport = 'DS_INTERNAL.JUPYTER_ZMQ_SUPPORT', ZMQSupportFailure = 'DS_INTERNAL.JUPYTER_ZMQ_SUPPORT_FAILURE', SelfCertsMessageEnabled = 'DATASCIENCE.SELFCERTSMESSAGEENABLED', @@ -417,7 +416,6 @@ export enum Telemetry { DiscoverIPyWidgetNamesPerf = 'DS_INTERNAL.IPYWIDGET_DISCOVER_WIDGETS_NB_EXTENSIONS', IPyWidgetPromptToUseCDN = 'DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN', IPyWidgetPromptToUseCDNSelection = 'DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN_SELECTION', - IPyWidgetOverhead = 'DS_INTERNAL.IPYWIDGET_OVERHEAD', IPyWidgetRenderFailure = 'DS_INTERNAL.IPYWIDGET_RENDER_FAILURE', IPyWidgetUnhandledMessage = 'DS_INTERNAL.IPYWIDGET_UNHANDLED_MESSAGE', RawKernelInfoResponse = 'DS_INTERNAL.RAWKERNEL_INFO_RESPONSE', @@ -433,7 +431,6 @@ export enum Telemetry { NotebookStart = 'DATASCIENCE.NOTEBOOK_START', NotebookFirstStartBreakDown = 'DATASCIENCE.NOTEBOOK_FIRST_START_BREAKDOWN', NotebookFirstKernelAutoSelectionBreakDown = 'DATASCIENCE.NOTEBOOK_FIRST_KERNEL_AUTO_SELECTION_BREAKDOWN', - KernelStartFailureDueToMissingEnv = 'DATASCIENCE.KERNEL_START_FAILURE_MISSING_ENV', NotebookInterrupt = 'DATASCIENCE.NOTEBOOK_INTERRUPT', NotebookRestart = 'DATASCIENCE.NOTEBOOK_RESTART', SwitchKernel = 'DS_INTERNAL.SWITCH_KERNEL', diff --git a/src/telemetry.ts b/src/telemetry.ts index 3da31e114f8..6049484265b 100644 --- a/src/telemetry.ts +++ b/src/telemetry.ts @@ -1798,41 +1798,6 @@ export class IEventNamePropertyMapping { feature: ['DataFrameViewer'], source: 'User Action' }; - /** - * Whether we managed to start a remote kernel successfully without a backing file. - */ - [Telemetry.StartedRemoteJupyterSessionWithBackingFile]: TelemetryEventInfo<{ - /** - * Failed to start the session without the backing file. - */ - failedWithoutBackingFile: boolean; - /** - * Failed to start the session without the backing file. - */ - failedWithBackingFile: boolean; - /** - * Whether this is a local host connection or remote. - */ - localHost: boolean; - }> = { - owner: 'donjayamanne', - feature: 'N/A', - source: 'N/A', - properties: { - failedWithoutBackingFile: { - classification: 'SystemMetaData', - purpose: 'FeatureInsight' - }, - failedWithBackingFile: { - classification: 'SystemMetaData', - purpose: 'FeatureInsight' - }, - localHost: { - classification: 'SystemMetaData', - purpose: 'FeatureInsight' - } - } - }; /** * Information used to determine the zmq binary support. * the alpine, libc, armv version is used by the node module @aminya/node-gyp-build to load the zeromq.js binary. @@ -2449,54 +2414,6 @@ export class IEventNamePropertyMapping { } } }; - /** - * Telemetry event sent to indicate the overhead of syncing the kernel with the UI. - */ - [Telemetry.IPyWidgetOverhead]: TelemetryEventInfo<{ - /** - * Total time in ms - */ - totalOverheadInMs: number; - /** - * Number of messages - */ - numberOfMessagesWaitedOn: number; - /** - * Average wait timne. - */ - averageWaitTime: number; - /** - * Number of registered hook. - */ - numberOfRegisteredHooks: number; - }> = { - owner: 'donjayamanne', - feature: ['Notebook', 'InteractiveWindow'], - tags: ['Widgets'], - source: 'N/A', - measures: { - totalOverheadInMs: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth', - isMeasurement: true - }, - numberOfMessagesWaitedOn: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth', - isMeasurement: true - }, - averageWaitTime: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth', - isMeasurement: true - }, - numberOfRegisteredHooks: { - classification: 'SystemMetaData', - purpose: 'FeatureInsight', - isMeasurement: true - } - } - }; /** * Telemetry event sent when the widget render function fails (note, this may not be sufficient to capture all failures). */ @@ -2709,43 +2626,6 @@ export class IEventNamePropertyMapping { }, measures: commonClassificationForDurationProperties() }; - /** - * Telemetry sent when user Kernel startup fails due to a missing python env. - */ - [Telemetry.KernelStartFailureDueToMissingEnv]: TelemetryEventInfo< - ResourceTypeTelemetryProperty & - TelemetryErrorProperties & { - envMissingReason: 'Unknown' | 'EmptyEnvDetailsFromPython' | 'FailedToGetEnvDetailsFromPython'; - isEmptyCondaEnv: boolean; - pythonEnvType: string; - fileExists: boolean; - } - > = { - owner: 'donjayamanne', - feature: ['Notebook', 'InteractiveWindow'], - source: 'User Action', - properties: { - ...commonClassificationForResourceType(), - ...commonClassificationForErrorProperties(), - ...commonClassificationForResourceSpecificTelemetryProperties().properties, - envMissingReason: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth' - }, - isEmptyCondaEnv: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth' - }, - pythonEnvType: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth' - }, - fileExists: { - classification: 'SystemMetaData', - purpose: 'PerformanceAndHealth' - } - } - }; /** * Telemetry event sent when raw kernel startup fails due to missing ipykernel dependency. * This is useful to see what the user does with this error message.