From ecdfe3111676515cbf3fe0d9d00576ba063cd7a2 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 19 Nov 2017 23:13:43 -0800 Subject: [PATCH] Add telemetry for remote search falling back on local --- .../electron-browser/preferencesSearch.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts b/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts index 43b76998d8a..9a0c56e58d8 100644 --- a/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts +++ b/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { TPromise } from 'vs/base/common/winjs.base'; +import * as errors from 'vs/base/common/errors'; import Event, { Emitter } from 'vs/base/common/event'; import { ISettingsEditorModel, IFilterResult, ISetting, ISettingsGroup, IWorkbenchSettingsConfiguration, IFilterMetadata, IPreferencesSearchService } from 'vs/workbench/parts/preferences/common/preferences'; import { IRange, Range } from 'vs/editor/common/core/range'; @@ -19,6 +20,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { IRequestService } from 'vs/platform/request/node/request'; import { asJson } from 'vs/base/node/request'; import { Disposable } from 'vs/base/common/lifecycle'; +import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; export interface IEndpointDetails { urlBase: string; @@ -78,7 +80,8 @@ export class PreferencesSearchModel { constructor( private provider: IPreferencesSearchService, private filter: string, remote: boolean, - @IInstantiationService instantiationService: IInstantiationService + @IInstantiationService instantiationService: IInstantiationService, + @ITelemetryService private telemetryService: ITelemetryService ) { this._localProvider = new LocalSearchProvider(filter); @@ -94,6 +97,15 @@ export class PreferencesSearchModel { if (this._remoteProvider) { return this._remoteProvider.filterPreferences(preferencesModel).then(null, err => { + const message = errors.getErrorMessage(err); + + /* __GDPR__ + "defaultSettings.searchError" : { + "message": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } + */ + this.telemetryService.publicLog('defaultSettings.searchError', { message }); + return this._localProvider.filterPreferences(preferencesModel); }); } else { -- GitLab