@@ -286,12 +286,14 @@ export class WorkbenchShell extends Disposable {
286286
287287 private logStorageTelemetry ( ) : void {
288288 const globalStorageInitDuration = perf . getDuration ( 'willInitGlobalStorage' , 'didInitGlobalStorage' ) ;
289+ const workspaceStorageRequireDuration = perf . getDuration ( 'willRequireSQLite' , 'didRequireSQLite' ) ;
289290 const workspaceStorageInitDuration = perf . getDuration ( 'willInitWorkspaceStorage' , 'didInitWorkspaceStorage' ) ;
291+ const workspaceStorageFileExistsDuration = perf . getDuration ( 'willCheckWorkspaceStorageExists' , 'didCheckWorkspaceStorageExists' ) ;
292+ const workspaceStorageMigrationDuration = perf . getDuration ( 'willMigrateWorkspaceStorageKeys' , 'didMigrateWorkspaceStorageKeys' ) ;
290293 const workbenchLoadDuration = perf . getDuration ( 'willLoadWorkbenchMain' , 'didLoadWorkbenchMain' ) ;
291- const localStorageAccessDuration = perf . getDuration ( 'willAccessLocalStorage' , 'didAccessLocalStorage' ) ;
292- const localStorageReadDuration = perf . getDuration ( 'willReadLocalStorage' , 'didReadLocalStorage' ) ;
294+ const localStorageDuration = perf . getDuration ( 'willReadLocalStorage' , 'didReadLocalStorage' ) ;
293295
294- let workspaceIntegrity : string ;
296+ let workspaceIntegrity = 'unresolved' ;
295297
296298 // Handle errors (avoid duplicates to reduce spam)
297299 const loggedStorageErrors = new Set < string > ( ) ;
@@ -302,29 +304,33 @@ export class WorkbenchShell extends Disposable {
302304 loggedStorageErrors . add ( errorStr ) ;
303305
304306 /* __GDPR__
305- "sqliteStorageError2 " : {
307+ "sqliteStorageError3 " : {
306308 "globalReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
309+ "workspaceExistsTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
310+ "workspaceRequireTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
307311 "workspaceReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
308- "localStorageAccessTime " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
309- "localStorageReadTime " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
312+ "workspaceMigrationTime " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
313+ "localStorageTime " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
310314 "workbenchRequireTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
311315 "globalKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
312316 "workspaceKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
313317 "startupKind": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
314- "workspaceIntegrity " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
318+ "integrityWorkspace " : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
315319 "storageError": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
316320 }
317321 */
318- this . telemetryService . publicLog ( 'sqliteStorageError2 ' , {
322+ this . telemetryService . publicLog ( 'sqliteStorageError3 ' , {
319323 'globalReadTime' : globalStorageInitDuration ,
324+ 'workspaceExistsTime' : workspaceStorageFileExistsDuration ,
325+ 'workspaceMigrationTime' : workspaceStorageMigrationDuration ,
326+ 'workspaceRequireTime' : workspaceStorageRequireDuration ,
320327 'workspaceReadTime' : workspaceStorageInitDuration ,
321- 'localStorageAccessTime' : localStorageAccessDuration ,
322- 'localStorageReadTime' : localStorageReadDuration ,
328+ 'localStorageTime' : localStorageDuration ,
323329 'workbenchRequireTime' : workbenchLoadDuration ,
324330 'globalKeys' : this . storageService . storage . getSize ( StorageScope . GLOBAL ) ,
325331 'workspaceKeys' : this . storageService . storage . getSize ( StorageScope . WORKSPACE ) ,
326332 'startupKind' : this . lifecycleService . startupKind ,
327- 'workspaceIntegrity ' : workspaceIntegrity ,
333+ 'integrityWorkspace ' : workspaceIntegrity ,
328334 'storageError' : errorStr
329335 } ) ;
330336 }
@@ -334,28 +340,42 @@ export class WorkbenchShell extends Disposable {
334340 this . storageService . storage . checkIntegrity ( StorageScope . WORKSPACE , false ) . then ( integrity => {
335341 perf . mark ( 'didCheckWorkspaceStorageIntegrity' ) ;
336342
337- workspaceIntegrity = integrity ;
343+ if ( integrity ) {
344+ workspaceIntegrity = integrity ;
345+ }
346+
347+ if ( this . storageService . storage . hasErrors ) {
348+ return ; // do not log performance numbers when errors occured
349+ }
350+
351+ if ( this . environmentService . verbose || this . environmentService . logStorage ) {
352+ return ; // do not log when running in verbose mode
353+ }
338354
339355 /* __GDPR__
340- "sqliteStorageTimers2 " : {
356+ "sqliteStorageTimers3 " : {
341357 "globalReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
358+ "workspaceExistsTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
359+ "workspaceMigrationTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
360+ "workspaceRequireTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
342361 "workspaceReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
343- "localStorageAccessTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
344- "localStorageReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
345- "workspaceIntegrity" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
362+ "localStorageTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
363+ "integrityWorkspace" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
346364 "workspaceIntegrityCheckTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
347365 "workbenchRequireTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
348366 "globalKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
349367 "workspaceKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
350368 "startupKind": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
351369 }
352370 */
353- this . telemetryService . publicLog ( 'sqliteStorageTimers2 ' , {
371+ this . telemetryService . publicLog ( 'sqliteStorageTimers3 ' , {
354372 'globalReadTime' : globalStorageInitDuration ,
373+ 'workspaceExistsTime' : workspaceStorageFileExistsDuration ,
374+ 'workspaceMigrationTime' : workspaceStorageMigrationDuration ,
375+ 'workspaceRequireTime' : workspaceStorageRequireDuration ,
355376 'workspaceReadTime' : workspaceStorageInitDuration ,
356- 'localStorageAccessTime' : localStorageAccessDuration ,
357- 'localStorageReadTime' : localStorageReadDuration ,
358- 'workspaceIntegrity' : workspaceIntegrity ,
377+ 'localStorageTime' : localStorageDuration ,
378+ 'integrityWorkspace' : workspaceIntegrity ,
359379 'workspaceIntegrityCheckTime' : perf . getDuration ( 'willCheckWorkspaceStorageIntegrity' , 'didCheckWorkspaceStorageIntegrity' ) ,
360380 'workbenchRequireTime' : workbenchLoadDuration ,
361381 'globalKeys' : this . storageService . storage . getSize ( StorageScope . GLOBAL ) ,
0 commit comments