diff --git a/extensions/sql-database-projects/src/common/telemetry.ts b/extensions/sql-database-projects/src/common/telemetry.ts index bcec3e31f1..03adf29b6a 100644 --- a/extensions/sql-database-projects/src/common/telemetry.ts +++ b/extensions/sql-database-projects/src/common/telemetry.ts @@ -44,5 +44,6 @@ export enum TelemetryActions { generateProjectFromOpenApiSpec = 'generateProjectFromOpenApiSpec', publishOptionsOpened = 'publishOptionsOpened', resetOptions = 'resetOptions', - optionsChanged = 'optionsChanged' + optionsChanged = 'optionsChanged', + profileLoaded = 'profileLoaded' } diff --git a/extensions/sql-database-projects/src/models/publishProfile/publishProfile.ts b/extensions/sql-database-projects/src/models/publishProfile/publishProfile.ts index e2dd074e01..118264d4d7 100644 --- a/extensions/sql-database-projects/src/models/publishProfile/publishProfile.ts +++ b/extensions/sql-database-projects/src/models/publishProfile/publishProfile.ts @@ -12,6 +12,7 @@ import * as vscode from 'vscode'; import { promises as fs } from 'fs'; import { SqlConnectionDataSource } from '../dataSources/sqlConnectionStringSource'; +import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../../common/telemetry'; // only reading db name, connection string, and SQLCMD vars from profile for now export interface PublishProfile { @@ -55,6 +56,13 @@ export async function load(profileUri: vscode.Uri, dacfxService: utils.IDacFxSer // get all SQLCMD variables to include from the profile const sqlCmdVariables = utils.readSqlCmdVariables(profileXmlDoc, true); + TelemetryReporter.createActionEvent(TelemetryViews.SqlProjectPublishDialog, TelemetryActions.profileLoaded) + .withAdditionalProperties({ + hasTargetDbName: (!!targetDbName).toString(), + hasConnectionString: (!!connectionInfo?.connectionId).toString(), + hasSqlCmdVariables: (Object.keys(sqlCmdVariables).length > 0).toString() + }).send(); + return { databaseName: targetDbName, serverName: connectionInfo.server,