diff --git a/src/vs/code/node/sharedProcess/sharedProcessMain.ts b/src/vs/code/node/sharedProcess/sharedProcessMain.ts index 48791c1b7bb..c85b246c2a5 100644 --- a/src/vs/code/node/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/node/sharedProcess/sharedProcessMain.ts @@ -158,6 +158,8 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter { instantiationService.invokeFunction(accessor => { const logService = accessor.get(ILogService); + const telemetryService = accessor.get(ITelemetryService); + const userDataProfilesService = accessor.get(IUserDataProfilesService); // Log info logService.trace('sharedProcess configuration', JSON.stringify(this.configuration)); @@ -167,6 +169,10 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter { // Error handler this.registerErrorHandler(logService); + + // Report Profiles Info + this.reportProfilesInfo(telemetryService, userDataProfilesService); + this._register(userDataProfilesService.onDidChangeProfiles(() => this.reportProfilesInfo(telemetryService, userDataProfilesService))); }); // Instantiate Contributions @@ -444,6 +450,20 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter { }); } + private reportProfilesInfo(telemetryService: ITelemetryService, userDataProfilesService: IUserDataProfilesService): void { + type ProfilesInfoClassification = { + owner: 'sandy081'; + comment: 'Report profiles information'; + count: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Number of profiles' }; + }; + type ProfilesInfoEvent = { + count: number; + }; + telemetryService.publicLog2('profilesInfo', { + count: userDataProfilesService.profiles.length + }); + } + handledClientConnection(e: MessageEvent): boolean { // This filter on message port messages will look for