diff --git a/extensions/sql-database-projects/src/common/telemetry.ts b/extensions/sql-database-projects/src/common/telemetry.ts index 72710c5d77..edee7ea353 100644 --- a/extensions/sql-database-projects/src/common/telemetry.ts +++ b/extensions/sql-database-projects/src/common/telemetry.ts @@ -15,7 +15,8 @@ export const TelemetryReporter = new AdsTelemetryReporter(packageInfo.name, pack export enum TelemetryViews { ProjectController = 'ProjectController', SqlProjectPublishDialog = 'SqlProjectPublishDialog', - ProjectTree = 'ProjectTree' + ProjectTree = 'ProjectTree', + SqlBindingsQuickPick = 'SqlBindingsQuickPick' } export enum TelemetryActions { @@ -32,5 +33,7 @@ export enum TelemetryActions { build = 'build', updateProjectForRoundtrip = 'updateProjectForRoundtrip', changePlatformType = 'changePlatformType', - updateSystemDatabaseReferencesInProjFile = 'updateSystemDatabaseReferencesInProjFile' + updateSystemDatabaseReferencesInProjFile = 'updateSystemDatabaseReferencesInProjFile', + startAddSqlBinding = 'startAddSqlBinding', + finishAddSqlBinding = 'finishAddSqlBinding' } diff --git a/extensions/sql-database-projects/src/dialogs/addSqlBindingQuickpick.ts b/extensions/sql-database-projects/src/dialogs/addSqlBindingQuickpick.ts index 80cd22dd0b..09e9cbacf6 100644 --- a/extensions/sql-database-projects/src/dialogs/addSqlBindingQuickpick.ts +++ b/extensions/sql-database-projects/src/dialogs/addSqlBindingQuickpick.ts @@ -5,8 +5,11 @@ import * as constants from '../common/constants'; import * as utils from '../common/utils'; import * as azureFunctionsUtils from '../common/azureFunctionsUtils'; import { PackageHelper } from '../tools/packageHelper'; +import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../common/telemetry'; export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined, packageHelper: PackageHelper): Promise { + TelemetryReporter.sendActionEvent(TelemetryViews.SqlBindingsQuickPick, TelemetryActions.startAddSqlBinding); + if (!uri) { // this command only shows in the command palette when the active editor is a .cs file, so we can safely assume that's the scenario // when this is called without a uri @@ -115,10 +118,16 @@ export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined, if (!result.success) { void vscode.window.showErrorMessage(result.errorMessage); + TelemetryReporter.sendErrorEvent(TelemetryViews.SqlBindingsQuickPick, TelemetryActions.finishAddSqlBinding); return; } + + TelemetryReporter.createActionEvent(TelemetryViews.SqlBindingsQuickPick, TelemetryActions.finishAddSqlBinding) + .withAdditionalProperties({ bindingType: selectedBinding.label }) + .send(); } catch (e) { void vscode.window.showErrorMessage(e); + TelemetryReporter.sendErrorEvent(TelemetryViews.SqlBindingsQuickPick, TelemetryActions.finishAddSqlBinding); return; }