Files
azuredatastudio/extensions/sql-migration/src/telemtery.ts
Aasim Khan 70fc6bd43d Adding Assessment Telemetry in SQL Migration (#15935)
* Adding telemetry for assessment

* Removing dms loading fix

* Fixing PR

* removing collection of account id

* moving database warning count to the server assessment event

* Removing individual warning and issue events

* Adding aggregates for database issues and warnings

* removing extra line

* Adding other telemetry events in sql migration

* Fixed changes made in the PR

* Fixing attribute names

* Consolidating issues and errors in 1 event

* Converting dependencies to dev depenedencies

* Adding a catch for the telemetry function

* moving the non type uuid to non dev

* Made hashmap code cleaner

* Fixing cutover start time

* Fixing object creation

* Reverting back to old method.

* Modifying the date time to js objects

* Converting issues and warnings to json object
2021-07-26 12:26:37 -07:00

44 lines
2.1 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import AdsTelemetryReporter, { TelemetryEventMeasures, TelemetryEventProperties } from '@microsoft/ads-extension-telemetry';
import { getPackageInfo } from './api/utils';
const packageJson = require('../package.json');
let packageInfo = getPackageInfo(packageJson)!;
export const TelemetryReporter = new AdsTelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey);
export enum TelemetryViews {
SqlServerDashboard = 'SqlServerDashboard',
CreateDataMigrationServiceDialog = 'CreateDataMigrationServiceDialog',
AssessmentsDialog = 'AssessmentsDialog',
MigrationCutoverDialog = 'MigrationCutoverDialog',
MigrationStatusDialog = 'MigrationStatusDialog',
MigrationWizardAccountSelectionPage = 'MigrationWizardAccountSelectionPage',
MigrationWizardTargetSelectionPage = 'MigrationWizardTargetSelectionPage',
MigrationWizardSummaryPage = 'MigrationWizardSummaryPage',
StartMigrationService = 'StartMigrationSerivce'
}
export enum TelemetryAction {
ServerAssessment = 'ServerAssessment',
ServerAssessmentIssues = 'ServerAssessmentIssues',
ServerAssessmentError = 'ServerAssessmentError',
DatabaseAssessment = 'DatabaseAsssessment',
DatabaseAssessmentWarning = 'DatabaseAssessmentWarning',
DatabaseAssessmentError = 'DatabaseAssessmentError',
StartMigration = 'StartMigration',
CutoverMigration = 'CutoverMigration',
CancelMigration = 'CancelMigration',
MigrationStatus = 'MigrationStatus'
}
export function sendSqlMigrationActionEvent(telemetryView: TelemetryViews, telemetryAction: TelemetryAction, additionalProps: TelemetryEventProperties, additionalMeasurements: TelemetryEventMeasures): void {
TelemetryReporter.createActionEvent(telemetryView, telemetryAction)
.withAdditionalProperties(additionalProps)
.withAdditionalMeasurements(additionalMeasurements)
.send();
}