Skip to content

Commit c7ad4a4

Browse files
authored
Don't do telemetry health check when telemetry is off (microsoft#157274)
1 parent 1cf2fd1 commit c7ad4a4

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

src/vs/platform/telemetry/browser/1dsAppender.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,5 @@ export class OneDataSystemWebAppender extends AbstractOneDataSystemAppender {
1515
iKeyOrClientFactory: string | (() => AppInsightsCore), // allow factory function for testing
1616
) {
1717
super(isInternalTelemetry, eventPrefix, defaultData, iKeyOrClientFactory);
18-
19-
// If we cannot fetch the endpoint it means it is down and we should not send any telemetry.
20-
// This is most likely due to ad blockers
21-
fetch(this.endPointUrl, { method: 'POST' }).catch(err => {
22-
this._aiCoreOrKey = undefined;
23-
});
2418
}
2519
}

src/vs/platform/telemetry/common/1dsAppender.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { onUnexpectedError } from 'vs/base/common/errors';
99
import { mixin } from 'vs/base/common/objects';
1010
import { ITelemetryAppender, validateTelemetryData } from 'vs/platform/telemetry/common/telemetryUtils';
1111

12-
const endpointUrl = 'https://mobile.events.data.microsoft.com/OneCollector/1.0';
12+
export const telemetryEndpointUrl = 'https://mobile.events.data.microsoft.com/OneCollector/1.0';
1313

1414
async function getClient(instrumentationKey: string, addInternalFlag?: boolean, xhrOverride?: IXHROverride): Promise<AppInsightsCore> {
1515
const oneDs = await import('@microsoft/1ds-core-js');
@@ -19,7 +19,7 @@ async function getClient(instrumentationKey: string, addInternalFlag?: boolean,
1919
// Configure the app insights core to send to collector++ and disable logging of debug info
2020
const coreConfig: IExtendedConfiguration = {
2121
instrumentationKey,
22-
endpointUrl,
22+
endpointUrl: telemetryEndpointUrl,
2323
loggingLevelTelemetry: 0,
2424
loggingLevelConsole: 0,
2525
disableCookiesUsage: true,
@@ -59,7 +59,7 @@ export abstract class AbstractOneDataSystemAppender implements ITelemetryAppende
5959

6060
protected _aiCoreOrKey: AppInsightsCore | string | undefined;
6161
private _asyncAiCore: Promise<AppInsightsCore> | null;
62-
protected readonly endPointUrl = endpointUrl;
62+
protected readonly endPointUrl = telemetryEndpointUrl;
6363

6464
constructor(
6565
private readonly _isInternalTelemetry: boolean,

src/vs/workbench/services/telemetry/browser/telemetryService.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ import { ILoggerService } from 'vs/platform/log/common/log';
1111
import { IProductService } from 'vs/platform/product/common/productService';
1212
import { IStorageService } from 'vs/platform/storage/common/storage';
1313
import { OneDataSystemWebAppender } from 'vs/platform/telemetry/browser/1dsAppender';
14+
import { telemetryEndpointUrl } from 'vs/platform/telemetry/common/1dsAppender';
1415
import { ClassifiedEvent, GDPRClassification, StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings';
1516
import { ITelemetryData, ITelemetryInfo, ITelemetryService, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry';
1617
import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogAppender';
1718
import { ITelemetryServiceConfig, TelemetryService as BaseTelemetryService } from 'vs/platform/telemetry/common/telemetryService';
18-
import { isInternalTelemetry, ITelemetryAppender, NullTelemetryService, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
19+
import { getTelemetryLevel, isInternalTelemetry, ITelemetryAppender, NullTelemetryService, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
1920
import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService';
2021
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
2122
import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/browser/workbenchCommonProperties';
@@ -49,8 +50,15 @@ export class TelemetryService extends Disposable implements ITelemetryService {
4950
commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, isInternal, environmentService.remoteAuthority, productService.embedderIdentifier, productService.removeTelemetryMachineId, environmentService.options && environmentService.options.resolveCommonTelemetryProperties),
5051
sendErrorTelemetry: this.sendErrorTelemetry,
5152
};
52-
5353
this.impl = this._register(new BaseTelemetryService(config, configurationService, productService));
54+
55+
if (getTelemetryLevel(configurationService) !== TelemetryLevel.NONE) {
56+
// If we cannot fetch the endpoint it means it is down and we should not send any telemetry.
57+
// This is most likely due to ad blockers
58+
fetch(telemetryEndpointUrl, { method: 'POST' }).catch(err => {
59+
this.impl = NullTelemetryService;
60+
});
61+
}
5462
} else {
5563
this.impl = NullTelemetryService;
5664
}

0 commit comments

Comments
 (0)