Add more telemetry props to sql migration extension (#17026)

This commit is contained in:
Rachel Kim
2021-09-13 10:11:42 -07:00
committed by GitHub
parent a12cdedb8e
commit ceaa3efebd
6 changed files with 85 additions and 28 deletions

View File

@@ -3,10 +3,11 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { getMigrationStatus, DatabaseMigration, startMigrationCutover, stopMigration, getMigrationAsyncOperationDetails, AzureAsyncOperationResource, BackupFileInfo } from '../../api/azure';
import { getMigrationStatus, DatabaseMigration, startMigrationCutover, stopMigration, getMigrationAsyncOperationDetails, AzureAsyncOperationResource, BackupFileInfo, getResourceGroupFromId } from '../../api/azure';
import { MigrationContext } from '../../models/migrationLocalStorage';
import { sendSqlMigrationActionEvent, TelemetryAction, TelemetryViews } from '../../telemtery';
import * as constants from '../../constants/strings';
import { getMigrationTargetType, getMigrationMode } from '../../constants/helper';
export class MigrationCutoverDialogModel {
@@ -57,8 +58,8 @@ export class MigrationCutoverDialogModel {
TelemetryViews.MigrationCutoverDialog,
TelemetryAction.CutoverMigration,
{
'sessionId': this._migration.sessionId!,
'migrationEndTime': new Date().toString()
...this.getTelemetryProps(this._migration),
'migrationEndTime': new Date().toString(),
},
{}
);
@@ -84,7 +85,8 @@ export class MigrationCutoverDialogModel {
TelemetryViews.MigrationCutoverDialog,
TelemetryAction.CancelMigration,
{
'sessionId': this._migration.sessionId!,
...this.getTelemetryProps(this._migration),
'migrationMode': getMigrationMode(this._migration),
'cutoverStartTime': cutoverStartTime
},
{}
@@ -131,4 +133,17 @@ export class MigrationCutoverDialogModel {
});
return files;
}
private getTelemetryProps(migration: MigrationContext) {
return {
'sessionId': migration.sessionId!,
'subscriptionId': migration.subscription.id,
'resourceGroup': getResourceGroupFromId(migration.targetManagedInstance.id),
'sqlServerName': migration.sourceConnectionProfile.serverName,
'sourceDatabaseName': migration.migrationContext.properties.sourceDatabaseName,
'targetType': getMigrationTargetType(migration),
'targetDatabaseName': migration.migrationContext.name,
'targetServerName': migration.targetManagedInstance.name,
};
}
}