diff --git a/src/sql/parts/jobManagement/views/jobStepsView.component.ts b/src/sql/parts/jobManagement/views/jobStepsView.component.ts index a3f448850b..01988379f3 100644 --- a/src/sql/parts/jobManagement/views/jobStepsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobStepsView.component.ts @@ -74,6 +74,7 @@ export class JobStepsViewComponent extends JobManagementView implements OnInit, } ngOnInit() { + let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri; this._tree = new Tree(this._tableContainer.nativeElement, { controller: this._treeController, diff --git a/src/vs/platform/telemetry/node/workbenchCommonProperties.ts b/src/vs/platform/telemetry/node/workbenchCommonProperties.ts index 771651e7a4..1d037b72e7 100644 --- a/src/vs/platform/telemetry/node/workbenchCommonProperties.ts +++ b/src/vs/platform/telemetry/node/workbenchCommonProperties.ts @@ -41,6 +41,8 @@ export function resolveWorkbenchCommonProperties(storageService: IStorageService // result['common.instanceId'] = getOrCreateInstanceId(storageService); result['common.instanceId'] = ''; + // {{SQL CARBON EDIT}} + setUsageDates(storageService); return result; }); } @@ -51,3 +53,20 @@ export function resolveWorkbenchCommonProperties(storageService: IStorageService // storageService.store('telemetry.instanceId', result); // return result; // } + +// {{SQL CARBON EDIT}} +function setUsageDates(storageService: IStorageService): void { + // daily last usage date + const appStartDate = new Date('January 1, 2000'); + const dailyLastUseDate = storageService.get('telemetry.dailyLastUseDate') || appStartDate; + storageService.store('telemetry.dailyLastUseDate', dailyLastUseDate); + + // weekly last usage date + const weeklyLastUseDate = storageService.get('telemetry.weeklyLastUseDate') || appStartDate; + storageService.store('telemetry.weeklyLastUseDate', weeklyLastUseDate); + + // monthly last usage date + const monthlyLastUseDate = storageService.get('telemetry.monthlyLastUseDate') || appStartDate; + storageService.store('telemetry.monthlyLastUseDate', monthlyLastUseDate); + +} \ No newline at end of file diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 69e6080356..89c85ac1ec 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -291,6 +291,35 @@ export class WorkbenchShell { }); } + // {{SQL CARBON EDIT}} + private sendUsageEvents(): void { + const dailyLastUseDate = Date.parse(this.storageService.get('telemetry.dailyLastUseDate')); + const weeklyLastUseDate = Date.parse(this.storageService.get('telemetry.weeklyLastUseDate')); + const monthlyLastUseDate = Date.parse(this.storageService.get('telemetry.monthlyLastUseDate')); + + let today = new Date().toUTCString(); + + // daily user event + if (this.diffInDays(Date.parse(today), dailyLastUseDate) >= 1) { + // daily first use + this.telemetryService.publicLog('telemetry.dailyFirstUse', { dailyFirstUse: true }); + this.storageService.store('telemetry.dailyLastUseDate', today); + } + + // weekly user event + if (this.diffInDays(Date.parse(today), weeklyLastUseDate) >= 7) { + // weekly first use + this.telemetryService.publicLog('telemetry.weeklyFirstUse', { weeklyFirstUse: true }); + this.storageService.store('telemetry.weeklyLastUseDate', today); + } + + // monthly user events + if (this.diffInDays(Date.parse(today), monthlyLastUseDate) >= 30) { + this.telemetryService.publicLog('telemetry.monthlyUse', { monthlyFirstUse: true }); + this.storageService.store('telemetry.monthlyLastUseDate', today); + } + } + private logLocalStorageMetrics(): void { if (this.lifecycleService.startupKind === StartupKind.ReloadedWindow || this.lifecycleService.startupKind === StartupKind.ReopenedWindow) { return; // avoid logging localStorage metrics for reload/reopen, we prefer cold startup numbers @@ -400,6 +429,7 @@ export class WorkbenchShell { const errorTelemetry = new ErrorTelemetry(telemetryService); this.toUnbind.push(telemetryService, errorTelemetry); + this.sendUsageEvents(); } else { this.telemetryService = NullTelemetryService; } @@ -504,6 +534,11 @@ export class WorkbenchShell { this.toUnbind.push(addDisposableListener(window, EventType.RESIZE, () => this.layout())); } + // {{SQL CARBON EDIT}} + private diffInDays(nowDate: number, lastUseDate: number): number { + return (nowDate - lastUseDate)/(24*3600*1000); + } + public onUnexpectedError(error: any): void { const errorMsg = toErrorMessage(error, true); if (!errorMsg) {