Skip to content

Commit 748e34c

Browse files
authored
Compound view for all telemetry with supporting source filters (microsoft#238090)
1 parent 6579249 commit 748e34c

File tree

5 files changed

+23
-13
lines changed

5 files changed

+23
-13
lines changed

src/vs/platform/telemetry/common/telemetryLogAppender.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { localize } from '../../../nls.js';
88
import { IEnvironmentService } from '../../environment/common/environment.js';
99
import { ILogService, ILogger, ILoggerService, LogLevel } from '../../log/common/log.js';
1010
import { IProductService } from '../../product/common/productService.js';
11-
import { ITelemetryAppender, isLoggingOnly, supportsTelemetry, telemetryLogId, validateTelemetryData } from './telemetryUtils.js';
11+
import { ITelemetryAppender, TelemetryLogGroup, isLoggingOnly, supportsTelemetry, telemetryLogId, validateTelemetryData } from './telemetryUtils.js';
1212

1313
export class TelemetryLogAppender extends Disposable implements ITelemetryAppender {
1414

@@ -31,10 +31,13 @@ export class TelemetryLogAppender extends Disposable implements ITelemetryAppend
3131
const justLoggingAndNotSending = isLoggingOnly(productService, environmentService);
3232
const logSuffix = justLoggingAndNotSending ? ' (Not Sent)' : '';
3333
const isVisible = () => supportsTelemetry(productService, environmentService) && logService.getLevel() === LogLevel.Trace;
34-
this.logger = this._register(loggerService.createLogger(telemetryLogId, { name: localize('telemetryLog', "Telemetry{0}", logSuffix), hidden: !isVisible() }));
34+
this.logger = this._register(loggerService.createLogger(telemetryLogId,
35+
{
36+
name: localize('telemetryLog', "Telemetry{0}", logSuffix),
37+
hidden: !isVisible(),
38+
group: TelemetryLogGroup
39+
}));
3540
this._register(logService.onDidChangeLogLevel(() => loggerService.setVisibility(telemetryLogId, isVisible())));
36-
this.logger.info('Below are logs for every telemetry event sent from VS Code once the log level is set to trace.');
37-
this.logger.info('===========================================================');
3841
}
3942
}
4043

src/vs/platform/telemetry/common/telemetryUtils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import { cloneAndChange, safeStringify } from '../../../base/common/objects.js';
77
import { isObject } from '../../../base/common/types.js';
88
import { URI } from '../../../base/common/uri.js';
9+
import { localize } from '../../../nls.js';
910
import { IConfigurationService } from '../../configuration/common/configuration.js';
1011
import { IEnvironmentService } from '../../environment/common/environment.js';
12+
import { LoggerGroup } from '../../log/common/log.js';
1113
import { IProductService } from '../../product/common/productService.js';
1214
import { getRemoteName } from '../../remote/common/remoteHosts.js';
1315
import { verifyMicrosoftInternalDomain } from './commonProperties.js';
@@ -56,6 +58,7 @@ export class NullEndpointTelemetryService implements ICustomEndpointTelemetrySer
5658

5759
export const telemetryLogId = 'telemetry';
5860
export const extensionTelemetryLogChannelId = 'extensionTelemetryLog';
61+
export const TelemetryLogGroup: LoggerGroup = { id: 'telemetry', name: localize('telemetryLogName', "Telemetry") };
5962

6063
export interface ITelemetryAppender {
6164
log(eventName: string, data: any): void;

src/vs/platform/telemetry/test/common/telemetryLogAppender.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ suite('TelemetryLogAdapter', () => {
9393
const testInstantiationService = new TestInstantiationService();
9494
const testObject = new TelemetryLogAppender(new NullLogService(), testLoggerService, testInstantiationService.stub(IEnvironmentService, {}), testInstantiationService.stub(IProductService, {}));
9595
testObject.log('testEvent', { hello: 'world', isTrue: true, numberBetween1And3: 2 });
96-
assert.strictEqual(testLoggerService.createLogger().logs.length, 2);
96+
assert.strictEqual(testLoggerService.createLogger().logs.length, 0);
9797
testObject.dispose();
9898
testInstantiationService.dispose();
9999
});
@@ -103,7 +103,7 @@ suite('TelemetryLogAdapter', () => {
103103
const testInstantiationService = new TestInstantiationService();
104104
const testObject = new TelemetryLogAppender(new NullLogService(), testLoggerService, testInstantiationService.stub(IEnvironmentService, {}), testInstantiationService.stub(IProductService, {}));
105105
testObject.log('testEvent', { hello: 'world', isTrue: true, numberBetween1And3: 2 });
106-
assert.strictEqual(testLoggerService.createLogger().logs[2], 'telemetry/testEvent' + JSON.stringify([{
106+
assert.strictEqual(testLoggerService.createLogger().logs[0], 'telemetry/testEvent' + JSON.stringify([{
107107
properties: {
108108
hello: 'world',
109109
},

src/vs/workbench/api/common/extHostTelemetry.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { IExtHostInitDataService } from './extHostInitDataService.js';
1313
import { ExtensionIdentifier, IExtensionDescription } from '../../../platform/extensions/common/extensions.js';
1414
import { UIKind } from '../../services/extensions/common/extensionHostProtocol.js';
1515
import { getRemoteName } from '../../../platform/remote/common/remoteHosts.js';
16-
import { cleanData, cleanRemoteAuthority, extensionTelemetryLogChannelId } from '../../../platform/telemetry/common/telemetryUtils.js';
16+
import { cleanData, cleanRemoteAuthority, extensionTelemetryLogChannelId, TelemetryLogGroup } from '../../../platform/telemetry/common/telemetryUtils.js';
1717
import { mixin } from '../../../base/common/objects.js';
1818
import { URI } from '../../../base/common/uri.js';
1919
import { Disposable } from '../../../base/common/lifecycle.js';
@@ -46,15 +46,19 @@ export class ExtHostTelemetry extends Disposable implements ExtHostTelemetryShap
4646
super();
4747
this.extHostTelemetryLogFile = URI.revive(this.initData.environment.extensionTelemetryLogResource);
4848
this._inLoggingOnlyMode = this.initData.environment.isExtensionTelemetryLoggingOnly;
49-
this._outputLogger = loggerService.createLogger(this.extHostTelemetryLogFile, { id: extensionTelemetryLogChannelId, name: localize('extensionTelemetryLog', "Extension Telemetry{0}", this._inLoggingOnlyMode ? ' (Not Sent)' : ''), hidden: true });
49+
this._outputLogger = loggerService.createLogger(this.extHostTelemetryLogFile,
50+
{
51+
id: extensionTelemetryLogChannelId,
52+
name: localize('extensionTelemetryLog', "Extension Telemetry{0}", this._inLoggingOnlyMode ? ' (Not Sent)' : ''),
53+
hidden: true,
54+
group: TelemetryLogGroup,
55+
});
5056
this._register(this._outputLogger);
5157
this._register(loggerService.onDidChangeLogLevel(arg => {
5258
if (isLogLevel(arg)) {
5359
this.updateLoggerVisibility();
5460
}
5561
}));
56-
this._outputLogger.info('Below are logs for extension telemetry events sent to the telemetry output channel API once the log level is set to trace.');
57-
this._outputLogger.info('===========================================================');
5862
}
5963

6064
private updateLoggerVisibility(): void {

src/vs/workbench/api/test/browser/extHostTelemetry.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,11 @@ suite('ExtHostTelemetry', function () {
286286
const logger = createLogger(functionSpy, extensionTelemetry);
287287

288288
// Ensure headers are logged on instantiation
289-
assert.strictEqual(loggerService.createLogger().logs.length, 2);
289+
assert.strictEqual(loggerService.createLogger().logs.length, 0);
290290

291291
logger.logUsage('test-event', { 'test-data': 'test-data' });
292292
// Initial header is logged then the event
293-
assert.strictEqual(loggerService.createLogger().logs.length, 3);
294-
assert.ok(loggerService.createLogger().logs[2].startsWith('test-extension/test-event'));
293+
assert.strictEqual(loggerService.createLogger().logs.length, 1);
294+
assert.ok(loggerService.createLogger().logs[0].startsWith('test-extension/test-event'));
295295
});
296296
});

0 commit comments

Comments
 (0)