diff --git a/news/2 Fixes/4636.md b/news/2 Fixes/4636.md new file mode 100644 index 000000000000..686d54b173f2 --- /dev/null +++ b/news/2 Fixes/4636.md @@ -0,0 +1 @@ +Provide telemetry for when we show the shift-enter banner and if the user clicks yes \ No newline at end of file diff --git a/src/client/datascience/constants.ts b/src/client/datascience/constants.ts index c1fa8243c5ef..62abcf267898 100644 --- a/src/client/datascience/constants.ts +++ b/src/client/datascience/constants.ts @@ -77,8 +77,10 @@ export enum Telemetry { ConnectLocalJupyter = 'DATASCIENCE.CONNECTLOCALJUPYTER', ConnectRemoteJupyter = 'DATASCIENCE.CONNECTREMOTEJUPYTER', ConnectFailedJupyter = 'DATASCIENCE.CONNECTFAILEDJUPYTER', - RemoteAddCode = 'DATASCIENCE.LIVESHARE.ADDCODE' -} + RemoteAddCode = 'DATASCIENCE.LIVESHARE.ADDCODE', + ShiftEnterBannerShown = 'DATASCIENCE.SHIFTENTER_BANNER_SHOWN', + EnableInteractiveShiftEnter = 'DATASCIENCE.ENABLE_INTERACTIVE_SHIFT_ENTER' + } export namespace HelpLinks { export const PythonInteractiveHelpLink = 'https://aka.ms/pyaiinstall'; diff --git a/src/client/datascience/shiftEnterBanner.ts b/src/client/datascience/shiftEnterBanner.ts index fb558f5a18fc..fff27b957be6 100644 --- a/src/client/datascience/shiftEnterBanner.ts +++ b/src/client/datascience/shiftEnterBanner.ts @@ -10,6 +10,8 @@ import '../common/extensions'; import { IConfigurationService, IPersistentStateFactory, IPythonExtensionBanner } from '../common/types'; import * as localize from '../common/utils/localize'; +import { captureTelemetry, sendTelemetryEvent } from '../telemetry'; +import { Telemetry } from './constants'; import { IJupyterExecution } from './types'; export enum InteractiveShiftEnterStateKeys { @@ -71,6 +73,7 @@ export class InteractiveShiftEnterBanner implements IPythonExtensionBanner { return; } + sendTelemetryEvent(Telemetry.ShiftEnterBannerShown); const response = await this.appShell.showInformationMessage(this.bannerMessage, ...this.bannerLabels); switch (response) { case this.bannerLabels[InteractiveShiftEnterLabelIndex.Yes]: { @@ -98,6 +101,7 @@ export class InteractiveShiftEnterBanner implements IPythonExtensionBanner { await this.persistentState.createGlobalPersistentState(InteractiveShiftEnterStateKeys.ShowBanner, false).updateValue(false); } + @captureTelemetry(Telemetry.EnableInteractiveShiftEnter) public async enableInteractiveShiftEnter(): Promise { await this.configuration.updateSetting('dataScience.sendSelectionToInteractiveWindow', true, undefined, ConfigurationTarget.Global); await this.disable(); diff --git a/src/client/telemetry/index.ts b/src/client/telemetry/index.ts index 26a2be1349f2..97a2b246c6ba 100644 --- a/src/client/telemetry/index.ts +++ b/src/client/telemetry/index.ts @@ -307,6 +307,7 @@ interface IEventNamePropertyMapping { [Telemetry.ConnectRemoteJupyter]: never | undefined; [Telemetry.DeleteAllCells]: never | undefined; [Telemetry.DeleteCell]: never | undefined; + [Telemetry.EnableInteractiveShiftEnter]: never | undefined; [Telemetry.ExpandAll]: never | undefined; [Telemetry.ExportNotebook]: never | undefined; [Telemetry.ExportPythonFile]: never | undefined; @@ -325,6 +326,7 @@ interface IEventNamePropertyMapping { [Telemetry.SelectJupyterURI]: never | undefined; [Telemetry.SetJupyterURIToLocal]: never | undefined; [Telemetry.SetJupyterURIToUserSpecified]: never | undefined; + [Telemetry.ShiftEnterBannerShown]: never | undefined; [Telemetry.ShowHistoryPane]: never | undefined; [Telemetry.StartJupyter]: never | undefined; [Telemetry.SubmitCellThroughInput]: never | undefined;