# Telemetry created by Jupyter Extension Expand each section to see more information about that event.
DATASCIENCE.ADD_CELL_BELOW ## Description Data Science ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L376](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L376) ```typescript } } @captureTelemetry(Telemetry.AddCellBelow) private async addCellBelow(): Promise { await this.getCurrentCodeWatcher()?.addEmptyCellToBottom(); } ```
DATASCIENCE.CLICKED_EXPORT_NOTEBOOK_AS_QUICK_PICK ## Description No description provided ## Properties - format: ExportFormat ## Locations Used [src/interactive-window/commands/exportCommands.ts#L125](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/exportCommands.ts#L125) ```typescript if (pickedItem !== undefined) { pickedItem.handler(); } else { sendTelemetryEvent(Telemetry.ClickedExportNotebookAsQuickPick); } } } ``` [src/interactive-window/commands/exportCommands.ts#L141](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/exportCommands.ts#L141) ```typescript label: DataScience.exportPythonQuickPickLabel(), picked: true, handler: () => { sendTelemetryEvent(Telemetry.ClickedExportNotebookAsQuickPick, undefined, { format: ExportFormat.python }); void this.commandManager.executeCommand(Commands.ExportAsPythonScript, sourceDocument, interpreter); ``` [src/interactive-window/commands/exportCommands.ts#L155](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/exportCommands.ts#L155) ```typescript label: DataScience.exportHTMLQuickPickLabel(), picked: false, handler: () => { sendTelemetryEvent(Telemetry.ClickedExportNotebookAsQuickPick, undefined, { format: ExportFormat.html }); void this.commandManager.executeCommand( ``` [src/interactive-window/commands/exportCommands.ts#L170](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/exportCommands.ts#L170) ```typescript label: DataScience.exportPDFQuickPickLabel(), picked: false, handler: () => { sendTelemetryEvent(Telemetry.ClickedExportNotebookAsQuickPick, undefined, { format: ExportFormat.pdf }); void this.commandManager.executeCommand( ```
DATASCIENCE.COLLAPSE_ALL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.COPY_SOURCE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.CREATE_NEW_INTERACTIVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/interactiveWindowCommandListener.ts#L355](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/interactiveWindowCommandListener.ts#L355) ```typescript } } @captureTelemetry(Telemetry.CreateNewInteractive, undefined, false) private async createNewInteractiveWindow(connection?: KernelConnectionMetadata): Promise { await this.interactiveWindowProvider.getOrCreate(undefined, connection); } ```
DATASCIENCE.DATA_VIEWER_DATA_DIMENSIONALITY ## Description Telemetry event sent when a slice is first applied in a data viewer instance to a sliceable Python variable. ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewer.ts#L322](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L322) ```typescript private maybeSendSliceDataDimensionalityTelemetry(numberOfDimensions: number) { if (!this.sentDataViewerSliceDimensionalityTelemetry) { sendTelemetryEvent(Telemetry.DataViewerDataDimensionality, undefined, { numberOfDimensions }); this.sentDataViewerSliceDimensionalityTelemetry = true; } } ```
DATASCIENCE.DATA_VIEWER_SLICE_ENABLEMENT_STATE_CHANGED ## Description Telemetry event sent whenever the user toggles the checkbox controlling whether a slice is currently being applied to an n-dimensional variable. ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewer.ts#L204](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L204) ```typescript break; case DataViewerMessages.SliceEnablementStateChanged: void sendTelemetryEvent(Telemetry.DataViewerSliceEnablementStateChanged, undefined, { newState: payload.newState ? CheckboxState.Checked : CheckboxState.Unchecked }); break; ```
DATASCIENCE.DATA_VIEWER_SLICE_OPERATION ## Description Telemetry event sent whenever the user applies a valid slice to a sliceable Python variable in the data viewer. ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewer.ts#L265](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L265) ```typescript if (payload.shape?.length) { this.maybeSendSliceDataDimensionalityTelemetry(payload.shape.length); } sendTelemetryEvent(Telemetry.DataViewerSliceOperation, undefined, { source: request.source }); return this.postMessage(DataViewerMessages.InitializeData, payload); } }); ```
DATASCIENCE.DEBUG_CONTINUE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L368](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L368) ```typescript } } @captureTelemetry(Telemetry.DebugContinue) private async debugContinue(): Promise { // Make sure that we are in debug mode if (this.debugService.activeDebugSession) { ```
DATASCIENCE.DEBUG_CURRENT_CELL ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L124](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L124) ```typescript return this.codeLenses; } @captureTelemetry(Telemetry.DebugCurrentCell) public async debugCurrentCell() { if (!this.documentManager.activeTextEditor || !this.documentManager.activeTextEditor.document) { return; ``` [src/interactive-window/editor-integration/codewatcher.ts#L329](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L329) ```typescript return this.runMatchingCell(range, advance); } @captureTelemetry(Telemetry.DebugCurrentCell) public async debugCell(range: Range): Promise { if (!this.documentManager.activeTextEditor || !this.documentManager.activeTextEditor.document) { return; ```
DATASCIENCE.DEBUG_FILE_INTERACTIVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L188](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L188) ```typescript return this.runFileInteractiveInternal(false); } @captureTelemetry(Telemetry.DebugFileInteractive) public async debugFileInteractive() { return this.runFileInteractiveInternal(true); } ```
DATASCIENCE.DEBUG_STEP_OVER ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L342](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L342) ```typescript } } @captureTelemetry(Telemetry.DebugStepOver) private async debugStepOver(): Promise { // Make sure that we are in debug mode if (this.debugService.activeDebugSession) { ```
DATASCIENCE.DEBUG_STOP ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L350](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L350) ```typescript } } @captureTelemetry(Telemetry.DebugStop) private async debugStop(uri: Uri): Promise { // Make sure that we are in debug mode if (this.debugService.activeDebugSession) { ```
DATASCIENCE.DEBUGGING.CLICKED_ON_SETUP ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debuggingManager.ts#L481](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L481) ```typescript ); if (response === DataScience.setup()) { sendTelemetryEvent(DebuggingTelemetry.clickedOnSetup); this.appShell.openUrl( 'https://github.com/microsoft/vscode-jupyter/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' ); ```
DATASCIENCE.DEBUGGING.CLICKED_RUN_AND_DEBUG_CELL ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debuggingManager.ts#L162](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L162) ```typescript }), this.commandManager.registerCommand(DSCommands.RunAndDebugCell, async (cell: NotebookCell | undefined) => { sendTelemetryEvent(DebuggingTelemetry.clickedRunAndDebugCell); const editor = this.vscNotebook.activeNotebookEditor; if (!cell) { const range = editor?.selections[0]; ```
DATASCIENCE.DEBUGGING.CLICKED_RUNBYLINE ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debuggingManager.ts#L109](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L109) ```typescript }), this.commandManager.registerCommand(DSCommands.RunByLine, async (cell: NotebookCell | undefined) => { sendTelemetryEvent(DebuggingTelemetry.clickedRunByLine); const editor = this.vscNotebook.activeNotebookEditor; if (!cell) { const range = editor?.selections[0]; ```
DATASCIENCE.DEBUGGING.CLOSED_MODAL ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debuggingManager.ts#L486](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L486) ```typescript 'https://github.com/microsoft/vscode-jupyter/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' ); } else { sendTelemetryEvent(DebuggingTelemetry.closedModal); } } } ```
DATASCIENCE.DEBUGGING.ENDED_SESSION ## Description No description provided ## Properties - reason: 'normally' | 'onKernelDisposed' | 'onAnInterrupt' | 'onARestart' | 'withKeybinding'; ## Locations Used [src/platform/debugger/jupyter/kernelDebugAdapter.ts#L95](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/kernelDebugAdapter.ts#L95) ```typescript this.kernel.onDisposed(() => { void debug.stopDebugging(this.session); this.endSession.fire(this.session); sendTelemetryEvent(DebuggingTelemetry.endedSession, undefined, { reason: 'onKernelDisposed' }); }) ); } ``` [src/platform/debugger/jupyter/kernelDebugAdapter.ts#L109](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/kernelDebugAdapter.ts#L109) ```typescript cellStateChange.state === NotebookCellExecutionState.Idle && !this.disconected ) { sendTelemetryEvent(DebuggingTelemetry.endedSession, undefined, { reason: 'normally' }); void this.disconnect(); } }, ``` [src/platform/debugger/jupyter/debuggingManager.ts#L153](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L153) ```typescript if (editor) { const controller = this.notebookToRunByLineController.get(editor.document); if (controller) { sendTelemetryEvent(DebuggingTelemetry.endedSession, undefined, { reason: 'withKeybinding' }); controller.stop(); ```
DATASCIENCE.DEBUGGING.IPYKERNEL6_STATUS ## Description No description provided ## Properties - status: 'installed' | 'notInstalled'; ## Locations Used [src/platform/debugger/jupyter/debuggingManager.ts#L463](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debuggingManager.ts#L463) ```typescript } const result = await isUsingIpykernel6OrLater(kernel); sendTelemetryEvent(DebuggingTelemetry.ipykernel6Status, undefined, { status: result === IpykernelCheckResult.Ok ? 'installed' : 'notInstalled' }); return result; ```
DATASCIENCE.DEBUGGING.SUCCESSFULLY_STARTED_RUN_AND_DEBUG_CELL ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debugControllers.ts#L25](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debugControllers.ts#L25) ```typescript private readonly kernel: IKernel, private readonly commandManager: ICommandManager ) { sendTelemetryEvent(DebuggingTelemetry.successfullyStartedRunAndDebugCell); } public async willSendEvent(_msg: DebugProtocolMessage): Promise { ```
DATASCIENCE.DEBUGGING.SUCCESSFULLY_STARTED_RUNBYLINE ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/debugger/jupyter/debugControllers.ts#L54](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/debugger/jupyter/debugControllers.ts#L54) ```typescript private readonly kernel: IKernel, private readonly settings: IConfigurationService ) { sendTelemetryEvent(DebuggingTelemetry.successfullyStartedRunByLine); } public continue(): void { ```
DATASCIENCE.DEBUGPY_INSTALL_CANCELLED ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DEBUGPY_INSTALL_FAILED ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DEBUGPY_PROMPT_TO_INSTALL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DEBUGPY_SUCCESSFULLY_INSTALLED ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DELETE_ALL_CELLS ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DELETE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.DISABLE_INTERACTIVE_SHIFT_ENTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/shiftEnterBanner.ts#L93](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/shiftEnterBanner.ts#L93) ```typescript ); } @captureTelemetry(Telemetry.DisableInteractiveShiftEnter) public async disableInteractiveShiftEnter(): Promise { await this.configuration.updateSetting( 'sendSelectionToInteractiveWindow', ``` [src/test/datascience/shiftEnterBanner.unit.test.ts#L100](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/datascience/shiftEnterBanner.unit.test.ts#L100) ```typescript expect(Reporter.eventNames).to.deep.equal([ Telemetry.ShiftEnterBannerShown, Telemetry.DisableInteractiveShiftEnter ]); }); }); ```
DATASCIENCE.ENABLE_INTERACTIVE_SHIFT_ENTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/shiftEnterBanner.ts#L104](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/shiftEnterBanner.ts#L104) ```typescript await this.disableBanner(); } @captureTelemetry(Telemetry.EnableInteractiveShiftEnter) public async enableInteractiveShiftEnter(): Promise { await this.configuration.updateSetting( 'sendSelectionToInteractiveWindow', ``` [src/test/datascience/shiftEnterBanner.unit.test.ts#L69](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/datascience/shiftEnterBanner.unit.test.ts#L69) ```typescript expect(Reporter.eventNames).to.deep.equal([ Telemetry.ShiftEnterBannerShown, Telemetry.EnableInteractiveShiftEnter ]); }); ```
DATASCIENCE.EXECUTE_CELL ## Description Applies to everything (interactive+Notebooks & local+remote) ## Properties No properties for event ## Locations Used [src/telemetry/telemetry.ts#L84](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L84) ```typescript properties?: P[E] & { waitBeforeSending?: Promise }, ex?: Error ) { if (eventName === Telemetry.ExecuteCell) { setSharedProperty('userExecutedCell', 'true'); } ``` [src/telemetry/telemetry.ts#L121](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L121) ```typescript stopWatch?: StopWatch, properties?: P[E] & { [waitBeforeSending]?: Promise } ) { if (eventName === Telemetry.ExecuteCell) { setSharedProperty('userExecutedCell', 'true'); } // eslint-disable-next-line @typescript-eslint/no-explicit-any ``` [src/notebooks/controllers/vscodeNotebookController.ts#L255](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L255) ```typescript return; } initializeInteractiveOrNotebookTelemetryBasedOnUserAction(notebook.uri, this.connection); sendKernelTelemetryEvent(notebook.uri, Telemetry.ExecuteCell); // Notebook is trusted. Continue to execute cells traceInfo(`Execute Cells request ${cells.map((cell) => cell.index).join(', ')}`); await Promise.all(cells.map((cell) => this.executeCell(notebook, cell))); ``` [src/kernels/kernel.ts#L197](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L197) ```typescript public async executeCell(cell: NotebookCell): Promise { traceCellMessage(cell, `kernel.executeCell, ${getDisplayPath(cell.notebook.uri)}`); sendKernelTelemetryEvent(this.resourceUri, Telemetry.ExecuteCell); const stopWatch = new StopWatch(); const sessionPromise = this.startNotebook().then((nb) => nb.session); const promise = this.kernelExecution.executeCell(sessionPromise, cell); ```
DATASCIENCE.EXECUTE_CELL_TIME ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.EXPAND_ALL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.EXPORT_NOTEBOOK ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.EXPORT_NOTEBOOK_AS ## Description No description provided ## Properties - format: ExportFormat; - cancelled?: boolean; - successful?: boolean; - opened?: boolean ## Locations Used [src/platform/datascience/export/exportFileOpener.ts#L25](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/export/exportFileOpener.ts#L25) ```typescript public async openFile(format: ExportFormat, uri: Uri) { if (format === ExportFormat.python) { await this.openPythonFile(uri); sendTelemetryEvent(Telemetry.ExportNotebookAs, undefined, { format: format, successful: true, opened: true ``` [src/platform/datascience/export/exportFileOpener.ts#L32](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/export/exportFileOpener.ts#L32) ```typescript }); } else { const opened = await this.askOpenFile(uri); sendTelemetryEvent(Telemetry.ExportNotebookAs, undefined, { format: format, successful: true, opened: opened ``` [src/platform/datascience/export/fileConverter.ts#L69](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/export/fileConverter.ts#L69) ```typescript } if (reporter.token.isCancellationRequested) { sendTelemetryEvent(Telemetry.ExportNotebookAs, undefined, { format: format, cancelled: true }); return; } } ```
DATASCIENCE.EXPORT_NOTEBOOK_AS_COMMAND ## Description No description provided ## Properties - format: ExportFormat ## Locations Used [src/interactive-window/commands/exportCommands.ts#L110](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/exportCommands.ts#L110) ```typescript this.controllers.getSelectedNotebookController(sourceDocument)?.connection.interpreter || this.controllers.getPreferredNotebookController(sourceDocument)?.connection.interpreter; if (exportMethod) { sendTelemetryEvent(Telemetry.ExportNotebookAsCommand, undefined, { format: exportMethod }); } } ```
DATASCIENCE.EXPORT_NOTEBOOK_AS_FAILED ## Description No description provided ## Properties - format: ExportFormat ## Locations Used [src/platform/datascience/export/fileConverter.ts#L90](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/export/fileConverter.ts#L90) ```typescript await this.performExport(format, sourceDocument, target, token, candidateInterpreter); } catch (e) { traceError('Export failed', e); sendTelemetryEvent(Telemetry.ExportNotebookAsFailed, undefined, { format: format }); if (format === ExportFormat.pdf) { traceError(localize.DataScience.exportToPDFDependencyMessage()); ```
DATASCIENCE.EXPORT_PYTHON_FILE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/interactiveWindowCommandListener.ts#L203](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/interactiveWindowCommandListener.ts#L203) ```typescript return result; } @captureTelemetry(Telemetry.ExportPythonFileInteractive, undefined, false) private async exportFile(file: Uri): Promise { if (file && file.fsPath && file.fsPath.length > 0) { // If the current file is the active editor, then generate cells from the document. ```
DATASCIENCE.EXPORT_PYTHON_FILE_AND_OUTPUT ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/interactiveWindowCommandListener.ts#L251](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/interactiveWindowCommandListener.ts#L251) ```typescript } } @captureTelemetry(Telemetry.ExportPythonFileAndOutputInteractive, undefined, false) private async exportFileAndOutput(file: Uri): Promise { if (file && file.fsPath && file.fsPath.length > 0 && (await this.jupyterExecution.isNotebookSupported())) { // If the current file is the active editor, then generate cells from the document. ```
DATASCIENCE.FAILED_SHOW_DATA_EXPLORER ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/variablesView/variableView.ts#L174](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/variablesView/variableView.ts#L174) ```typescript } } catch (e) { traceError(e); sendTelemetryEvent(Telemetry.FailedShowDataViewer); void this.appShell.showErrorMessage(localize.DataScience.showDataViewerFail()); } } ```
DATASCIENCE.FAILED_TO_CREATE_CONTROLLER ## Description Telemetry sent when we fail to create a Notebook Controller (an entry for the UI kernel list in Native Notebooks). ## Properties No properties for event ## Locations Used [src/notebooks/controllers/notebookControllerManager.ts#L803](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/notebookControllerManager.ts#L803) ```typescript } catch (ex) { // We know that this fails when we have xeus kernels installed (untill that's resolved thats one instance when we can have duplicates). sendTelemetryEvent( Telemetry.FailedToCreateNotebookController, undefined, { kind: kernelConnection.kind }, // eslint-disable-next-line @typescript-eslint/no-explicit-any ```
DATASCIENCE.FAILED_TO_FIND_INTERPRETER_KERNEL_CONNECTION_FOR_INTERACTIVE ## Description Telemetry sent when we're unable to find a KernelSpec connection for Interactive window that can be started usig Python interpreter. ## Properties No properties for event ## Locations Used [src/kernels/helpers.ts#L599](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/helpers.ts#L599) ```typescript return preferredInterpreterKernelSpec; } // Telemetry to see if this happens in the real world, this should not be possible. sendTelemetryEvent(Telemetry.FailedToFindKernelSpecInterpreterForInteractive); } } ``` [src/kernels/helpers.ts#L1350](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/helpers.ts#L1350) ```typescript return kernelMatchingPreferredInterpreter; } // Telemetry to see if this happens in the real world, this should not be possible. sendTelemetryEvent(Telemetry.FailedToFindKernelSpecInterpreterForInteractive); } // If still not found, look for a match based on notebook metadata and interpreter ```
DATASCIENCE.GET_PASSWORD_ATTEMPT ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L30](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L30) ```typescript @inject(IConfigurationService) private readonly configService: IConfigurationService ) {} @captureTelemetry(Telemetry.GetPasswordAttempt) public getPasswordConnectionInfo( url: string, fetchFunction?: (url: nodeFetch.RequestInfo, init?: nodeFetch.RequestInit) => Promise ```
DATASCIENCE.GOTO_NEXT_CELL_IN_FILE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L689](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L689) ```typescript }); } @captureTelemetry(Telemetry.GotoNextCellInFile) public gotoNextCell() { const editor = this.documentManager.activeTextEditor; if (!editor || !editor.selection) { ```
DATASCIENCE.GOTO_PREV_CELL_IN_FILE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L706](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L706) ```typescript } } @captureTelemetry(Telemetry.GotoPrevCellInFile) public gotoPreviousCell() { const editor = this.documentManager.activeTextEditor; if (!editor || !editor.selection) { ```
DATASCIENCE.GOTO_SOURCE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.IMPORT_NOTEBOOK ## Description No description provided ## Properties - scope: 'command' | 'file' ## Locations Used [src/interactive-window/interactiveWindowCommandListener.ts#L370](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/interactiveWindowCommandListener.ts#L370) ```typescript return this.statusProvider.waitWithStatus(promise, message, undefined, canceled); } @captureTelemetry(Telemetry.ImportNotebook, { scope: 'command' }, false) private async importNotebook(): Promise { const filtersKey = localize.DataScience.importDialogFilter(); const filtersObject: { [name: string]: string[] } = {}; ``` [src/interactive-window/interactiveWindowCommandListener.ts#L393](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/interactiveWindowCommandListener.ts#L393) ```typescript } } @captureTelemetry(Telemetry.ImportNotebook, { scope: 'file' }, false) private async importNotebookOnFile(file: Uri): Promise { if (file.fsPath && file.fsPath.length > 0) { await this.waitForStatus( ```
DATASCIENCE.INTERACTIVE_WINDOW_DEBUG_SETUP_CODE_FAILURE ## Description No description provided ## Properties - ename: string; - evalue: string; ## Locations Used [src/kernels/debugging/interactiveWindowDebugger.ts#L114](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/debugging/interactiveWindowDebugger.ts#L114) ```typescript executeSilently(kernel.session, this.tracingEnableCode, { traceErrors: true, traceErrorsMessage: 'Execute_request failure enabling tracing code for IW', telemetryName: Telemetry.InteractiveWindowDebugSetupCodeFailure }).ignoreErrors(); } ``` [src/kernels/debugging/interactiveWindowDebugger.ts#L125](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/debugging/interactiveWindowDebugger.ts#L125) ```typescript executeSilently(kernel.session, this.tracingDisableCode, { traceErrors: true, traceErrorsMessage: 'Execute_request failure disabling tracing code for IW', telemetryName: Telemetry.InteractiveWindowDebugSetupCodeFailure }).ignoreErrors(); } ``` [src/kernels/debugging/interactiveWindowDebugger.ts#L154](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/debugging/interactiveWindowDebugger.ts#L154) ```typescript const importResults = await executeSilently(kernel.session, this.waitForDebugClientCode, { traceErrors: true, traceErrorsMessage: 'Execute_request failure starting debug session for IW', telemetryName: Telemetry.InteractiveWindowDebugSetupCodeFailure }); if (importResults.some((item) => item.output_type === 'error')) { traceWarning(`${this.debuggerPackage} not found in path.`); ``` [src/kernels/debugging/interactiveWindowDebugger.ts#L276](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/debugging/interactiveWindowDebugger.ts#L276) ```typescript { traceErrors: true, traceErrorsMessage: 'Execute_request failure appending debugger paths for IW', telemetryName: Telemetry.InteractiveWindowDebugSetupCodeFailure } ) : []; ``` [src/kernels/debugging/interactiveWindowDebugger.ts#L305](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/debugging/interactiveWindowDebugger.ts#L305) ```typescript ? await executeSilently(kernel.session, this.enableDebuggerCode, { traceErrors: true, traceErrorsMessage: 'Execute_request failure enabling debugging for IW', telemetryName: Telemetry.InteractiveWindowDebugSetupCodeFailure }) : []; ```
DATASCIENCE.INTERRUPT ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/execution/kernelExecution.ts#L194](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L194) ```typescript this.documentExecutions.set(document, newCellExecutionQueue); return newCellExecutionQueue; } @captureTelemetry(Telemetry.Interrupt) @captureTelemetry(Telemetry.InterruptJupyterTime) private async interruptExecution( session: IJupyterSession, ```
DATASCIENCE.JUPYTER_COMMAND_SEARCH ## Description No description provided ## Properties - where: 'activeInterpreter' | 'otherInterpreter' | 'path' | 'nowhere'; - command: JupyterCommands; ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.JUPYTER_KERNEL_API_ACCESS ## Description No description provided ## Properties - extensionId: string; - allowed: 'yes' | 'no'; ## Locations Used [src/platform/api/apiAccessService.ts#L70](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/apiAccessService.ts#L70) ```typescript const extensionPermissions = this.globalState.get(API_ACCESS_GLOBAL_KEY); const extensionPermission = extensionPermissions?.find((item) => item.extensionId === info.extensionId); if (extensionPermission) { sendTelemetryEvent(Telemetry.JupyterKernelApiAccess, undefined, { extensionId: info.extensionId, allowed: extensionPermission.allowed }); ``` [src/platform/api/apiAccessService.ts#L98](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/apiAccessService.ts#L98) ```typescript extensionPermissions.push({ allowed: allow ? 'yes' : 'no', extensionId: info.extensionId }); return this.globalState.update(API_ACCESS_GLOBAL_KEY, extensionPermissions); }); sendTelemetryEvent(Telemetry.JupyterKernelApiAccess, undefined, { extensionId: info.extensionId, allowed: allow ? 'yes' : 'no' }); ```
DATASCIENCE.JUPYTER_KERNEL_API_USAGE ## Description No description provided ## Properties - extensionId: string; - pemUsed: keyof IExportedKernelService; ## Locations Used [src/platform/api/kernelApi.ts#L70](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L70) ```typescript KernelConnectionMetadata >(); public get onDidChangeKernelSpecifications(): Event { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'onDidChangeKernelSpecifications' }); ``` [src/platform/api/kernelApi.ts#L78](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L78) ```typescript return this._onDidChangeKernelSpecifications.event; } public get onDidChangeKernels(): Event { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'onDidChangeKernels' }); ``` [src/platform/api/kernelApi.ts#L100](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L100) ```typescript ); } async getKernelSpecifications(refresh?: boolean): Promise { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'getKernelSpecifications' }); ``` [src/platform/api/kernelApi.ts#L109](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L109) ```typescript return items.map((item) => this.translateKernelConnectionMetadataToExportedType(item)); } async getActiveKernels(): Promise<{ metadata: KernelConnectionMetadata; notebook: NotebookDocument }[]> { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'getActiveKernels' }); ``` [src/platform/api/kernelApi.ts#L125](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L125) ```typescript getKernel( notebook: NotebookDocument ): { metadata: KernelConnectionMetadata; connection: IKernelConnectionInfo } | undefined { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'getKernel' }); ``` [src/platform/api/kernelApi.ts#L139](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L139) ```typescript } } async startKernel(spec: KernelConnectionMetadata, notebook: NotebookDocument): Promise { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'startKernel' }); ``` [src/platform/api/kernelApi.ts#L146](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/kernelApi.ts#L146) ```typescript return this.startOrConnect(spec, notebook); } async connect(spec: ActiveKernel, notebook: NotebookDocument): Promise { sendTelemetryEvent(Telemetry.JupyterKernelApiUsage, undefined, { extensionId: this.callingExtensionId, pemUsed: 'connect' }); ```
DATASCIENCE.JUPYTER_NOT_INSTALLED_ERROR_SHOWN ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L157](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L157) ```typescript moduleName: ProductNames.get(Product.jupyter)!, pythonEnvType: interpreter.envType }); sendTelemetryEvent(Telemetry.JupyterNotInstalledErrorShown); const selection = await this.applicationShell.showErrorMessage( message, { modal: true }, ```
DATASCIENCE.KERNEL_STARTUP_CODE_FAILURE ## Description No description provided ## Properties - ename: string; - evalue: string; ## Locations Used [src/kernels/kernel.ts#L559](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L559) ```typescript await this.executeSilently(notebook, startupCode, { traceErrors: true, traceErrorsMessage: 'Error executing jupyter extension internal startup code', telemetryName: Telemetry.KernelStartupCodeFailure }); // Run user specified startup commands ```
DATASCIENCE.NATIVE.CONVERT_NOTEBOOK_TO_PYTHON ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.CREATE_NEW_NOTEBOOK ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/notebookEditorProvider.ts#L30](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/notebookEditorProvider.ts#L30) ```typescript const nb = await this.vscodeNotebook.openNotebookDocument(file); await this.vscodeNotebook.showNotebookDocument(nb); } @captureTelemetry(Telemetry.CreateNewNotebook, undefined, false) public async createNew(options?: { contents?: string; defaultCellLanguage: string }): Promise { // contents will be ignored const language = options?.defaultCellLanguage ?? PYTHON_LANGUAGE; ```
DATASCIENCE.NATIVE.KEYBOARD.ARROW_DOWN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.ARROW_UP ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.CHANGE_TO_CODE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.CHANGE_TO_MARKDOWN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.DELETE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.INSERT_ABOVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.INSERT_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.REDO ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.RUN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.RUN_AND_ADD ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.RUN_AND_MOVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.SAVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.TOGGLE_LINE_NUMBERS ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.TOGGLE_OUTPUT ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.UNDO ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.KEYBOARD.UNFOCUS ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.ADD_TO_END ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.CHANGE_TO_CODE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.CHANGE_TO_MARKDOWN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.DELETE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.INSERT_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.MOVE_CELL_DOWN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.MOVE_CELL_UP ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.RUN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.RUN_ABOVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.RUN_ALL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.RUN_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.SAVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.SELECT_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.SELECT_SERVER ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.MOUSE.TOGGLE_VARIABLE_EXPLORER ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.OPEN_NOTEBOOK ## Description No description provided ## Properties - scope: 'command' | 'file' ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.OPEN_NOTEBOOK_ALL ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/activation.ts#L46](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/activation.ts#L46) ```typescript } this.notebookOpened = true; void this.PreWarmDaemonPool(); sendTelemetryEvent(Telemetry.OpenNotebookAll); if (!this.rawSupported.isSupported && this.extensionChecker.isPythonExtensionInstalled) { // Warm up our selected interpreter for the extension ```
DATASCIENCE.NATIVE.OPEN_NOTEBOOK_SELECTION ## Description Telemetry sent with details of the selection of the quick pick for when user creates new notebook. This only applies with other extensions like .NET registers with us. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NATIVE.OPEN_NOTEBOOK_SELECTION_REGISTERED ## Description No description provided ## Properties - /** * The id of the extension registering with us to be displayed the dropdown list for notebook creation. */ extensionId: string; ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.NOTEBOOK_INTERRUPT ## Description No description provided ## Properties No properties for event ## Locations Used [src/telemetry/telemetry.ts#L369](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L369) ```typescript // eslint-disable-next-line @typescript-eslint/no-explicit-any function resetData(resource: Resource, eventName: string, properties: any) { // Once we have successfully interrupted, clear the interrupt counter. if (eventName === Telemetry.NotebookInterrupt) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookInterrupt] = properties; // Check result to determine if success. ``` [src/telemetry/telemetry.ts#L370](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L370) ```typescript function resetData(resource: Resource, eventName: string, properties: any) { // Once we have successfully interrupted, clear the interrupt counter. if (eventName === Telemetry.NotebookInterrupt) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookInterrupt] = properties; // Check result to determine if success. if (data && 'result' in data && data.result === InterruptResult.Success) { ``` [src/telemetry/telemetry.ts#L371](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L371) ```typescript // Once we have successfully interrupted, clear the interrupt counter. if (eventName === Telemetry.NotebookInterrupt) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookInterrupt] = properties; // Check result to determine if success. if (data && 'result' in data && data.result === InterruptResult.Success) { clearInterruptCounter(resource); ``` [src/notebooks/execution/kernelExecution.ts#L250](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L250) ```typescript // Otherwise a real error occurred. sendKernelTelemetryEvent( this.kernel.resourceUri, Telemetry.NotebookInterrupt, stopWatch.elapsedTime, undefined, exc ``` [src/notebooks/execution/kernelExecution.ts#L262](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L262) ```typescript })(); return promise.then((result) => { sendKernelTelemetryEvent(this.kernel.resourceUri, Telemetry.NotebookInterrupt, stopWatch.elapsedTime, { result }); return result; ```
DATASCIENCE.NOTEBOOK_LANGUAGE ## Description Telemetry event sent to indicate the language used in a notebook @type { language: string } @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/platform/datascience/common.ts#L171](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/common.ts#L171) ```typescript } export function sendNotebookOrKernelLanguageTelemetry( telemetryEvent: Telemetry.SwitchToExistingKernel | Telemetry.NotebookLanguage, language?: string ) { language = getTelemetrySafeLanguage(language); ```
DATASCIENCE.NOTEBOOK_RESTART ## Description No description provided ## Properties No properties for event ## Locations Used [src/telemetry/telemetry.ts#L378](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L378) ```typescript } } // Once we have successfully restarted, clear the interrupt counter. if (eventName === Telemetry.NotebookRestart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookRestart] = properties; // For restart to be successful, we should not have `failed` ``` [src/telemetry/telemetry.ts#L379](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L379) ```typescript } // Once we have successfully restarted, clear the interrupt counter. if (eventName === Telemetry.NotebookRestart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookRestart] = properties; // For restart to be successful, we should not have `failed` const failed = data && 'failed' in data ? data.failed : false; ``` [src/telemetry/telemetry.ts#L380](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L380) ```typescript // Once we have successfully restarted, clear the interrupt counter. if (eventName === Telemetry.NotebookRestart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookRestart] = properties; // For restart to be successful, we should not have `failed` const failed = data && 'failed' in data ? data.failed : false; if (!failed) { ``` [src/kernels/kernel.ts#L306](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L306) ```typescript ? this.kernelExecution.restart(this._notebookPromise?.then((item) => item.session)) : this.start(new DisplayOptions(false))); traceInfoIfCI(`Restarted ${getDisplayPath(this.notebookDocument.uri)}`); sendKernelTelemetryEvent(this.resourceUri, Telemetry.NotebookRestart, stopWatch.elapsedTime); } catch (ex) { traceError(`Restart failed ${getDisplayPath(this.notebookDocument.uri)}`, ex); this._ignoreNotebookDisposedErrors = true; ``` [src/kernels/kernel.ts#L317](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L317) ```typescript this.restarting = undefined; // If we get a kernel promise failure, then restarting timed out. Just shutdown and restart the entire server. // Note, this code might not be necessary, as such an error is thrown only when interrupting a kernel times out. sendKernelTelemetryEvent(this.resourceUri, Telemetry.NotebookRestart, stopWatch.elapsedTime, undefined, ex); await notebook?.session.dispose().catch(noop); this._ignoreNotebookDisposedErrors = false; throw ex; ```
DATASCIENCE.NOTEBOOK_START ## Description No description provided ## Properties No properties for event ## Locations Used [src/telemetry/telemetry.ts#L411](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L411) ```typescript } // eslint-disable-next-line @typescript-eslint/no-explicit-any function incrementStartFailureCount(resource: Resource, eventName: any, properties: any) { if (eventName === Telemetry.NotebookStart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookStart] = properties; // Check start failed. ``` [src/telemetry/telemetry.ts#L412](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L412) ```typescript // eslint-disable-next-line @typescript-eslint/no-explicit-any function incrementStartFailureCount(resource: Resource, eventName: any, properties: any) { if (eventName === Telemetry.NotebookStart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookStart] = properties; // Check start failed. if (data && 'failed' in data && data.failed) { ``` [src/telemetry/telemetry.ts#L413](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/telemetry.ts#L413) ```typescript function incrementStartFailureCount(resource: Resource, eventName: any, properties: any) { if (eventName === Telemetry.NotebookStart) { let kv: Pick; const data: undefined | typeof kv[Telemetry.NotebookStart] = properties; // Check start failed. if (data && 'failed' in data && data.failed) { trackKernelResourceInformation(resource, { startFailed: true }); ``` [src/kernels/jupyter/launcher/notebookProvider.ts#L91](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/notebookProvider.ts#L91) ```typescript ) : this.jupyterNotebookProvider.createNotebook(options); sendKernelTelemetryWhenDone(options.resource, Telemetry.NotebookStart, promise, undefined, { disableUI: options.ui.disableUI === true }); ```
DATASCIENCE.OPEN_PLOT_VIEWER ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/plotting/plotViewerProvider.ts#L46](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/plotting/plotViewerProvider.ts#L46) ```typescript this.currentViewer = this.serviceContainer.get(IPlotViewer); this.currentViewerClosed = this.currentViewer.closed(this.closedViewer); this.currentViewer.removed(this.removedPlot); sendTelemetryEvent(Telemetry.OpenPlotViewer); await this.currentViewer.show(); } ```
DATASCIENCE.OPENED_INTERACTIVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.PYTHON_VARIABLE_FETCHING_CODE_FAILURE ## Description No description provided ## Properties - ename: string; - evalue: string; ## Locations Used [src/kernels/variables/pythonVariableRequester.ts#L62](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/pythonVariableRequester.ts#L62) ```typescript { traceErrors: true, traceErrorsMessage: 'Failure in execute_request for getDataFrameInfo', telemetryName: Telemetry.PythonVariableFetchingCodeFailure } ) : []; ``` [src/kernels/variables/pythonVariableRequester.ts#L93](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/pythonVariableRequester.ts#L93) ```typescript { traceErrors: true, traceErrorsMessage: 'Failure in execute_request for getDataFrameRows', telemetryName: Telemetry.PythonVariableFetchingCodeFailure } ) : []; ``` [src/kernels/variables/pythonVariableRequester.ts#L126](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/pythonVariableRequester.ts#L126) ```typescript { traceErrors: true, traceErrorsMessage: 'Failure in execute_request for getVariableProperties', telemetryName: Telemetry.PythonVariableFetchingCodeFailure } ) : []; ``` [src/kernels/variables/pythonVariableRequester.ts#L154](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/pythonVariableRequester.ts#L154) ```typescript { traceErrors: true, traceErrorsMessage: 'Failure in execute_request for getVariableNamesAndTypesFromKernel', telemetryName: Telemetry.PythonVariableFetchingCodeFailure } ) : []; ``` [src/kernels/variables/pythonVariableRequester.ts#L197](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/pythonVariableRequester.ts#L197) ```typescript { traceErrors: true, traceErrorsMessage: 'Failure in execute_request for getFullVariable', telemetryName: Telemetry.PythonVariableFetchingCodeFailure } ) : []; ```
DATASCIENCE.RECOMMENT_EXTENSION ## Description Telemetry sent when we recommend installing an extension. ## Properties - /** * Extension we recommended the user to install. */ extensionId: string; - /** * `displayed` - If prompt was displayed * `dismissed` - If prompt was displayed & dismissed by the user * `ok` - If prompt was displayed & ok clicked by the user * `cancel` - If prompt was displayed & cancel clicked by the user * `doNotShowAgain` - If prompt was displayed & doNotShowAgain clicked by the user */ action: 'displayed' | 'dismissed' | 'ok' | 'cancel' | 'doNotShowAgain'; ## Locations Used [src/platform/datascience/extensionRecommendation.ts#L120](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/extensionRecommendation.ts#L120) ```typescript `[${extensionInfo.displayName}](${extensionInfo.extensionLink})`, language ); sendTelemetryEvent(Telemetry.RecommendExtension, undefined, { extensionId, action: 'displayed' }); const selection = await this.appShell.showInformationMessage( message, Common.bannerLabelYes(), ``` [src/platform/datascience/extensionRecommendation.ts#L129](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/extensionRecommendation.ts#L129) ```typescript ); switch (selection) { case Common.bannerLabelYes(): { sendTelemetryEvent(Telemetry.RecommendExtension, undefined, { extensionId, action: 'ok' }); this.commandManager.executeCommand('extension.open', extensionId).then(noop, noop); break; } ``` [src/platform/datascience/extensionRecommendation.ts#L134](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/extensionRecommendation.ts#L134) ```typescript break; } case Common.bannerLabelNo(): { sendTelemetryEvent(Telemetry.RecommendExtension, undefined, { extensionId, action: 'cancel' }); break; } case Common.doNotShowAgain(): { ``` [src/platform/datascience/extensionRecommendation.ts#L138](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/extensionRecommendation.ts#L138) ```typescript break; } case Common.doNotShowAgain(): { sendTelemetryEvent(Telemetry.RecommendExtension, undefined, { extensionId, action: 'doNotShowAgain' }); const list = this.globalMemento.get(mementoKeyToNeverPromptExtensionAgain, []); if (!list.includes(extensionId)) { list.push(extensionId); ``` [src/platform/datascience/extensionRecommendation.ts#L147](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/extensionRecommendation.ts#L147) ```typescript break; } default: sendTelemetryEvent(Telemetry.RecommendExtension, undefined, { extensionId, action: 'dismissed' }); } } } ```
DATASCIENCE.REDO ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.REFRESH_DATA_VIEWER ## Description Sent when the jupyter.refreshDataViewer command is invoked ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewer.ts#L200](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L200) ```typescript case DataViewerMessages.RefreshDataViewer: this.refreshData().ignoreErrors(); void sendTelemetryEvent(Telemetry.RefreshDataViewer); break; case DataViewerMessages.SliceEnablementStateChanged: ```
DATASCIENCE.RESTART_KERNEL_COMMAND ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/kernelCommandListener.ts#L136](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelCommandListener.ts#L136) ```typescript return; } sendTelemetryEvent(Telemetry.RestartKernelCommand); const kernel = this.kernelProvider.get(document); if (kernel) { ```
DATASCIENCE.RUN_ADD_EMPTY_CELL_TO_BOTTOM ## Description Misc ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.RUN_ALL_CELLS ## Description Run Cell Commands in Interactive Python ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L138](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L138) ```typescript this.closeDocumentDisposable?.dispose(); // NOSONAR this.updateRequiredDisposable?.dispose(); // NOSONAR } @captureTelemetry(Telemetry.RunAllCells) public async runAllCells() { const iw = await this.getActiveInteractiveWindow(); const runCellCommands = this.codeLenses.filter( ```
DATASCIENCE.RUN_ALL_CELLS_ABOVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L194](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L194) ```typescript } // Run all cells up to the cell containing this start line and character @captureTelemetry(Telemetry.RunAllCellsAbove) public async runAllCellsAbove(stopLine: number, stopCharacter: number) { const iw = await this.getActiveInteractiveWindow(); const runCellCommands = this.codeLenses.filter((c) => c.command && c.command.command === Commands.RunCell); ```
DATASCIENCE.RUN_BY_LINE ## Description Run by line events ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.RUN_BY_LINE_STEP ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.RUN_BY_LINE_STOP ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.RUN_BY_LINE_VARIABLE_HOVER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/variables/debuggerVariables.ts#L127](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/debuggerVariables.ts#L127) ```typescript // Note, full variable results isn't necessary for this call. It only really needs the variable value. const result = this.lastKnownVariables.find((v) => v.name === name); if (result && kernel?.notebookDocument.uri.fsPath.endsWith('.ipynb')) { sendTelemetryEvent(Telemetry.RunByLineVariableHover); } return result; } ```
DATASCIENCE.RUN_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.RUN_CELL_AND_ALL_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L232](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L232) ```typescript await finished; } @captureTelemetry(Telemetry.RunCellAndAllBelow) public async runCellAndAllBelow(startLine: number, startCharacter: number) { const iw = await this.getActiveInteractiveWindow(); const runCellCommands = this.codeLenses.filter((c) => c.command && c.command.command === Commands.RunCell); ```
DATASCIENCE.RUN_CHANGE_CELL_TO_CODE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L682](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L682) ```typescript }); } @captureTelemetry(Telemetry.ChangeCellToCode) public changeCellToCode() { this.applyToCells((editor, cell, _) => { return this.changeCellTo(editor, cell, 'code'); ```
DATASCIENCE.RUN_CHANGE_CELL_TO_MARKDOWN ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L675](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L675) ```typescript await this.moveCellsDirection(false); } @captureTelemetry(Telemetry.ChangeCellToMarkdown) public changeCellToMarkdown() { this.applyToCells((editor, cell, _) => { return this.changeCellTo(editor, cell, 'markdown'); ```
DATASCIENCE.RUN_CURRENT_CELL ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L339](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L339) ```typescript return this.runMatchingCell(range, false, true); } @captureTelemetry(Telemetry.RunCurrentCell) public async runCurrentCell(): Promise { if (!this.documentManager.activeTextEditor || !this.documentManager.activeTextEditor.document) { return; ```
DATASCIENCE.RUN_CURRENT_CELL_AND_ADD_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L367](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L367) ```typescript } } @captureTelemetry(Telemetry.RunCurrentCellAndAddBelow) public async runCurrentCellAndAddBelow(): Promise { if (!this.documentManager.activeTextEditor || !this.documentManager.activeTextEditor.document) { return; ```
DATASCIENCE.RUN_CURRENT_CELL_AND_ADVANCE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L349](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L349) ```typescript return this.runMatchingCell(this.documentManager.activeTextEditor.selection, false); } @captureTelemetry(Telemetry.RunCurrentCellAndAdvance) public async runCurrentCellAndAdvance() { if (!this.documentManager.activeTextEditor || !this.documentManager.activeTextEditor.document) { return; ```
DATASCIENCE.RUN_DELETE_CELLS ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L439](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L439) ```typescript } } @captureTelemetry(Telemetry.DeleteCells) public deleteCells() { const editor = this.documentManager.activeTextEditor; if (!editor || !editor.selection) { ```
DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_ABOVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L531](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L531) ```typescript editor.selections = selections; } @captureTelemetry(Telemetry.ExtendSelectionByCellAbove) public extendSelectionByCellAbove() { // This behaves similarly to excel "Extend Selection by One Cell Above". // The direction of the selection matters (i.e. where the active cursor) ```
DATASCIENCE.RUN_EXTEND_SELECTION_BY_CELL_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L597](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L597) ```typescript } } @captureTelemetry(Telemetry.ExtendSelectionByCellBelow) public extendSelectionByCellBelow() { // This behaves similarly to excel "Extend Selection by One Cell Above". // The direction of the selection matters (i.e. where the active cursor) ```
DATASCIENCE.RUN_FILE_INTERACTIVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L183](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L183) ```typescript } } @captureTelemetry(Telemetry.RunFileInteractive) public async runFileInteractive() { return this.runFileInteractiveInternal(false); } ```
DATASCIENCE.RUN_FROM_LINE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L301](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L301) ```typescript } } @captureTelemetry(Telemetry.RunFromLine) public async runFromLine(targetLine: number) { if (this.document && targetLine < this.document.lineCount) { const iw = await this.getActiveInteractiveWindow(); ```
DATASCIENCE.RUN_INSERT_CELL_ABOVE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L426](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L426) ```typescript } } @captureTelemetry(Telemetry.InsertCellAbove) public insertCellAbove() { const editor = this.documentManager.activeTextEditor; if (editor && editor.selection) { ```
DATASCIENCE.RUN_INSERT_CELL_BELOW ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L413](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L413) ```typescript } } @captureTelemetry(Telemetry.InsertCellBelow) public insertCellBelow() { const editor = this.documentManager.activeTextEditor; if (editor && editor.selection) { ```
DATASCIENCE.RUN_INSERT_CELL_BELOW_POSITION ## Description Cell Edit Commands in Interactive Python ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L405](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L405) ```typescript ); } @captureTelemetry(Telemetry.InsertCellBelowPosition) public insertCellBelowPosition() { const editor = this.documentManager.activeTextEditor; if (editor && editor.selection) { ```
DATASCIENCE.RUN_MOVE_CELLS_DOWN ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L670](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L670) ```typescript await this.moveCellsDirection(true); } @captureTelemetry(Telemetry.MoveCellsDown) public async moveCellsDown(): Promise { await this.moveCellsDirection(false); } ```
DATASCIENCE.RUN_MOVE_CELLS_UP ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L665](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L665) ```typescript } } @captureTelemetry(Telemetry.MoveCellsUp) public async moveCellsUp(): Promise { await this.moveCellsDirection(true); } ```
DATASCIENCE.RUN_SELECT_CELL ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L476](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L476) ```typescript }); } @captureTelemetry(Telemetry.SelectCell) public selectCell() { const editor = this.documentManager.activeTextEditor; if (editor && editor.selection) { ```
DATASCIENCE.RUN_SELECT_CELL_CONTENTS ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L493](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L493) ```typescript } } @captureTelemetry(Telemetry.SelectCellContents) public selectCellContents() { const editor = this.documentManager.activeTextEditor; if (!editor || !editor.selection) { ```
DATASCIENCE.RUN_SELECTION_OR_LINE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L257](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L257) ```typescript await finished; } @captureTelemetry(Telemetry.RunSelectionOrLine) public async runSelectionOrLine(activeEditor: TextEditor | undefined, text?: string | Uri) { if (this.document && activeEditor && this.fs.arePathsSame(activeEditor.document.uri, this.document.uri)) { const iw = await this.getActiveInteractiveWindow(); ```
DATASCIENCE.RUN_TO_LINE ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codewatcher.ts#L286](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L286) ```typescript } } @captureTelemetry(Telemetry.RunToLine) public async runToLine(targetLine: number) { if (this.document && targetLine > 0) { const iw = await this.getActiveInteractiveWindow(); ```
DATASCIENCE.SAVE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.SCROLLED_TO_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.SELECT_JUPYTER_INTERPRETER_Command ## Description Telemetry sent when user selects an interpreter to start jupyter server. @type {(never | undefined)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterSelectionCommand.ts#L24](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterSelectionCommand.ts#L24) ```typescript public async activate(): Promise { this.disposables.push( this.cmdManager.registerCommand('jupyter.selectJupyterInterpreter', () => { sendTelemetryEvent(Telemetry.SelectJupyterInterpreterCommand); this.service.selectInterpreter().ignoreErrors(); }) ); ```
DATASCIENCE.SELECT_JUPYTER_URI ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/commandLineSelector.ts#L36](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/commandLineSelector.ts#L36) ```typescript workspaceService.onDidChangeConfiguration(this.onDidChangeConfiguration.bind(this)); } @captureTelemetry(Telemetry.SelectJupyterURI) public selectJupyterCommandLine(file: Uri): Promise { const multiStep = this.multiStepFactory.create<{}>(); return multiStep.run(this.startSelectingCommandLine.bind(this, file), {}); ``` [src/kernels/jupyter/serverSelector.ts#L57](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/serverSelector.ts#L57) ```typescript @inject(IJupyterServerUriStorage) private readonly serverUriStorage: IJupyterServerUriStorage ) {} @captureTelemetry(Telemetry.SelectJupyterURI) @traceDecorators.error('Failed to select Jupyter Uri') public selectJupyterURI( allowLocal: boolean, ```
DATASCIENCE.SELECT_LOCAL_JUPYTER_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/controllers/vscodeNotebookController.ts#L571](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L571) ```typescript // Else VSC is just setting a kernel for a notebook after it has opened. if (existingKernel) { const telemetryEvent = isLocalConnection(this.kernelConnection) ? Telemetry.SelectLocalJupyterKernel : Telemetry.SelectRemoteJupyterKernel; sendKernelTelemetryEvent(document.uri, telemetryEvent); this.notebookApi.notebookEditors ```
DATASCIENCE.SELECT_REMOTE_JUPYTER_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/controllers/vscodeNotebookController.ts#L572](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L572) ```typescript if (existingKernel) { const telemetryEvent = isLocalConnection(this.kernelConnection) ? Telemetry.SelectLocalJupyterKernel : Telemetry.SelectRemoteJupyterKernel; sendKernelTelemetryEvent(document.uri, telemetryEvent); this.notebookApi.notebookEditors .filter((editor) => editor.document === document) ```
DATASCIENCE.SELFCERTSMESSAGECLOSE ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/errors/errorHandler.ts#L76](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/errorHandler.ts#L76) ```typescript ConfigurationTarget.Workspace ); } else if (value === closeOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageClose); } }); } else if (err instanceof VscCancellationError || err instanceof CancellationError) { ``` [src/platform/errors/errorHandler.ts#L181](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/errorHandler.ts#L181) ```typescript ConfigurationTarget.Workspace ); } else if (value === closeOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageClose); } }); return KernelInterpreterDependencyResponse.failed; ``` [src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L397](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L397) ```typescript ); return this.fetchFunction(url, this.addAllowUnauthorized(url, true, options)); } else if (value === closeOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageClose); } } throw e; ```
DATASCIENCE.SELFCERTSMESSAGEENABLED ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/errors/errorHandler.ts#L68](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/errorHandler.ts#L68) ```typescript .showErrorMessage(DataScience.jupyterSelfCertFail().format(err.message), enableOption, closeOption) .then((value) => { if (value === enableOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageEnabled); void this.configuration.updateSetting( 'allowUnauthorizedRemoteConnection', true, ``` [src/platform/errors/errorHandler.ts#L173](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/errorHandler.ts#L173) ```typescript .showErrorMessage(DataScience.jupyterSelfCertFail().format(err.message), enableOption, closeOption) .then((value) => { if (value === enableOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageEnabled); void this.configuration.updateSetting( 'allowUnauthorizedRemoteConnection', true, ``` [src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L388](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L388) ```typescript closeOption ); if (value === enableOption) { sendTelemetryEvent(Telemetry.SelfCertsMessageEnabled); await this.configService.updateSetting( 'allowUnauthorizedRemoteConnection', true, ```
DATASCIENCE.SET_JUPYTER_URI_LOCAL ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/serverSelector.ts#L69](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/serverSelector.ts#L69) ```typescript const multiStep = this.multiStepFactory.create<{}>(); return multiStep.run(this.startSelectingURI.bind(this, allowLocal), {}); } @captureTelemetry(Telemetry.SetJupyterURIToLocal) public async setJupyterURIToLocal(): Promise { await this.serverUriStorage.setUri(Settings.JupyterServerLocalLaunch); } ```
DATASCIENCE.SET_JUPYTER_URI_UI_DISPLAYED ## Description This telemetry tracks the display of the Picker for Jupyter Remote servers. ## Properties No properties for event ## Locations Used [src/kernels/jupyter/serverSelector.ts#L63](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/serverSelector.ts#L63) ```typescript allowLocal: boolean, commandSource: SelectJupyterUriCommandSource = 'nonUser' ): Promise { sendTelemetryEvent(Telemetry.SetJupyterURIUIDisplayed, undefined, { commandSource }); const multiStep = this.multiStepFactory.create<{}>(); ```
DATASCIENCE.SET_JUPYTER_URI_USER_SPECIFIED ## Description No description provided ## Properties - azure: boolean; ## Locations Used [src/kernels/jupyter/serverSelector.ts#L78](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/serverSelector.ts#L78) ```typescript await this.serverUriStorage.setUri(userURI); // Indicate setting a jupyter URI to a remote setting. Check if an azure remote or not sendTelemetryEvent(Telemetry.SetJupyterURIToUserSpecified, undefined, { azure: userURI.toLowerCase().includes('azure') }); } ```
DATASCIENCE.SHOW_DATA_EXPLORER ## Description No description provided ## Properties - rows: number | undefined; - columns: number | undefined ## Locations Used [src/platform/datascience/data-viewing/dataViewer.ts#L233](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L233) ```typescript // Log telemetry about number of rows try { sendTelemetryEvent(Telemetry.ShowDataViewer, 0, { rows: output.rowCount ? output.rowCount : 0, columns: output.columns ? output.columns.length : 0 }); ``` [src/platform/datascience/data-viewing/dataViewer.ts#L316](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewer.ts#L316) ```typescript private sendElapsedTimeTelemetry() { if (this.rowsTimer && this.pendingRowsCount === 0) { sendTelemetryEvent(Telemetry.ShowDataViewer, this.rowsTimer.elapsedTime); } } ```
DATASCIENCE.START_SHOW_DATA_EXPLORER ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewerFactory.ts#L41](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerFactory.ts#L41) ```typescript } } @captureTelemetry(Telemetry.StartShowDataViewer) public async create(dataProvider: IDataViewerDataProvider, title: string): Promise { let result: IDataViewer | undefined; ```
DATASCIENCE.SUBMITCELLFROMREPL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.UNDO ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.USER_DID_NOT_INSTALL_JUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L208](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L208) ```typescript } case DataScience.selectDifferentJupyterInterpreter(): { sendTelemetryEvent(Telemetry.UserDidNotInstallJupyter); return JupyterInterpreterDependencyResponse.selectAnotherInterpreter; } ``` [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L214](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L214) ```typescript case DataScience.pythonInteractiveHelpLink(): { this.applicationShell.openUrl(HelpLinks.PythonInteractiveHelpLink); sendTelemetryEvent(Telemetry.UserDidNotInstallJupyter); return JupyterInterpreterDependencyResponse.cancel; } ``` [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L219](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L219) ```typescript } default: sendTelemetryEvent(Telemetry.UserDidNotInstallJupyter); return JupyterInterpreterDependencyResponse.cancel; } } finally { ```
DATASCIENCE.USER_DID_NOT_INSTALL_PANDAS ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L108](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L108) ```typescript sendTelemetryEvent(Telemetry.UserInstalledPandas); } } else { sendTelemetryEvent(Telemetry.UserDidNotInstallPandas); throw new Error(DataScience.pandasRequiredForViewing()); } } ```
DATASCIENCE.USER_INSTALLED_JUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L201](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L201) ```typescript return JupyterInterpreterDependencyResponse.cancel; } } sendTelemetryEvent(Telemetry.UserInstalledJupyter); // Check if kernelspec module is something that accessible. return this.checkKernelSpecAvailability(interpreter); ```
DATASCIENCE.USER_INSTALLED_MODULE ## Description Telemetry event sent when installing a jupyter dependency @type {product: string} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.USER_INSTALLED_PANDAS ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L105](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L105) ```typescript cancellatonPromise ]); if (response === InstallerResponse.Installed) { sendTelemetryEvent(Telemetry.UserInstalledPandas); } } else { sendTelemetryEvent(Telemetry.UserDidNotInstallPandas); ```
DATASCIENCE.USER_STARTUP_CODE_FAILURE ## Description No description provided ## Properties - ename: string; - evalue: string; ## Locations Used [src/kernels/kernel.ts#L566](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L566) ```typescript await this.executeSilently(notebook, this.getUserStartupCommands(), { traceErrors: true, traceErrorsMessage: 'Error executing user defined startup code', telemetryName: Telemetry.UserStartupCodeFailure }); } ```
DATASCIENCE.VARIABLE_EXPLORER_TOGGLE ## Description No description provided ## Properties - open: boolean; - runByLine: boolean ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.VSCODE_NATIVE.CHANGE_TO_CODE ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.VSCODE_NATIVE.CHANGE_TO_MARKDOWN ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.VSCODE_NATIVE.DELETE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.VSCODE_NATIVE.INSERT_CELL ## Description Native notebooks events ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DATASCIENCE.VSCODE_NATIVE.MOVE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.ACTIVE_INTERPRETER_LISTING_PERF ## Description No description provided ## Properties - /** * Whether this is the first time in the session. * (fetching kernels first time in the session is slower, later its cached). * This is a generic property supported for all telemetry (sent by decorators). */ firstTime?: boolean; ## Locations Used [src/platform/api/pythonApi.ts#L289](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/pythonApi.ts#L289) ```typescript } } private workspaceCachedActiveInterpreter = new Map>(); @captureTelemetry(Telemetry.ActiveInterpreterListingPerf) @traceDecorators.verbose('Get Active Interpreter', TraceOptions.Arguments | TraceOptions.BeforeCall) public getActiveInterpreter(resource?: Uri): Promise { this.hookupOnDidChangeInterpreterEvent(); ```
DS_INTERNAL.ASK_USER_FOR_NEW_KERNEL_JUPYTER ## Description Sent when a jupyter session fails to start and we ask the user for a new kernel ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.CELL_COUNT ## Description No description provided ## Properties - count: number ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.CODE_LENS_ACQ_TIME ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/editor-integration/codelensprovider.ts#L60](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codelensprovider.ts#L60) ```typescript // On shutdown send how long on average we spent parsing code lens if (this.totalGetCodeLensCalls > 0) { sendTelemetryEvent( Telemetry.CodeLensAverageAcquisitionTime, this.totalExecutionTimeInMs / this.totalGetCodeLensCalls ); } ```
DS_INTERNAL.COMMAND_EXECUTED ## Description Telemetry sent when a command is executed. ## Properties No properties for event ## Locations Used [src/platform/common/application/commandManager.ts#L37](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/application/commandManager.ts#L37) ```typescript return commands.registerCommand( command, (...args: U) => { sendTelemetryEvent(Telemetry.CommandExecuted, undefined, { command: command as string }); if (thisArg) { return callback.call(thisArg, ...(args as any)); } else { ``` [src/platform/common/application/commandManager.ts#L71](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/application/commandManager.ts#L71) ```typescript return commands.registerTextEditorCommand( command, (textEditor: TextEditor, edit: TextEditorEdit, ...args: any[]) => { sendTelemetryEvent(Telemetry.CommandExecuted, undefined, { command: command as string }); if (thisArg) { return callback.call(thisArg, textEditor, edit, ...args); } else { ``` [src/platform/common/application/commandManager.ts#L102](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/application/commandManager.ts#L102) ```typescript U extends ICommandNameArgumentTypeMapping[E] >(command: E, ...rest: U): Thenable { if (!commandsToIgnore.has(command)) { sendTelemetryEvent(Telemetry.CommandExecuted, undefined, { command: command as string }); } return commands.executeCommand(command, ...rest); } ```
DS_INTERNAL.COMPLETION_TIME_FROM_JUPYTER ## Description Telemetry event sent to capture total time taken for completions list to be provided by Jupyter. This is used to compare against time taken by LS. @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.COMPLETION_TIME_FROM_LS ## Description Telemetry event sent to capture total time taken for completions list to be provided by LS. This is used to compare against time taken by Jupyter. @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.CONNECTFAILEDJUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L178](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L178) ```typescript ); } } else { sendTelemetryEvent(Telemetry.ConnectFailedJupyter, undefined, undefined, err, true); throw WrappedError.from( DataScience.jupyterNotebookConnectFailed().format(connection.baseUrl, err), err ```
DS_INTERNAL.CONNECTLOCALJUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L139](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L139) ```typescript traceInfo(`Connection complete server`); sendTelemetryEvent( isLocalConnection ? Telemetry.ConnectLocalJupyter : Telemetry.ConnectRemoteJupyter ); return result; } catch (err) { ```
DS_INTERNAL.CONNECTREMOTEFAILEDJUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L165](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L165) ```typescript // Something else went wrong if (!isLocalConnection) { sendTelemetryEvent(Telemetry.ConnectRemoteFailedJupyter, undefined, undefined, err, true); // Check for the self signed certs error specifically if (err.message.indexOf('reason: self signed certificate') >= 0) { ```
DS_INTERNAL.CONNECTREMOTEJUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L139](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L139) ```typescript traceInfo(`Connection complete server`); sendTelemetryEvent( isLocalConnection ? Telemetry.ConnectLocalJupyter : Telemetry.ConnectRemoteJupyter ); return result; } catch (err) { ```
DS_INTERNAL.CONNECTREMOTEJUPYTER_VIA_LOCALHOST ## Description Connecting to an existing Jupyter server, but connecting to localhost. ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L128](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L128) ```typescript connection = await this.startOrConnect(options, cancelToken); if (!connection.localLaunch && LocalHosts.includes(connection.hostName.toLowerCase())) { sendTelemetryEvent(Telemetry.ConnectRemoteJupyterViaLocalHost); } // Create a server tha t we will then attempt to connect to. result = this.serviceContainer.get(INotebookServer); ```
DS_INTERNAL.CONNECTREMOTESELFCERTFAILEDJUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L169](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L169) ```typescript // Check for the self signed certs error specifically if (err.message.indexOf('reason: self signed certificate') >= 0) { sendTelemetryEvent(Telemetry.ConnectRemoteSelfCertFailedJupyter); throw new JupyterSelfCertsError(connection.baseUrl); } else { throw WrappedError.from( ```
DS_INTERNAL.ERROR_START_RAWKERNEL_WITHOUT_INTERPRETER ## Description Whether we've attempted to start a raw Python kernel without any interpreter information. If we don't detect such telemetry in a few months, then we can remove this along with the temporary code associated with this telemetry. ## Properties - /** * Indicates whether the python extension is installed. * If we send telemetry fro this & this is `true`, then we have a bug. * If its `false`, then we can ignore this telemetry. */ pythonExtensionInstalled: boolean; ## Locations Used [src/kernels/raw/session/hostRawNotebookProvider.ts#L115](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/hostRawNotebookProvider.ts#L115) ```typescript kernelConnection.kind === 'startUsingLocalKernelSpec' ) { if (!kernelConnection.interpreter) { sendTelemetryEvent(Telemetry.AttemptedToLaunchRawKernelWithoutInterpreter, undefined, { pythonExtensionInstalled: this.extensionChecker.isPythonExtensionInstalled }); } ```
DS_INTERNAL.EXECUTE_CELL_PERCEIVED_COLD ## Description Telemetry sent to capture first time execution of a cell. If `notebook = true`, this its telemetry for native editor/notebooks. ## Properties No properties for event ## Locations Used [src/notebooks/execution/cellExecution.ts#L435](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/cellExecution.ts#L435) ```typescript const props = { notebook: true }; if (!CellExecution.sentExecuteCellTelemetry) { CellExecution.sentExecuteCellTelemetry = true; sendTelemetryEvent(Telemetry.ExecuteCellPerceivedCold, this.stopWatchForTelemetry.elapsedTime, props); } else { sendTelemetryEvent(Telemetry.ExecuteCellPerceivedWarm, this.stopWatchForTelemetry.elapsedTime, props); } ``` [src/interactive-window/editor-integration/codewatcher.ts#L1064](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L1064) ```typescript if (runningStopWatch) { if (!CodeWatcher.sentExecuteCellTelemetry) { CodeWatcher.sentExecuteCellTelemetry = true; sendTelemetryEvent(Telemetry.ExecuteCellPerceivedCold, runningStopWatch.elapsedTime); } else { sendTelemetryEvent(Telemetry.ExecuteCellPerceivedWarm, runningStopWatch.elapsedTime); } ```
DS_INTERNAL.EXECUTE_CELL_PERCEIVED_WARM ## Description Telemetry sent to capture subsequent execution of a cell. If `notebook = true`, this its telemetry for native editor/notebooks. ## Properties No properties for event ## Locations Used [src/notebooks/execution/cellExecution.ts#L437](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/cellExecution.ts#L437) ```typescript CellExecution.sentExecuteCellTelemetry = true; sendTelemetryEvent(Telemetry.ExecuteCellPerceivedCold, this.stopWatchForTelemetry.elapsedTime, props); } else { sendTelemetryEvent(Telemetry.ExecuteCellPerceivedWarm, this.stopWatchForTelemetry.elapsedTime, props); } } private canExecuteCell() { ``` [src/interactive-window/editor-integration/codewatcher.ts#L1066](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/codewatcher.ts#L1066) ```typescript CodeWatcher.sentExecuteCellTelemetry = true; sendTelemetryEvent(Telemetry.ExecuteCellPerceivedCold, runningStopWatch.elapsedTime); } else { sendTelemetryEvent(Telemetry.ExecuteCellPerceivedWarm, runningStopWatch.elapsedTime); } } } ```
DS_INTERNAL.FAILED_TO_UPDATE_JUPYTER_KERNEL_SPEC ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/jupyterKernelService.ts#L203](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterKernelService.ts#L203) ```typescript await this.fs.writeLocalFile(kernelSpecFilePath, JSON.stringify(contents, undefined, 4)); } catch (ex) { // eslint-disable-next-line @typescript-eslint/no-explicit-any sendTelemetryEvent(Telemetry.FailedToUpdateKernelSpec, undefined, undefined, ex as any, true); throw ex; } if (cancelToken.isCancellationRequested) { ``` [src/kernels/jupyter/jupyterKernelService.ts#L343](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterKernelService.ts#L343) ```typescript await this.fs.writeLocalFile(kernelSpecFilePath, JSON.stringify(specModel, undefined, 2)); } catch (ex) { // eslint-disable-next-line @typescript-eslint/no-explicit-any sendTelemetryEvent(Telemetry.FailedToUpdateKernelSpec, undefined, undefined, ex as any, true); throw ex; } } ```
DS_INTERNAL.FIND_JUPYTER_COMMAND ## Description No description provided ## Properties - command: string ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.FIND_JUPYTER_KERNEL_SPEC ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.FIND_KERNEL_FOR_LOCAL_CONNECTION ## Description Telemetry event sent once done searching for kernel spec and interpreter for a local connection. @type {{ kernelSpecFound: boolean; interpreterFound: boolean; }} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.GET_ACTIVATED_ENV_VARIABLES ## Description Used to capture time taken to get enviornment variables for a python environment. Also lets us know whether it worked or not. ## Properties No properties for event ## Locations Used [src/platform/common/process/environmentActivationService.ts#L239](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L239) ```typescript ]); const envType = interpreter.envType; sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'python', ``` [src/platform/common/process/environmentActivationService.ts#L291](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L291) ```typescript interpreter?.path )}, shell cannot be determined.` ); sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, 0, { envType, pythonEnvType: envType, source: 'jupyter', ``` [src/platform/common/process/environmentActivationService.ts#L334](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L334) ```typescript const stopWatch = new StopWatch(); try { const env = await this.getCondaEnvVariables(resource, interpreter); sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'jupyter', ``` [src/platform/common/process/environmentActivationService.ts#L343](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L343) ```typescript }); return env; } catch (ex) { sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'jupyter', ``` [src/platform/common/process/environmentActivationService.ts#L387](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L387) ```typescript const processService = await processServicePromise; const hasCustomEnvVars = Object.keys(customEnvVars).length; if (!activationCommands || activationCommands.length === 0) { sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'jupyter', ``` [src/platform/common/process/environmentActivationService.ts#L479](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L479) ```typescript } else if (returnedEnv) { delete returnedEnv[PYTHON_WARNINGS]; } sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'jupyter', ``` [src/platform/common/process/environmentActivationService.ts#L489](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/environmentActivationService.ts#L489) ```typescript return returnedEnv; } catch (e) { sendTelemetryEvent(Telemetry.GetActivatedEnvironmentVariables, stopWatch.elapsedTime, { envType, pythonEnvType: envType, source: 'jupyter', ```
DS_INTERNAL.GET_PASSWORD_FAILURE ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L258](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L258) ```typescript const requestHeaders = { Cookie: cookieString, 'X-XSRFToken': xsrfCookie }; return { requestHeaders }; } else { sendTelemetryEvent(Telemetry.GetPasswordFailure); return undefined; } } ```
DS_INTERNAL.GET_PASSWORD_SUCCESS ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L253](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterPasswordConnect.ts#L253) ```typescript // If we found everything return it all back if not, undefined as partial is useless if (xsrfCookie && sessionCookieName && sessionCookieValue) { sendTelemetryEvent(Telemetry.GetPasswordSuccess); const cookieString = this.getSessionCookieString(xsrfCookie, sessionCookieName, sessionCookieValue); const requestHeaders = { Cookie: cookieString, 'X-XSRFToken': xsrfCookie }; return { requestHeaders }; ```
DS_INTERNAL.GET_PREFERRED_KERNEL_PERF ## Description Total time taken to get the preferred kernel for notebook. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.HASHED_NOTEBOOK_OUTPUT_MIME_TYPE_PERF ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.HASHED_OUTPUT_MIME_TYPE ## Description No description provided ## Properties - /** * Hash of the cell output mimetype * * @type {string} */ hashedName: string; - hasText: boolean; - hasLatex: boolean; - hasHtml: boolean; - hasSvg: boolean; - hasXml: boolean; - hasJson: boolean; - hasImage: boolean; - hasGeo: boolean; - hasPlotly: boolean; - hasVega: boolean; - hasWidget: boolean; - hasJupyter: boolean; - hasVnd: boolean; ## Locations Used [src/kernels/jupyter/jupyterCellOutputMimeTypeTracker.ts#L154](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterCellOutputMimeTypeTracker.ts#L154) ```typescript hasJupyter: lowerMimeType.includes('jupyter'), hasVnd: lowerMimeType.includes('vnd') }; sendTelemetryEvent(Telemetry.HashedCellOutputMimeType, undefined, props); } } ```
DS_INTERNAL.HASHED_OUTPUT_MIME_TYPE_PERF ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/jupyterCellOutputMimeTypeTracker.ts#L120](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterCellOutputMimeTypeTracker.ts#L120) ```typescript this.pendingChecks.set(id, setTimeout(check, 5000)); } @captureTelemetry(Telemetry.HashedCellOutputMimeTypePerf) private checkCell(cell: NotebookCell) { this.pendingChecks.delete(cell.document.uri.toString()); this.getCellOutputMimeTypes(cell).forEach(this.sendTelemetry.bind(this)); ```
DS_INTERNAL.HIDDEN_EXECUTION_TIME ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.INTERACTIVE_FILE_TOOLTIPS_PERF ## Description Capture telemetry re: how long returning a tooltip takes ## Properties - // Result is null if user signalled cancellation or if we timed out isResultNull: boolean; ## Locations Used [src/interactive-window/editor-integration/hoverProvider.ts#L79](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/editor-integration/hoverProvider.ts#L79) ```typescript const timeoutHandler = sleep(300).then(() => undefined); this.stopWatch.reset(); const result = await Promise.race([timeoutHandler, this.getVariableHover(document, position, token)]); sendTelemetryEvent(Telemetry.InteractiveFileTooltipsPerf, this.stopWatch.elapsedTime, { isResultNull: !!result }); return result; ```
DS_INTERNAL.INTERPRETER_LISTING_PERF ## Description Time taken to list the Python interpreters. ## Properties No properties for event ## Locations Used [src/platform/api/pythonApi.ts#L267](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/pythonApi.ts#L267) ```typescript return this.didChangeInterpreters.event; } @captureTelemetry(Telemetry.InterpreterListingPerf) @traceDecorators.verbose('Get Interpreters', TraceOptions.Arguments | TraceOptions.BeforeCall) public getInterpreters(resource?: Uri): Promise { this.hookupOnDidChangeInterpreterEvent(); ```
DS_INTERNAL.INTERRUPT_JUPYTER_TIME ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/execution/kernelExecution.ts#L195](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L195) ```typescript return newCellExecutionQueue; } @captureTelemetry(Telemetry.Interrupt) @captureTelemetry(Telemetry.InterruptJupyterTime) private async interruptExecution( session: IJupyterSession, pendingCells: Promise ```
DS_INTERNAL.INVALID_KERNEL_USED ## Description Telemetry event sent when a kernel picked crashes on startup @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/platform/errors/jupyterInvalidKernelError.ts#L18](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/jupyterInvalidKernelError.ts#L18) ```typescript DataScience.kernelInvalid().format(getDisplayNameOrNameOfKernelConnection(kernelConnectionMetadata)), kernelConnectionMetadata ); sendTelemetryEvent(Telemetry.KernelInvalid); } } ```
DS_INTERNAL.IPYWIDGET_DISCOVERED ## Description Telemetry event sent with name of a Widget found. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.IPYWIDGET_DISCOVERY_ERRORED ## Description Something went wrong in looking for a widget. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSource.ts#L220](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSource.ts#L220) ```typescript widgetSource = await this.scriptProvider.getWidgetScriptSource(moduleName, moduleVersion); } catch (ex) { traceError('Failed to get widget source due to an error', ex); sendTelemetryEvent(Telemetry.HashedIPyWidgetScriptDiscoveryError); } finally { traceInfo( `${ConsoleForegroundColors.Green}Script for ${moduleName}, is ${widgetSource.scriptUri} from ${widgetSource.source}` ```
DS_INTERNAL.IPYWIDGET_LOAD_DISABLED ## Description Telemetry event sent when an loading of 3rd party ipywidget JS scripts from 3rd party source has been disabled. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.IPYWIDGET_LOAD_FAILURE ## Description Telemetry event sent when an ipywidget module fails to load. Module name is hashed. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L164](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L164) ```typescript } traceError(`Widget load failure ${errorMessage}`, payload); sendTelemetryEvent(Telemetry.IPyWidgetLoadFailure, 0, { isOnline: payload.isOnline, moduleHash: getTelemetrySafeHashedString(payload.moduleName), moduleVersion: payload.moduleVersion, ```
DS_INTERNAL.IPYWIDGET_LOAD_SUCCESS ## Description Telemetry event sent when an ipywidget module loads. Module name is hashed. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L123](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L123) ```typescript private sendLoadSucceededTelemetry(payload: LoadIPyWidgetClassLoadAction) { try { sendTelemetryEvent(Telemetry.IPyWidgetLoadSuccess, 0, { moduleHash: getTelemetrySafeHashedString(payload.moduleName), moduleVersion: payload.moduleVersion }); ```
DS_INTERNAL.IPYWIDGET_OVERHEAD ## Description Telemetry event sent to indicate the overhead of syncing the kernel with the UI. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/ipyWidgetMessageDispatcher.ts#L497](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/ipyWidgetMessageDispatcher.ts#L497) ```typescript } private sendOverheadTelemetry() { sendTelemetryEvent(Telemetry.IPyWidgetOverhead, 0, { totalOverheadInMs: this.totalWaitTime, numberOfMessagesWaitedOn: this.totalWaitedMessages, averageWaitTime: this.totalWaitTime / this.totalWaitedMessages, ```
DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN ## Description Telemetry sent when we prompt user to use a CDN for IPyWidget scripts. This is always sent when we display a prompt. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L211](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L211) ```typescript return this.configurationPromise.promise; } this.configurationPromise = createDeferred(); sendTelemetryEvent(Telemetry.IPyWidgetPromptToUseCDN); const selection = await this.appShell.showInformationMessage( DataScience.useCDNForWidgets(), Common.ok(), ```
DS_INTERNAL.IPYWIDGET_PROMPT_TO_USE_CDN_SELECTION ## Description Telemetry sent when user does something with the prompt displayed to user about using CDN for IPyWidget scripts. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L241](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L241) ```typescript break; } sendTelemetryEvent(Telemetry.IPyWidgetPromptToUseCDNSelection, undefined, { selection: selectionForTelemetry }); this.configurationPromise.resolve(); } private async updateScriptSources(scriptSources: WidgetCDNs[]) { ```
DS_INTERNAL.IPYWIDGET_RENDER_FAILURE ## Description Telemetry event sent when the widget render function fails (note, this may not be sufficient to capture all failures). ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L187](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L187) ```typescript private sendRenderFailureTelemetry(payload: Error) { try { traceError('Error rendering a widget: ', payload); sendTelemetryEvent(Telemetry.IPyWidgetRenderFailure); } catch { // Do nothing on a failure } ```
DS_INTERNAL.IPYWIDGET_TEST_AVAILABILITY_ON_CDN ## Description Total time taken to discover a widget script on CDN. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.IPYWIDGET_TEST_AVAILABILITY_ON_LOCAL ## Description Total time taken to discover all IPyWidgets on disc. This is how long it takes to discover a single widget on disc (from python environment). ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/localWidgetScriptSourceProvider.ts#L53](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/localWidgetScriptSourceProvider.ts#L53) ```typescript } return (this.cachedWidgetScripts = this.getWidgetScriptSourcesWithoutCache()); } @captureTelemetry(Telemetry.DiscoverIPyWidgetNamesLocalPerf) private async getWidgetScriptSourcesWithoutCache(): Promise { const sysPrefix = await this.getSysPrefixOfKernel(); if (!sysPrefix) { ```
DS_INTERNAL.IPYWIDGET_UNHANDLED_MESSAGE ## Description Telemetry event sent when the widget tries to send a kernel message but nothing was listening ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L206](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L206) ```typescript this.jupyterOutput.appendLine( DataScience.unhandledMessage().format(msg.header.msg_type, JSON.stringify(msg.content)) ); sendTelemetryEvent(Telemetry.IPyWidgetUnhandledMessage, undefined, { msg_type: msg.header.msg_type }); } catch { // Don't care if this doesn't get logged } ```
DS_INTERNAL.IPYWIDGET_USED_BY_USER ## Description Telemetry event sent with name of a Widget that is used. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L107](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/ipyWidgetScriptSourceProvider.ts#L107) ```typescript } } sendTelemetryEvent(Telemetry.HashedIPyWidgetNameUsed, undefined, { hashedName: getTelemetrySafeHashedString(found.moduleName), source: found.source, cdnSearched: this.configuredScriptSources.length > 0 ```
DS_INTERNAL.IPYWIDGET_WIDGET_VERSION_NOT_SUPPORTED_LOAD_FAILURE ## Description Telemetry event sent when an ipywidget version that is not supported is used & we have trapped this and warned the user abou it. ## Properties No properties for event ## Locations Used [src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L176](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/ipywidgets-message-coordination/commonMessageCoordinator.ts#L176) ```typescript } private sendUnsupportedWidgetVersionFailureTelemetry(payload: NotifyIPyWidgeWidgetVersionNotSupportedAction) { try { sendTelemetryEvent(Telemetry.IPyWidgetWidgetVersionNotSupportedLoadFailure, 0, { moduleHash: getTelemetrySafeHashedString(payload.moduleName), moduleVersion: payload.moduleVersion }); ```
DS_INTERNAL.JUPYTER_CREATING_NOTEBOOK ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/liveshare/hostJupyterServer.ts#L194](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/liveshare/hostJupyterServer.ts#L194) ```typescript this.throwIfDisposedOrCancelled(cancelToken); const baseUrl = this.connection?.baseUrl || ''; this.logRemoteOutput(DataScience.createdNewNotebook().format(baseUrl)); sendKernelTelemetryEvent(resource, Telemetry.JupyterCreatingNotebook, stopWatch.elapsedTime); return notebook; } catch (ex) { sendKernelTelemetryEvent( ``` [src/kernels/jupyter/launcher/liveshare/hostJupyterServer.ts#L199](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/liveshare/hostJupyterServer.ts#L199) ```typescript } catch (ex) { sendKernelTelemetryEvent( resource, Telemetry.JupyterCreatingNotebook, stopWatch.elapsedTime, undefined, // eslint-disable-next-line @typescript-eslint/no-explicit-any ```
DS_INTERNAL.JUPYTER_CUSTOM_COMMAND_LINE ## Description Telemetry event sent to when user customizes the jupyter command line @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/commandLineSelector.ts#L93](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/commandLineSelector.ts#L93) ```typescript private async setJupyterCommandLine(val: string): Promise { if (val) { sendTelemetryEvent(Telemetry.JupyterCommandLineNonDefault); } const split = parseArgsStringToArgv(val); await this.configuration.updateSetting( ```
DS_INTERNAL.JUPYTER_IDLE_TIMEOUT ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/errors/jupyterWaitForIdleError.ts#L14](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/errors/jupyterWaitForIdleError.ts#L14) ```typescript export class JupyterWaitForIdleError extends BaseKernelError { constructor(kernelConnectionMetadata: KernelConnectionMetadata) { super('timeout', DataScience.jupyterLaunchTimedOut(), kernelConnectionMetadata); sendTelemetryEvent(Telemetry.SessionIdleTimeout); } } ```
DS_INTERNAL.JUPYTER_INSTALL_FAILED ## Description Telemetry event sent if there's an error installing a jupyter required dependency @type { product: string } @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.JUPYTER_INTALLED_BUT_NO_KERNELSPEC_MODULE ## Description Telemetry event sent when jupyter has been found in interpreter but we cannot find kernelspec. @type {(never | undefined)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L329](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L329) ```typescript return JupyterInterpreterDependencyResponse.ok; } // Indicate no kernel spec module. sendTelemetryEvent(Telemetry.JupyterInstalledButNotKernelSpecModule); if (Cancellation.isCanceled(token)) { return JupyterInterpreterDependencyResponse.cancel; } ```
DS_INTERNAL.JUPYTER_REGISTER_INTERPRETER_AS_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/jupyterKernelService.ts#L149](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterKernelService.ts#L149) ```typescript */ // eslint-disable-next-line // eslint-disable-next-line complexity @captureTelemetry(Telemetry.RegisterInterpreterAsKernel, undefined, true) @traceDecorators.error('Failed to register an interpreter as a kernel') // eslint-disable-next-line private async registerKernel( ```
DS_INTERNAL.JUPYTER_START_TIMEOUT ## Description No description provided ## Properties - /** * Total time spent in attempting to start and connect to jupyter before giving up. * * @type {number} */ timeout: number; ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.JUPYTERSTARTUPCOST ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/jupyterExecution.ts#L241](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/jupyterExecution.ts#L241) ```typescript } // eslint-disable-next-line @captureTelemetry(Telemetry.StartJupyter) private async startNotebookServer( resource: Resource, useDefaultConfig: boolean, ```
DS_INTERNAL.KERNEL_COUNT ## Description Misc ## Properties No properties for event ## Locations Used [src/telemetry/kernelTelemetry.ts#L53](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/kernelTelemetry.ts#L53) ```typescript }); trackKernelResourceInformation(resource, counters); if (stopWatch) { sendKernelTelemetryEvent(resource, Telemetry.KernelCount, stopWatch.elapsedTime, counters); } } ```
DS_INTERNAL.KERNEL_ENUMERATION ## Description Telemetry event sent to every time a kernel enumeration is done @type {...} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.KERNEL_FINDER_PERF ## Description Total time taken to find a kernel on disc or on a remote machine. ## Properties No properties for event ## Locations Used [src/kernels/raw/finder/localKernelFinder.ts#L55](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localKernelFinder.ts#L55) ```typescript @inject(IFileSystem) private readonly fs: IFileSystem ) {} @traceDecorators.verbose('Find kernel spec', TraceOptions.BeforeCall | TraceOptions.Arguments) @captureTelemetry(Telemetry.KernelFinderPerf) public async findKernel( resource: Resource, notebookMetadata?: nbformat.INotebookMetadata, ``` [src/kernels/raw/finder/remoteKernelFinder.ts#L60](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/remoteKernelFinder.ts#L60) ```typescript ); } @traceDecorators.verbose('Find remote kernel spec') @captureTelemetry(Telemetry.KernelFinderPerf) @captureTelemetry(Telemetry.KernelListingPerf, { kind: 'remote' }) public async findKernel( resource: Resource, ```
DS_INTERNAL.KERNEL_LAUNCHER_PERF ## Description Total time taken to Launch a raw kernel. ## Properties No properties for event ## Locations Used [src/kernels/raw/launcher/kernelLauncher.ts#L113](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/launcher/kernelLauncher.ts#L113) ```typescript // Should be available now, wait with a timeout return await this.launchProcess(kernelConnectionMetadata, resource, workingDirectory, timeout, cancelToken); })(); sendKernelTelemetryWhenDone(resource, Telemetry.KernelLauncherPerf, promise); return promise; } ```
DS_INTERNAL.KERNEL_LISTING_PERF ## Description No description provided ## Properties - /** * Whether this is the first time in the session. * (fetching kernels first time in the session is slower, later its cached). * This is a generic property supported for all telemetry (sent by decorators). */ firstTime?: boolean; - /** * Whether this telemetry is for listing of all kernels or just python or just non-python. * (fetching kernels first time in the session is slower, later its cached). */ kind: 'remote' | 'local' | 'localKernelSpec' | 'localPython'; ## Locations Used [src/kernels/raw/finder/localKnownPathKernelSpecFinder.ts#L45](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localKnownPathKernelSpecFinder.ts#L45) ```typescript /** * @param {boolean} includePythonKernels Include/exclude Python kernels in the result. */ @captureTelemetry(Telemetry.KernelListingPerf, { kind: 'localKernelSpec' }) public async listKernelSpecs( includePythonKernels: boolean, cancelToken?: CancellationToken ``` [src/kernels/raw/finder/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L74](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localPythonAndRelatedNonPythonKernelSpecFinder.ts#L74) ```typescript ) { super(fs, workspaceService, extensionChecker, globalState); } @captureTelemetry(Telemetry.KernelListingPerf, { kind: 'localPython' }) public async listKernelSpecs(resource: Resource, ignoreCache?: boolean, cancelToken?: CancellationToken) { // Get an id for the workspace folder, if we don't have one, use the fsPath of the resource const workspaceFolderId = ``` [src/kernels/raw/finder/localKernelFinder.ts#L191](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localKernelFinder.ts#L191) ```typescript return preferredKernel; } @captureTelemetry(Telemetry.KernelListingPerf, { kind: 'local' }) private async listKernelsWithoutCache( resource: Resource, cancelToken?: CancellationToken ``` [src/kernels/raw/finder/remoteKernelFinder.ts#L61](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/remoteKernelFinder.ts#L61) ```typescript } @traceDecorators.verbose('Find remote kernel spec') @captureTelemetry(Telemetry.KernelFinderPerf) @captureTelemetry(Telemetry.KernelListingPerf, { kind: 'remote' }) public async findKernel( resource: Resource, connInfo: INotebookProviderConnection | undefined, ```
DS_INTERNAL.KERNEL_NOT_INSTALLED ## Description No description provided ## Properties - action: 'displayed'; - // Message displayed. /** * Language found in the notebook if a known language. Otherwise 'unknown' */ language: string; ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.KERNEL_PROVIDER_PERF ## Description Total time taken to list kernels for VS Code. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.KERNEL_REGISTER_FAILED ## Description Telemetry event sent to indicate registering a kernel with jupyter failed. @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.KERNEL_SPEC_NOT_FOUND ## Description Telemetry event sent to indicate 'jupyter kernelspec' is not possible. @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L305](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L305) ```typescript .then(() => true) .catch((e) => { traceError(`Kernel spec not found: `, e); sendTelemetryEvent(Telemetry.KernelSpecNotFound); return false; }); } ```
DS_INTERNAL.LOCAL_KERNEL_SPEC_COUNT ## Description No description provided ## Properties - /** * Number of kernel specs. */ count: number; ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.NATIVE_VARIABLE_VIEW_LOADED ## Description Native variable view events ## Properties No properties for event ## Locations Used [src/platform/datascience/variablesView/variableView.ts#L84](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/variablesView/variableView.ts#L84) ```typescript this.dataViewerChecker = new DataViewerChecker(configuration, appShell); } @captureTelemetry(Telemetry.NativeVariableViewLoaded) public async load(codeWebview: vscodeWebviewView) { await super.loadWebview(process.cwd(), codeWebview).catch(traceError); ```
DS_INTERNAL.NATIVE_VARIABLE_VIEW_MADE_VISIBLE ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/variablesView/variableView.ts#L143](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/variablesView/variableView.ts#L143) ```typescript // I've we've been made visible, make sure that we are updated if (visible) { sendTelemetryEvent(Telemetry.NativeVariableViewMadeVisible); // If there is an active execution count, update the view with that info // Keep the variables up to date if document has run cells while the view was not visible if (this.notebookWatcher.activeNotebookExecutionCount !== undefined) { ```
DS_INTERNAL.NATIVE.NOTEBOOK_OPEN_COUNT ## Description No description provided ## Properties - count: number ## Locations Used [src/notebooks/notebookUsageTracker.ts#L45](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/notebookUsageTracker.ts#L45) ```typescript public dispose() { // Send a bunch of telemetry if (this.openedNotebookCount) { sendTelemetryEvent(Telemetry.NotebookOpenCount, undefined, { count: this.openedNotebookCount }); } if (this.executedNotebooksIndexedByUri.size) { sendTelemetryEvent(Telemetry.NotebookRunCount, undefined, { ```
DS_INTERNAL.NATIVE.NOTEBOOK_OPEN_TIME ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.NATIVE.NOTEBOOK_RUN_COUNT ## Description No description provided ## Properties - count: number ## Locations Used [src/notebooks/notebookUsageTracker.ts#L48](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/notebookUsageTracker.ts#L48) ```typescript sendTelemetryEvent(Telemetry.NotebookOpenCount, undefined, { count: this.openedNotebookCount }); } if (this.executedNotebooksIndexedByUri.size) { sendTelemetryEvent(Telemetry.NotebookRunCount, undefined, { count: this.executedNotebooksIndexedByUri.size }); } ```
DS_INTERNAL.NATIVE.OPEN_NOTEBOOK_FAILURE ## Description Telemetry event fired if a failure occurs loading a notebook ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.NEW_FILE_USED_IN_INTERACTIVE ## Description Telemetry event sent when a user runs the interactive window with a new file @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.NUMBER_OF_REMOTE_KERNEL_IDS_SAVED ## Description When users connect to a remote kernel, we store the kernel id so we can re-connect to that when user opens the same notebook. We only store the last 100. Count is the number of entries saved in the list. ## Properties - count: number ## Locations Used [src/kernels/raw/finder/preferredRemoteKernelIdProvider.ts#L59](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/preferredRemoteKernelIdProvider.ts#L59) ```typescript } // Prune list if too big sendTelemetryEvent(Telemetry.NumberOfSavedRemoteKernelIds, undefined, { count: list.length }); while (list.length > MaximumKernelIdListSize) { list.shift(); } ```
DS_INTERNAL.PERCEIVED_JUPYTER_STARTUP_NOTEBOOK ## Description Time take for jupyter server to start and be ready to run first user cell. ## Properties No properties for event ## Locations Used [src/kernels/kernel.ts#L349](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L349) ```typescript // Setup telemetry if (!this.perceivedJupyterStartupTelemetryCaptured) { this.perceivedJupyterStartupTelemetryCaptured = true; sendTelemetryEvent(Telemetry.PerceivedJupyterStartupNotebook, stopWatch.elapsedTime); executionPromise.finally(() => sendTelemetryEvent(Telemetry.StartExecuteNotebookCellPerceivedCold, stopWatch.elapsedTime) ); ``` [src/kernels/kernel.ts#L438](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L438) ```typescript sendKernelTelemetryEvent( this.resourceUri, Telemetry.PerceivedJupyterStartupNotebook, stopWatch.elapsedTime ); this.notebook = notebook; ```
DS_INTERNAL.PREFERRED_KERNEL ## Description Telemetry sent when we have attempted to find the preferred kernel. ## Properties No properties for event ## Locations Used [src/kernels/raw/finder/localKernelFinder.ts#L92](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localKernelFinder.ts#L92) ```typescript // Find the preferred kernel index from the list. const preferred = findPreferredKernel(kernels, resource, notebookMetadata, preferredInterpreter, undefined); sendTelemetryEvent(Telemetry.PreferredKernel, undefined, { result: preferred ? 'found' : 'notfound', resourceType, language: telemetrySafeLanguage, ``` [src/kernels/raw/finder/localKernelFinder.ts#L104](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/localKernelFinder.ts#L104) ```typescript } } catch (ex) { sendTelemetryEvent( Telemetry.PreferredKernel, undefined, { result: 'failed', ``` [src/kernels/raw/finder/remoteKernelFinder.ts#L85](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/remoteKernelFinder.ts#L85) ```typescript undefined, this.preferredRemoteKernelIdProvider ); sendTelemetryEvent(Telemetry.PreferredKernel, undefined, { result: preferred ? 'found' : 'notfound', resourceType, language: telemetrySafeLanguage ``` [src/kernels/raw/finder/remoteKernelFinder.ts#L93](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/finder/remoteKernelFinder.ts#L93) ```typescript return preferred; } catch (ex) { sendTelemetryEvent( Telemetry.PreferredKernel, undefined, { result: 'failed', resourceType, language: telemetrySafeLanguage }, // eslint-disable-next-line @typescript-eslint/no-explicit-any ```
DS_INTERNAL.PYTHON_EXTENSION_NOT_INSTALLED ## Description No description provided ## Properties - action: | 'displayed' // Message displayed. | 'dismissed' // user dismissed the message. | 'download'; ## Locations Used [src/platform/api/pythonApi.ts#L169](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/pythonApi.ts#L169) ```typescript // Ask user if they want to install and then wait for them to actually install it. const yes = localize.Common.bannerLabelYes(); const no = localize.Common.bannerLabelNo(); sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'displayed' }); const answer = await this.appShell.showInformationMessage( localize.DataScience.pythonExtensionRequired(), { modal: true }, ``` [src/platform/api/pythonApi.ts#L177](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/pythonApi.ts#L177) ```typescript no ); if (answer === yes) { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'download' }); await this.installPythonExtension(); } else { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'dismissed' }); ``` [src/platform/api/pythonApi.ts#L180](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/api/pythonApi.ts#L180) ```typescript sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'download' }); await this.installPythonExtension(); } else { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'dismissed' }); } } private async installPythonExtension() { ``` [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L63](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L63) ```typescript } } private async handleExecutionWithoutPythonExtension() { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'displayed' }); const selection = await this.appShell.showInformationMessage( DataScience.pythonExtensionRequiredToRunNotebook(), { modal: true }, ``` [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L70](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L70) ```typescript Common.install() ); if (selection === Common.install()) { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'download' }); this.commandManager.executeCommand('extension.open', PythonExtension).then(noop, noop); } else { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'dismissed' }); ``` [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L73](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L73) ```typescript sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'download' }); this.commandManager.executeCommand('extension.open', PythonExtension).then(noop, noop); } else { sendTelemetryEvent(Telemetry.PythonExtensionNotInstalled, undefined, { action: 'dismissed' }); } } private async handleExecutionWithoutPython() { ```
DS_INTERNAL.PYTHON_KERNEL_EXECUTABLE_MATCHES ## Description Telemetry sent for local Python Kernels. Tracking whether we have managed to launch the kernel that matches the interpreter. If match=false, then this means we have failed to launch the right kernel. ## Properties No properties for event ## Locations Used [src/kernels/helpers.ts#L1697](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/helpers.ts#L1697) ```typescript kernelConnection.interpreter.path.toLowerCase(), sysExecutable.toLowerCase() ); sendTelemetryEvent(Telemetry.PythonKerneExecutableMatches, undefined, { match: match ? 'true' : 'false', kernelConnectionType: kernelConnection.kind }); ``` [src/kernels/helpers.ts#L1721](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/helpers.ts#L1721) ```typescript }); if (execOutput.stdout.trim().length > 0) { const match = areInterpreterPathsSame(execOutput.stdout.trim().toLowerCase(), sysExecutable); sendTelemetryEvent(Telemetry.PythonKerneExecutableMatches, undefined, { match: match ? 'true' : 'false', kernelConnectionType: kernelConnection.kind }); ```
DS_INTERNAL.PYTHON_MODULE_INSTALL ## Description No description provided ## Properties - moduleName: string; - /** * Whether the module was already (once before) installed into the python environment or * whether this already exists (detected via `pip list`) */ isModulePresent?: 'true' | undefined; - action: | 'cancelled' // User cancelled the installation or closed the notebook or the like. | 'displayed' // Install prompt may have been displayed. | 'prompted' // Install prompt was displayed. | 'installed' // Installation disabled (this is what python extension returns). | 'ignored' // Installation disabled (this is what python extension returns). | 'disabled' // Installation disabled (this is what python extension returns). | 'failed' // Installation disabled (this is what python extension returns). | 'install' // User chose install from prompt. | 'donotinstall' // User chose not to install from prompt. | 'differentKernel' // User chose to select a different kernel. | 'error' // Some other error. | 'installedInJupyter' // The package was successfully installed in Jupyter whilst failed to install in Python ext. | 'failedToInstallInJupyter' // Failed to install the package in Jupyter as well as Python ext. | 'dismissed'; - // User chose to dismiss the prompt. resourceType?: 'notebook' | 'interactive'; - /** * Hash of the resource (notebook.uri or pythonfile.uri associated with this). * If we run the same notebook tomorrow, the hash will be the same. */ resourceHash?: string; - pythonEnvType?: EnvironmentType; ## Locations Used [src/kernels/installer/productInstaller.ts#L299](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/installer/productInstaller.ts#L299) ```typescript action = 'failed'; throw ex; } finally { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action, moduleName: ProductNames.get(product)! }); ``` [src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L152](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterDependencyService.ts#L152) ```typescript pipInstalledInNonCondaEnv === false ? [Product.pip].concat(missingProducts) : missingProducts, interpreter.displayName ); sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'displayed', moduleName: ProductNames.get(Product.jupyter)!, pythonEnvType: interpreter.envType ``` [src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L71](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L71) ```typescript interpreter: PythonEnvironment, tokenSource: CancellationTokenSource ): Promise { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'displayed', moduleName: ProductNames.get(Product.pandas)!, pythonEnvType: interpreter?.envType ``` [src/kernels/kernelDependencyService.ts#L212](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L212) ```typescript const productNameForTelemetry = products.map((product) => ProductNames.get(product)!).join(', '); const resourceType = resource ? getResourceType(resource) : undefined; const resourceHash = resource ? getTelemetrySafeHashedString(resource.toString()) : undefined; sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'displayed', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L230](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L230) ```typescript const options = resource ? [Common.install(), selectKernel] : [Common.install()]; try { if (!this.isCodeSpace) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'prompted', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L246](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L246) ```typescript promptCancellationPromise ]); if (cancelTokenSource.token.isCancellationRequested) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'dismissed', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L256](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L256) ```typescript return KernelInterpreterDependencyResponse.cancel; } if (selection === selectKernel) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'differentKernel', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L265](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L265) ```typescript }); return KernelInterpreterDependencyResponse.selectDifferentKernel; } else if (selection === Common.install()) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'install', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L289](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L289) ```typescript cancellationPromise ]); if (response === InstallerResponse.Installed) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'installed', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L298](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L298) ```typescript }); return KernelInterpreterDependencyResponse.ok; } else if (response === InstallerResponse.Ignore) { sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'failed', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L309](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L309) ```typescript } } sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'dismissed', moduleName: productNameForTelemetry, resourceType, ``` [src/kernels/kernelDependencyService.ts#L319](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernelDependencyService.ts#L319) ```typescript return KernelInterpreterDependencyResponse.cancel; } catch (ex) { traceError(`Failed to install ${productNameForTelemetry}`, ex); sendTelemetryEvent(Telemetry.PythonModuleInstall, undefined, { action: 'error', moduleName: productNameForTelemetry, resourceType, ```
DS_INTERNAL.PYTHON_NOT_INSTALLED ## Description No description provided ## Properties - action: | 'displayed' // Message displayed. | 'dismissed' // user dismissed the message. | 'download'; ## Locations Used [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L77](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L77) ```typescript } } private async handleExecutionWithoutPython() { sendTelemetryEvent(Telemetry.PythonNotInstalled, undefined, { action: 'displayed' }); const selection = await this.appShell.showErrorMessage( DataScience.pythonNotInstalledNonMarkdown(), { modal: true }, ``` [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L84](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L84) ```typescript Common.install() ); if (selection === Common.install()) { sendTelemetryEvent(Telemetry.PythonNotInstalled, undefined, { action: 'download' }); this.appShell.openUrl('https://www.python.org/downloads'); } else { sendTelemetryEvent(Telemetry.PythonNotInstalled, undefined, { action: 'dismissed' }); ``` [src/notebooks/controllers/noPythonKernelsNotebookController.ts#L87](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/noPythonKernelsNotebookController.ts#L87) ```typescript sendTelemetryEvent(Telemetry.PythonNotInstalled, undefined, { action: 'download' }); this.appShell.openUrl('https://www.python.org/downloads'); } else { sendTelemetryEvent(Telemetry.PythonNotInstalled, undefined, { action: 'dismissed' }); } } } ```
DS_INTERNAL.RAWKERNEL_CREATING_NOTEBOOK ## Description Telemetry send when we create a notebook for a raw kernel or jupyter ## Properties No properties for event ## Locations Used [src/kernels/raw/session/hostRawNotebookProvider.ts#L93](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/hostRawNotebookProvider.ts#L93) ```typescript return this.rawNotebookSupportedService.isSupported; } @captureTelemetry(Telemetry.RawKernelCreatingNotebook, undefined, true) public async createNotebook( document: vscode.NotebookDocument, resource: Resource, ```
DS_INTERNAL.RAWKERNEL_INFO_RESPONSE ## Description 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 or we need more attempts. ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L349](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L349) ```typescript } else { traceWarning(`Didn't get response for requestKernelInfo after ${stopWatch.elapsedTime}ms.`); } sendTelemetryEvent(Telemetry.RawKernelInfoResonse, stopWatch.elapsedTime, { attempts, timedout: !gotIoPubMessage.completed }); ```
DS_INTERNAL.RAWKERNEL_PROCESS_LAUNCH ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/launcher/kernelProcess.ts#L119](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/launcher/kernelProcess.ts#L119) ```typescript } } @captureTelemetry(Telemetry.RawKernelProcessLaunch, undefined, true) public async launch(workingDirectory: string, timeout: number, cancelToken: CancellationToken): Promise { if (this.launchedOnce) { throw new Error('Kernel has already been launched.'); ```
DS_INTERNAL.RAWKERNEL_SESSION_CONNECT ## Description Raw kernel timing events ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L146](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L146) ```typescript throw error; } } finally { sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionConnect, stopWatch.elapsedTime); } this.connected = true; ```
DS_INTERNAL.RAWKERNEL_SESSION_DISPOSED ## Description This event is sent when a RawSession's `dispose` method is called. ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawSession.ts#L95](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawSession.ts#L95) ```typescript public async dispose() { // We want to know who called dispose on us const stacktrace = new Error().stack; sendTelemetryEvent(Telemetry.RawKernelSessionDisposed, undefined, { stacktrace }); // Now actually dispose ourselves this.isDisposing = true; ```
DS_INTERNAL.RAWKERNEL_SESSION_KERNEL_PROCESS_EXITED ## Description This event is sent when the underlying kernelProcess for a RawJupyterSession exits. ## Properties No properties for event ## Locations Used [src/kernels/raw/launcher/kernelLauncher.ts#L213](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/launcher/kernelLauncher.ts#L213) ```typescript const disposable = kernelProcess.exited( ({ exitCode, reason }) => { sendTelemetryEvent(Telemetry.RawKernelSessionKernelProcessExited, undefined, { exitCode, exitReason: getTelemetrySafeErrorMessageFromPythonTraceback(reason) }); ``` [src/kernels/raw/session/rawSession.ts#L255](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawSession.ts#L255) ```typescript traceError(`Disposing session as kernel process died ExitCode: ${e.exitCode}, Reason: ${e.reason}`); // Send telemetry so we know why the kernel process exited, // as this affects our kernel startup success sendTelemetryEvent(Telemetry.RawKernelSessionKernelProcessExited, undefined, { exitCode: e.exitCode, exitReason: getTelemetrySafeErrorMessageFromPythonTraceback(e.reason) }); ``` [src/kernels/raw/session/rawJupyterSession.ts#L190](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L190) ```typescript if (session !== this.session) { return; } sendTelemetryEvent(Telemetry.RawKernelSessionKernelProcessExited, undefined, { exitCode, exitReason: getTelemetrySafeErrorMessageFromPythonTraceback(reason) }); ```
DS_INTERNAL.RAWKERNEL_SESSION_NO_IPYKERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/helpers.ts#L1951](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/helpers.ts#L1951) ```typescript const isLocal = isLocalConnection(controller?.connection); const rawLocalKernel = serviceContainer.get(IRawNotebookProvider).isSupported && isLocal; if (rawLocalKernel && context === 'start') { sendKernelTelemetryEvent(resource, Telemetry.RawKernelSessionStartNoIpykernel, { reason: handleResult }); } ```
DS_INTERNAL.RAWKERNEL_SESSION_SHUTDOWN ## Description This event is sent when a RawJupyterSession's `shutdownSession` method is called. ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L164](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L164) ```typescript // We want to know why we got shut down const stacktrace = new Error().stack; return super.shutdownSession(session, statusHandler, isRequestToShutdownRestartSession).then(() => { sendTelemetryEvent(Telemetry.RawKernelSessionShutdown, undefined, { isRequestToShutdownRestartSession, stacktrace }); ```
DS_INTERNAL.RAWKERNEL_SESSION_START ## Description Raw kernel single events ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L87](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L87) ```typescript Cancellation.throwIfCanceled(options.token); // Only connect our session if we didn't cancel or timeout sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStartSuccess); sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStart, stopWatch.elapsedTime); traceInfo('Raw session started and connected'); this.setSession(newSession); ``` [src/kernels/raw/session/rawJupyterSession.ts#L104](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L104) ```typescript if (error instanceof CancellationError) { sendKernelTelemetryEvent( this.resource, Telemetry.RawKernelSessionStart, stopWatch.elapsedTime, undefined, error ``` [src/kernels/raw/session/rawJupyterSession.ts#L115](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L115) ```typescript } else if (error instanceof TimedOutError) { sendKernelTelemetryEvent( this.resource, Telemetry.RawKernelSessionStart, stopWatch.elapsedTime, undefined, error ``` [src/kernels/raw/session/rawJupyterSession.ts#L127](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L127) ```typescript // Send our telemetry event with the error included sendKernelTelemetryEvent( this.resource, Telemetry.RawKernelSessionStart, stopWatch.elapsedTime, undefined, // eslint-disable-next-line @typescript-eslint/no-explicit-any ```
DS_INTERNAL.RAWKERNEL_SESSION_START_EXCEPTION ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L135](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L135) ```typescript ); sendKernelTelemetryEvent( this.resource, Telemetry.RawKernelSessionStartException, undefined, undefined, // eslint-disable-next-line @typescript-eslint/no-explicit-any ```
DS_INTERNAL.RAWKERNEL_SESSION_START_SUCCESS ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L86](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L86) ```typescript newSession = await this.startRawSession(options); Cancellation.throwIfCanceled(options.token); // Only connect our session if we didn't cancel or timeout sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStartSuccess); sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStart, stopWatch.elapsedTime); traceInfo('Raw session started and connected'); this.setSession(newSession); ```
DS_INTERNAL.RAWKERNEL_SESSION_START_TIMEOUT ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L120](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L120) ```typescript undefined, error ); sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStartTimeout); traceError('Raw session failed to start in given timeout'); throw error; } else { ```
DS_INTERNAL.RAWKERNEL_SESSION_START_USER_CANCEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L109](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L109) ```typescript undefined, error ); sendKernelTelemetryEvent(this.resource, Telemetry.RawKernelSessionStartUserCancel); traceInfo('Starting of raw session cancelled by user'); throw error; } else if (error instanceof TimedOutError) { ```
DS_INTERNAL.RAWKERNEL_START_RAW_SESSION ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawJupyterSession.ts#L237](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawJupyterSession.ts#L237) ```typescript return this.startRawSession({ token: cancelToken, ui: new DisplayOptions(disableUI) }); } @captureTelemetry(Telemetry.RawKernelStartRawSession, undefined, true) private async startRawSession(options: { token: CancellationToken; ui: IDisplayOptions }): Promise { if ( this.kernelConnectionMetadata.kind !== 'startUsingLocalKernelSpec' && ```
DS_INTERNAL.REGISTER_AND_USE_INTERPRETER_AS_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/jupyterKernelService.ts#L225](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/jupyterKernelService.ts#L225) ```typescript ); } sendTelemetryEvent(Telemetry.RegisterAndUseInterpreterAsKernel); return kernelSpecFilePath; } private async updateKernelEnvironment( ```
DS_INTERNAL.REMOTE_KERNEL_SPEC_COUNT ## Description No description provided ## Properties - /** * Number of kernel specs. */ count: number; ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.RESTART_JUPYTER_TIME ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/execution/kernelExecution.ts#L270](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L270) ```typescript } @captureTelemetry(Telemetry.RestartKernel) @captureTelemetry(Telemetry.RestartJupyterTime) private async restartExecution(session: IJupyterSession): Promise { // Just use the internal session. Pending cells should have been canceled by the caller await session.restart(); ```
DS_INTERNAL.RESTART_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/execution/kernelExecution.ts#L269](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/execution/kernelExecution.ts#L269) ```typescript }); } @captureTelemetry(Telemetry.RestartKernel) @captureTelemetry(Telemetry.RestartJupyterTime) private async restartExecution(session: IJupyterSession): Promise { // Just use the internal session. Pending cells should have been canceled by the caller ```
DS_INTERNAL.SELECT_JUPYTER_INTERPRETER ## Description No description provided ## Properties - /** * The result of the selection. * notSelected - No interpreter was selected. * selected - An interpreter was selected (and configured to have jupyter and notebook). * installationCancelled - Installation of jupyter and/or notebook was cancelled for an interpreter. * * @type {('notSelected' | 'selected' | 'installationCancelled')} */ result?: 'notSelected' | 'selected' | 'installationCancelled'; ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L86](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L86) ```typescript public async selectInterpreter(): Promise { const interpreter = await this.jupyterInterpreterSelector.selectInterpreter(); if (!interpreter) { sendTelemetryEvent(Telemetry.SelectJupyterInterpreter, undefined, { result: 'notSelected' }); return; } ``` [src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L97](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L97) ```typescript return interpreter; } case JupyterInterpreterDependencyResponse.cancel: sendTelemetryEvent(Telemetry.SelectJupyterInterpreter, undefined, { result: 'installationCancelled' }); return; default: return this.selectInterpreter(); ``` [src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L162](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterService.ts#L162) ```typescript this._selectedInterpreter = interpreter; this._onDidChangeInterpreter.fire(interpreter); this.interpreterSelectionState.updateSelectedPythonPath(interpreter.path); sendTelemetryEvent(Telemetry.SelectJupyterInterpreter, undefined, { result: 'selected' }); } // For a given python path check if it can run jupyter for us ```
DS_INTERNAL.SELECT_JUPYTER_INTERPRETER_MESSAGE_DISPLAYED ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/interpreter/jupyterInterpreterSubCommandExecutionService.ts#L86](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/interpreter/jupyterInterpreterSubCommandExecutionService.ts#L86) ```typescript if (!interpreter) { // Unlikely scenario, user hasn't selected python, python extension will fall over. // Get user to select something. sendTelemetryEvent(Telemetry.SelectJupyterInterpreterMessageDisplayed); return DataScience.selectJupyterInterpreter(); } } ```
DS_INTERNAL.SETTINGS ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/datascience.ts#L126](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/datascience.ts#L126) ```typescript resultSettings[k] = currentValue; } } sendTelemetryEvent(Telemetry.DataScienceSettings, 0, resultSettings); } } } ```
DS_INTERNAL.SHIFTENTER_BANNER_SHOWN ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/shiftEnterBanner.ts#L68](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/shiftEnterBanner.ts#L68) ```typescript return; } sendTelemetryEvent(Telemetry.ShiftEnterBannerShown); const response = await this.appShell.showInformationMessage(this.bannerMessage, ...this.bannerLabels); switch (response) { case this.bannerLabels[InteractiveShiftEnterLabelIndex.Yes]: { ``` [src/test/datascience/shiftEnterBanner.unit.test.ts#L68](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/datascience/shiftEnterBanner.unit.test.ts#L68) ```typescript config.verifyAll(); expect(Reporter.eventNames).to.deep.equal([ Telemetry.ShiftEnterBannerShown, Telemetry.EnableInteractiveShiftEnter ]); }); ``` [src/test/datascience/shiftEnterBanner.unit.test.ts#L99](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/datascience/shiftEnterBanner.unit.test.ts#L99) ```typescript config.verifyAll(); expect(Reporter.eventNames).to.deep.equal([ Telemetry.ShiftEnterBannerShown, Telemetry.DisableInteractiveShiftEnter ]); }); ```
DS_INTERNAL.SHOW_DATA_NO_PANDAS ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L60](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L60) ```typescript throw new Error(DataScience.pandasTooOldForViewingFormat().format(versionStr)); } sendTelemetryEvent(Telemetry.PandasNotInstalled); await this.installMissingDependencies(interpreter, tokenSource); } finally { tokenSource.dispose(); ```
DS_INTERNAL.SHOW_DATA_PANDAS_TOO_OLD ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L54](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/data-viewing/dataViewerDependencyService.ts#L54) ```typescript if (isVersionOfPandasSupported(pandasVersion)) { return; } sendTelemetryEvent(Telemetry.PandasTooOld); // Warn user that we cannot start because pandas is too old. const versionStr = `${pandasVersion.major}.${pandasVersion.minor}.${pandasVersion.build}`; throw new Error(DataScience.pandasTooOldForViewingFormat().format(versionStr)); ```
DS_INTERNAL.START_EXECUTE_NOTEBOOK_CELL_PERCEIVED_COLD ## Description Time take for jupyter server to be busy from the time user first hit `run` cell until jupyter reports it is busy running a cell. ## Properties No properties for event ## Locations Used [src/kernels/kernel.ts#L351](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/kernel.ts#L351) ```typescript this.perceivedJupyterStartupTelemetryCaptured = true; sendTelemetryEvent(Telemetry.PerceivedJupyterStartupNotebook, stopWatch.elapsedTime); executionPromise.finally(() => sendTelemetryEvent(Telemetry.StartExecuteNotebookCellPerceivedCold, stopWatch.elapsedTime) ); } } ```
DS_INTERNAL.START_JUPYTER_PROCESS ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/launcher/notebookStarter.ts#L150](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/launcher/notebookStarter.ts#L150) ```typescript } // Fire off telemetry for the process being talkable sendTelemetryEvent(Telemetry.StartJupyterProcess, stopWatch.elapsedTime); try { const port = parseInt(url.parse(connection.baseUrl).port || '0', 10); ```
DS_INTERNAL.START_RAW_FAILED_UI_DISABLED ## Description Telemetry sent when starting auto starting Native Notebook kernel fails silently. ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.START_SESSION_FAILED_JUPYTER ## Description Telemetry event sent when starting a session for a local connection failed. @type {(undefined | never)} @memberof IEventNamePropertyMapping ## Properties No properties for event ## Locations Used [src/kernels/common/baseJupyterSession.ts#L40](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/common/baseJupyterSession.ts#L40) ```typescript export class JupyterSessionStartError extends WrappedError { constructor(originalException: Error) { super(originalException.message, originalException); sendTelemetryEvent(Telemetry.StartSessionFailedJupyter, undefined, undefined, originalException, true); } } ```
DS_INTERNAL.SWITCH_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used [src/notebooks/controllers/vscodeNotebookController.ts#L566](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L566) ```typescript default: // We don't know as its the default kernel on Jupyter server. } sendKernelTelemetryEvent(document.uri, Telemetry.SwitchKernel); // If we have an existing kernel, then we know for a fact the user is changing the kernel. // Else VSC is just setting a kernel for a notebook after it has opened. if (existingKernel) { ```
DS_INTERNAL.SWITCH_TO_EXISTING_KERNEL ## Description No description provided ## Properties - language: string ## Locations Used [src/platform/datascience/common.ts#L171](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/common.ts#L171) ```typescript } export function sendNotebookOrKernelLanguageTelemetry( telemetryEvent: Telemetry.SwitchToExistingKernel | Telemetry.NotebookLanguage, language?: string ) { language = getTelemetrySafeLanguage(language); ``` [src/notebooks/controllers/vscodeNotebookController.ts#L548](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L548) ```typescript } switch (this.connection.kind) { case 'startUsingPythonInterpreter': sendNotebookOrKernelLanguageTelemetry(Telemetry.SwitchToExistingKernel, PYTHON_LANGUAGE); break; case 'connectToLiveKernel': sendNotebookOrKernelLanguageTelemetry( ``` [src/notebooks/controllers/vscodeNotebookController.ts#L552](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L552) ```typescript break; case 'connectToLiveKernel': sendNotebookOrKernelLanguageTelemetry( Telemetry.SwitchToExistingKernel, this.connection.kernelModel.language ); break; ``` [src/notebooks/controllers/vscodeNotebookController.ts#L559](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/controllers/vscodeNotebookController.ts#L559) ```typescript case 'startUsingLocalKernelSpec': case 'startUsingRemoteKernelSpec': sendNotebookOrKernelLanguageTelemetry( Telemetry.SwitchToExistingKernel, this.connection.kernelSpec.language ); break; ```
DS_INTERNAL.SWITCH_TO_INTERPRETER_AS_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.SYNC_ALL_CELLS ## Description Sync events ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.SYNC_SINGLE_CELL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.USE_EXISTING_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.USE_INTERPRETER_AS_KERNEL ## Description No description provided ## Properties No properties for event ## Locations Used Event can be removed. Not referenced anywhere
DS_INTERNAL.VARIABLE_EXPLORER_FETCH_TIME ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/variables/jupyterVariables.ts#L42](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/variables/jupyterVariables.ts#L42) ```typescript } // IJupyterVariables implementation @captureTelemetry(Telemetry.VariableExplorerFetchTime, undefined, true) public async getVariables(request: IJupyterVariablesRequest, kernel?: IKernel): Promise { return this.variableHandler.getVariables(request, kernel); } ```
DS_INTERNAL.VARIABLE_EXPLORER_VARIABLE_COUNT ## Description No description provided ## Properties - variableCount: number ## Locations Used [src/platform/datascience/variablesView/variableView.ts#L187](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/variablesView/variableView.ts#L187) ```typescript const response = await this.variables.getVariables(args, activeNotebook); this.postMessage(InteractiveWindowMessages.GetVariablesResponse, response).ignoreErrors(); sendTelemetryEvent(Telemetry.VariableExplorerVariableCount, undefined, { variableCount: response.totalCount }); } else { ```
DS_INTERNAL.VSCNOTEBOOK_CELL_TRANSLATION_FAILED ## Description No description provided ## Properties - isErrorOutput: boolean; ## Locations Used [src/notebooks/helpers.ts#L736](https://github.com/microsoft/vscode-jupyter/tree/main/src/notebooks/helpers.ts#L736) ```typescript // Unless we already know its an unknown output type. const outputType: nbformat.OutputType = customMetadata?.outputType || (isStream ? 'stream' : 'display_data'); sendTelemetryEvent(Telemetry.VSCNotebookCellTranslationFailed, undefined, { isErrorOutput: outputType === 'error' }); ```
DS_INTERNAL.WAIT_FOR_IDLE_JUPYTER ## Description No description provided ## Properties No properties for event ## Locations Used [src/kernels/jupyter/session/jupyterSession.ts#L78](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/jupyter/session/jupyterSession.ts#L78) ```typescript super(resource, kernelConnectionMetadata, restartSessionUsed, workingDirectory, interruptTimeout); } @captureTelemetry(Telemetry.WaitForIdleJupyter, undefined, true) public waitForIdle(timeout: number): Promise { // Wait for idle on this session return this.waitForIdleOnSession(this.session, timeout); ```
DS_INTERNAL.WEBVIEW_STARTUP ## Description No description provided ## Properties - type: string ## Locations Used [src/platform/datascience/webviews/webviewHost.ts#L282](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/webviews/webviewHost.ts#L282) ```typescript protected webViewRendered() { if (this.webviewInit && !this.webviewInit.resolved) { // Send telemetry for startup sendTelemetryEvent(Telemetry.WebviewStartup, this.startupStopwatch.elapsedTime, { type: this.title }); // Resolve our started promise. This means the webpanel is ready to go. this.webviewInit.resolve(); ```
DS_INTERNAL.WEBVIEW_STYLE_UPDATE ## Description No description provided ## Properties No properties for event ## Locations Used [src/platform/datascience/webviews/webviewHost.ts#L300](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/datascience/webviews/webviewHost.ts#L300) ```typescript this.dispose(); }; @captureTelemetry(Telemetry.WebviewStyleUpdate) private async handleCssRequest(request: IGetCssRequest): Promise { const settings = await this.generateDataScienceExtraSettings(); const requestIsDark = settings.ignoreVscodeTheme ? false : request?.isDark; ```
DS_INTERNAL.ZMQ_NATIVE_BINARIES_LOADING ## Description Telemetry event sent when the ZMQ native binaries do work. ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawNotebookSupportedService.ts#L43](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawNotebookSupportedService.ts#L43) ```typescript try { require('zeromq'); traceInfo(`ZMQ install verified.`); sendTelemetryEvent(Telemetry.ZMQSupported); this._isSupported = true; } catch (e) { traceError(`Exception while attempting zmq :`, e); ```
DS_INTERNAL.ZMQ_NATIVE_BINARIES_NOT_LOADING ## Description Telemetry event sent when the ZMQ native binaries do not work. ## Properties No properties for event ## Locations Used [src/kernels/raw/session/rawNotebookSupportedService.ts#L47](https://github.com/microsoft/vscode-jupyter/tree/main/src/kernels/raw/session/rawNotebookSupportedService.ts#L47) ```typescript this._isSupported = true; } catch (e) { traceError(`Exception while attempting zmq :`, e); sendTelemetryEvent(Telemetry.ZMQNotSupported); this._isSupported = false; } ```
ENVFILE_VARIABLE_SUBSTITUTION ## Description Telemetry event sent when substituting Environment variables to calculate value of variables ## Properties No properties for event ## Locations Used [src/platform/common/variables/environment.ts#L173](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/variables/environment.ts#L173) ```typescript }); if (!invalid && replacement !== value) { value = replacement; sendTelemetryEvent(EventName.ENVFILE_VARIABLE_SUBSTITUTION); } return value.replace(/\\\$/g, '$'); ```
ENVFILE_WORKSPACE ## Description Telemetry event sent when an environment file is detected in the workspace. ## Properties No properties for event ## Locations Used [src/telemetry/envFileTelemetry.ts#L46](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/envFileTelemetry.ts#L46) ```typescript } function sendTelemetry(hasCustomEnvPath: boolean = false) { sendTelemetryEvent(EventName.ENVFILE_WORKSPACE, undefined, { hasCustomEnvPath }); envFileTelemetrySent = true; } ```
EXTENSION.LOAD ## Description Telemetry event sent with details just after editor loads ## Properties No properties for event ## Locations Used [src/telemetry/types.ts#L10](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/types.ts#L10) ```typescript import { IEventNamePropertyMapping } from '../telemetry/index'; import { EventName } from './constants'; export type EditorLoadTelemetry = IEventNamePropertyMapping[EventName.EXTENSION_LOAD]; export const IImportTracker = Symbol('IImportTracker'); export interface IImportTracker {} ``` [src/platform/startupTelemetry.ts#L31](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/startupTelemetry.ts#L31) ```typescript await activatedPromise; durations.totalActivateTime = stopWatch.elapsedTime; const props = await getActivationTelemetryProps(serviceContainer); sendTelemetryEvent(EventName.EXTENSION_LOAD, durations, props); } catch (ex) { traceError('sendStartupTelemetry() failed.', ex); } ``` [src/platform/startupTelemetry.ts#L52](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/startupTelemetry.ts#L52) ```typescript traceError('getActivationTelemetryProps() failed.', ex); } } sendTelemetryEvent(EventName.EXTENSION_LOAD, durations, props, ex); } catch (exc2) { traceError('sendErrorTelemetry() failed.', exc2); } ```
HASHED_PACKAGE_NAME ## Description Telemetry event sent with details when tracking imports ## Properties No properties for event ## Locations Used [src/telemetry/importTracker.ts#L205](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/importTracker.ts#L205) ```typescript // Hash the package name so that we will never accidentally see a // user's private package name. const hash = getTelemetrySafeHashedString(packageName); sendTelemetryEvent(EventName.HASHED_PACKAGE_NAME, undefined, { hashedNamev2: hash }); } private lookForImports(lines: (string | undefined)[]) { ``` [src/test/telemetry/importTracker.unit.test.ts#L44](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/telemetry/importTracker.unit.test.ts#L44) ```typescript public static expectHashes(...hashes: string[]) { expect(Reporter.eventNames).to.contain(EventName.HASHED_PACKAGE_PERF); if (hashes.length > 0) { expect(Reporter.eventNames).to.contain(EventName.HASHED_PACKAGE_NAME); } Reporter.properties.pop(); // HASHED_PACKAGE_PERF ```
HASHED_PACKAGE_PERF ## Description No description provided ## Properties No properties for event ## Locations Used [src/telemetry/importTracker.ts#L158](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/importTracker.ts#L158) ```typescript } } @captureTelemetry(EventName.HASHED_PACKAGE_PERF) private checkNotebookDocument(e: NotebookDocument) { this.pendingChecks.delete(e.uri.fsPath); const lines = this.getNotebookDocumentLines(e); ``` [src/telemetry/importTracker.ts#L165](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/importTracker.ts#L165) ```typescript this.lookForImports(lines); } @captureTelemetry(EventName.HASHED_PACKAGE_PERF) private checkNotebookCell(e: NotebookCellExecutionStateChangeEvent) { if (!isJupyterNotebook(e.cell.notebook)) { return; ``` [src/telemetry/importTracker.ts#L189](https://github.com/microsoft/vscode-jupyter/tree/main/src/telemetry/importTracker.ts#L189) ```typescript this.lookForImports(result); } @captureTelemetry(EventName.HASHED_PACKAGE_PERF) private checkDocument(document: TextDocument) { this.pendingChecks.delete(document.fileName); const lines = this.getDocumentLines(document); ``` [src/test/telemetry/importTracker.unit.test.ts#L42](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/telemetry/importTracker.unit.test.ts#L42) ```typescript public static measures: {}[] = []; public static expectHashes(...hashes: string[]) { expect(Reporter.eventNames).to.contain(EventName.HASHED_PACKAGE_PERF); if (hashes.length > 0) { expect(Reporter.eventNames).to.contain(EventName.HASHED_PACKAGE_NAME); } ```
JUPYTER_EXPERIMENTS_OPT_IN_OUT ## Description Telemetry event sent with details when a user has requested to opt it or out of an experiment group ## Properties No properties for event ## Locations Used [src/platform/common/experiments/service.ts#L104](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/experiments/service.ts#L104) ```typescript // so we need to perform these checks and send the corresponding telemetry manually. switch (this.getOptInOptOutStatus(experiment)) { case 'optOut': { sendTelemetryEvent(EventName.JUPYTER_EXPERIMENTS_OPT_IN_OUT, undefined, { expNameOptedOutOf: experiment }); ``` [src/platform/common/experiments/service.ts#L112](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/experiments/service.ts#L112) ```typescript } case 'optIn': { await this.experimentationService.isCachedFlightEnabled(experiment); sendTelemetryEvent(EventName.JUPYTER_EXPERIMENTS_OPT_IN_OUT, undefined, { expNameOptedInto: experiment }); ``` [src/test/common/experiments/service.unit.test.ts#L221](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/common/experiments/service.unit.test.ts#L221) ```typescript assert.isTrue(result); assert.equal(telemetryEvents.length, 1); assert.deepEqual(telemetryEvents[0], { eventName: EventName.JUPYTER_EXPERIMENTS_OPT_IN_OUT, properties: { expNameOptedInto: experiment } }); sinon.assert.calledOnce(isCachedFlightEnabledStub); ``` [src/test/common/experiments/service.unit.test.ts#L241](https://github.com/microsoft/vscode-jupyter/tree/main/src/test/common/experiments/service.unit.test.ts#L241) ```typescript assert.isFalse(result); assert.equal(telemetryEvents.length, 1); assert.deepEqual(telemetryEvents[0], { eventName: EventName.JUPYTER_EXPERIMENTS_OPT_IN_OUT, properties: { expNameOptedOutOf: experiment } }); sinon.assert.notCalled(isCachedFlightEnabledStub); ```
OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR_EX ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L566](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L566) ```typescript sendTelemetryEvent(EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS); } } catch (e) { sendTelemetryEvent(EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR, undefined, undefined, e); traceError(e); void this.errorHandler.handleError(e); } ```
OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST_EX ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L539](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L539) ```typescript return this.commandManager.executeCommand('outline.focus'); } private async onVariablePanelShowDataViewerRequest(request: IShowDataViewerFromVariablePanel) { sendTelemetryEvent(EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_REQUEST); if (this.debugService.activeDebugSession) { try { // First find out the current python environment that we are working with ```
OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS_EX ## Description No description provided ## Properties No properties for event ## Locations Used [src/interactive-window/commands/commandRegistry.ts#L563](https://github.com/microsoft/vscode-jupyter/tree/main/src/interactive-window/commands/commandRegistry.ts#L563) ```typescript if (columnSize && (await this.dataViewerChecker.isRequestedColumnSizeAllowed(columnSize))) { const title: string = `${DataScience.dataExplorerTitle()} - ${jupyterVariable.name}`; await this.dataViewerFactory.create(jupyterVariableDataProvider, title); sendTelemetryEvent(EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_SUCCESS); } } catch (e) { sendTelemetryEvent(EventName.OPEN_DATAVIEWER_FROM_VARIABLE_WINDOW_ERROR, undefined, undefined, e); ```
PLATFORM.INFO ## Description Telemetry event sent after fetching the OS version ## Properties No properties for event ## Locations Used [src/platform/common/platform/platformService.ts#L21](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/platform/platformService.ts#L21) ```typescript public version?: SemVer; constructor() { if (this.osType === OSType.Unknown) { sendTelemetryEvent(EventName.PLATFORM_INFO, undefined, { failureType: PlatformErrors.FailedToDetermineOS }); } ``` [src/platform/common/platform/platformService.ts#L45](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/platform/platformService.ts#L45) ```typescript try { const ver = coerce(os.release()); if (ver) { sendTelemetryEvent(EventName.PLATFORM_INFO, undefined, { osVersion: `${ver.major}.${ver.minor}.${ver.patch}` }); return (this.version = ver); ``` [src/platform/common/platform/platformService.ts#L52](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/platform/platformService.ts#L52) ```typescript } throw new Error('Unable to parse version'); } catch (ex) { sendTelemetryEvent(EventName.PLATFORM_INFO, undefined, { failureType: PlatformErrors.FailedToParseVersion }); return parseVersion(os.release()); ```
PYTHON_INTERPRETER_ACTIVATION_ENVIRONMENT_VARIABLES ## Description No description provided ## Properties - /** * Carries `true` if environment variables are present, `false` otherwise * * @type {boolean} */ hasEnvVars?: boolean; - /** * Carries `true` if fetching environment variables failed, `false` otherwise * * @type {boolean} */ failed?: boolean; - /** * Whether the environment was activated within a terminal or not. * * @type {boolean} */ activatedInTerminal?: boolean; - /** * Whether the environment was activated by the wrapper class. * If `true`, this telemetry is sent by the class that wraps the two activation providers . * * @type {boolean} */ activatedByWrapper?: boolean; ## Locations Used [src/platform/common/process/pythonExecutionFactory.ts#L164](https://github.com/microsoft/vscode-jupyter/tree/main/src/platform/common/process/pythonExecutionFactory.ts#L164) ```typescript options.allowEnvironmentFetchExceptions ); const hasEnvVars = envVars && Object.keys(envVars).length > 0; sendTelemetryEvent(EventName.PYTHON_INTERPRETER_ACTIVATION_ENVIRONMENT_VARIABLES, undefined, { hasEnvVars }); if (!hasEnvVars) { return this.create({ resource: options.resource, ```