@theia/telemetry 1.74.0-next.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -0
- package/lib/browser/browser-telemetry-service.d.ts +16 -0
- package/lib/browser/browser-telemetry-service.d.ts.map +1 -0
- package/lib/browser/browser-telemetry-service.js +68 -0
- package/lib/browser/browser-telemetry-service.js.map +1 -0
- package/lib/browser/browser-telemetry-service.spec.d.ts +2 -0
- package/lib/browser/browser-telemetry-service.spec.d.ts.map +1 -0
- package/lib/browser/browser-telemetry-service.spec.js +163 -0
- package/lib/browser/browser-telemetry-service.spec.js.map +1 -0
- package/lib/browser/index.d.ts +2 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +20 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/telemetry-frontend-module.d.ts +4 -0
- package/lib/browser/telemetry-frontend-module.d.ts.map +1 -0
- package/lib/browser/telemetry-frontend-module.js +35 -0
- package/lib/browser/telemetry-frontend-module.js.map +1 -0
- package/lib/browser-only/browser-only-telemetry-service.d.ts +5 -0
- package/lib/browser-only/browser-only-telemetry-service.d.ts.map +1 -0
- package/lib/browser-only/browser-only-telemetry-service.js +28 -0
- package/lib/browser-only/browser-only-telemetry-service.js.map +1 -0
- package/lib/browser-only/browser-only-telemetry-service.spec.d.ts +2 -0
- package/lib/browser-only/browser-only-telemetry-service.spec.d.ts.map +1 -0
- package/lib/browser-only/browser-only-telemetry-service.spec.js +42 -0
- package/lib/browser-only/browser-only-telemetry-service.spec.js.map +1 -0
- package/lib/browser-only/telemetry-frontend-only-module.d.ts +4 -0
- package/lib/browser-only/telemetry-frontend-only-module.d.ts.map +1 -0
- package/lib/browser-only/telemetry-frontend-only-module.js +30 -0
- package/lib/browser-only/telemetry-frontend-only-module.js.map +1 -0
- package/lib/common/index.d.ts +7 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +25 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/telemetry-consent-provider.d.ts +24 -0
- package/lib/common/telemetry-consent-provider.d.ts.map +1 -0
- package/lib/common/telemetry-consent-provider.js +73 -0
- package/lib/common/telemetry-consent-provider.js.map +1 -0
- package/lib/common/telemetry-consent-provider.spec.d.ts +2 -0
- package/lib/common/telemetry-consent-provider.spec.d.ts.map +1 -0
- package/lib/common/telemetry-consent-provider.spec.js +87 -0
- package/lib/common/telemetry-consent-provider.spec.js.map +1 -0
- package/lib/common/telemetry-preferences.d.ts +29 -0
- package/lib/common/telemetry-preferences.d.ts.map +1 -0
- package/lib/common/telemetry-preferences.js +77 -0
- package/lib/common/telemetry-preferences.js.map +1 -0
- package/lib/common/telemetry-preferences.spec.d.ts +2 -0
- package/lib/common/telemetry-preferences.spec.d.ts.map +1 -0
- package/lib/common/telemetry-preferences.spec.js +50 -0
- package/lib/common/telemetry-preferences.spec.js.map +1 -0
- package/lib/common/telemetry-protocol.d.ts +30 -0
- package/lib/common/telemetry-protocol.d.ts.map +1 -0
- package/lib/common/telemetry-protocol.js +78 -0
- package/lib/common/telemetry-protocol.js.map +1 -0
- package/lib/common/telemetry-service.d.ts +28 -0
- package/lib/common/telemetry-service.d.ts.map +1 -0
- package/lib/common/telemetry-service.js +65 -0
- package/lib/common/telemetry-service.js.map +1 -0
- package/lib/common/telemetry-service.spec.d.ts +2 -0
- package/lib/common/telemetry-service.spec.d.ts.map +1 -0
- package/lib/common/telemetry-service.spec.js +128 -0
- package/lib/common/telemetry-service.spec.js.map +1 -0
- package/lib/common/telemetry-topic.d.ts +9 -0
- package/lib/common/telemetry-topic.d.ts.map +1 -0
- package/lib/common/telemetry-topic.js +61 -0
- package/lib/common/telemetry-topic.js.map +1 -0
- package/lib/common/telemetry-topic.spec.d.ts +2 -0
- package/lib/common/telemetry-topic.spec.d.ts.map +1 -0
- package/lib/common/telemetry-topic.spec.js +67 -0
- package/lib/common/telemetry-topic.spec.js.map +1 -0
- package/lib/common/telemetry-types.d.ts +5 -0
- package/lib/common/telemetry-types.d.ts.map +1 -0
- package/lib/common/telemetry-types.js +21 -0
- package/lib/common/telemetry-types.js.map +1 -0
- package/lib/common/test/recording-logger.d.ts +9 -0
- package/lib/common/test/recording-logger.d.ts.map +1 -0
- package/lib/common/test/recording-logger.js +36 -0
- package/lib/common/test/recording-logger.js.map +1 -0
- package/lib/node/index.d.ts +3 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +21 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/telemetry-backend-module.d.ts +4 -0
- package/lib/node/telemetry-backend-module.d.ts.map +1 -0
- package/lib/node/telemetry-backend-module.js +37 -0
- package/lib/node/telemetry-backend-module.js.map +1 -0
- package/lib/node/telemetry-service-impl.d.ts +36 -0
- package/lib/node/telemetry-service-impl.d.ts.map +1 -0
- package/lib/node/telemetry-service-impl.js +208 -0
- package/lib/node/telemetry-service-impl.js.map +1 -0
- package/lib/node/telemetry-service-impl.spec.d.ts +2 -0
- package/lib/node/telemetry-service-impl.spec.d.ts.map +1 -0
- package/lib/node/telemetry-service-impl.spec.js +411 -0
- package/lib/node/telemetry-service-impl.spec.js.map +1 -0
- package/lib/node/telemetry-sink.d.ts +31 -0
- package/lib/node/telemetry-sink.d.ts.map +1 -0
- package/lib/node/telemetry-sink.js +21 -0
- package/lib/node/telemetry-sink.js.map +1 -0
- package/package.json +52 -0
- package/src/browser/browser-telemetry-service.spec.ts +193 -0
- package/src/browser/browser-telemetry-service.ts +69 -0
- package/src/browser/index.ts +17 -0
- package/src/browser/telemetry-frontend-module.ts +34 -0
- package/src/browser-only/browser-only-telemetry-service.spec.ts +44 -0
- package/src/browser-only/browser-only-telemetry-service.ts +23 -0
- package/src/browser-only/telemetry-frontend-only-module.ts +28 -0
- package/src/common/index.ts +22 -0
- package/src/common/telemetry-consent-provider.spec.ts +95 -0
- package/src/common/telemetry-consent-provider.ts +72 -0
- package/src/common/telemetry-preferences.spec.ts +56 -0
- package/src/common/telemetry-preferences.ts +91 -0
- package/src/common/telemetry-protocol.ts +100 -0
- package/src/common/telemetry-service.spec.ts +152 -0
- package/src/common/telemetry-service.ts +90 -0
- package/src/common/telemetry-topic.spec.ts +78 -0
- package/src/common/telemetry-topic.ts +60 -0
- package/src/common/telemetry-types.ts +21 -0
- package/src/common/test/recording-logger.ts +33 -0
- package/src/node/index.ts +18 -0
- package/src/node/telemetry-backend-module.ts +40 -0
- package/src/node/telemetry-service-impl.spec.ts +500 -0
- package/src/node/telemetry-service-impl.ts +214 -0
- package/src/node/telemetry-sink.ts +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-service-impl.spec.js","sourceRoot":"","sources":["../../src/node/telemetry-service-impl.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { MaybePromise } from '@theia/core/lib/common';
|
|
2
|
+
import { TelemetryEvent } from '../common/telemetry-protocol';
|
|
3
|
+
/** @experimental */
|
|
4
|
+
export declare const TelemetrySink: unique symbol;
|
|
5
|
+
/** @experimental */
|
|
6
|
+
export interface TelemetrySink {
|
|
7
|
+
/**
|
|
8
|
+
* A unique sink ID containing at least two slash-separated segments.
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
readonly id: string;
|
|
12
|
+
/**
|
|
13
|
+
* A non-empty list of valid telemetry topic patterns.
|
|
14
|
+
* @experimental
|
|
15
|
+
*/
|
|
16
|
+
readonly interests: readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* Defaults to `remote`.
|
|
19
|
+
* @experimental
|
|
20
|
+
*/
|
|
21
|
+
readonly scope?: 'local' | 'remote';
|
|
22
|
+
/**
|
|
23
|
+
* Must not synchronously call `TelemetryService.report`, which can cause recursive dispatch or a sink cycle.
|
|
24
|
+
* Defer any follow-up telemetry until after the current handler call.
|
|
25
|
+
* @experimental
|
|
26
|
+
*/
|
|
27
|
+
handle(event: TelemetryEvent): MaybePromise<void>;
|
|
28
|
+
/** @experimental */
|
|
29
|
+
flush?(): MaybePromise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=telemetry-sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-sink.d.ts","sourceRoot":"","sources":["../../src/node/telemetry-sink.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,oBAAoB;AACpB,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,oBAAoB;AACpB,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClD,oBAAoB;IACpB,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TelemetrySink = void 0;
|
|
19
|
+
/** @experimental */
|
|
20
|
+
exports.TelemetrySink = Symbol('TelemetrySink');
|
|
21
|
+
//# sourceMappingURL=telemetry-sink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-sink.js","sourceRoot":"","sources":["../../src/node/telemetry-sink.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAKhF,oBAAoB;AACP,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@theia/telemetry",
|
|
3
|
+
"version": "1.74.0-next.68+e1dc76c4d",
|
|
4
|
+
"description": "Theia - Telemetry Extension",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"@theia/core": "1.74.0-next.68+e1dc76c4d",
|
|
7
|
+
"tslib": "^2.8.1"
|
|
8
|
+
},
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"theiaExtensions": [
|
|
13
|
+
{
|
|
14
|
+
"frontend": "lib/browser/telemetry-frontend-module",
|
|
15
|
+
"backend": "lib/node/telemetry-backend-module"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"frontendOnly": "lib/browser-only/telemetry-frontend-only-module"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"theia-extension"
|
|
23
|
+
],
|
|
24
|
+
"license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "https://github.com/eclipse-theia/theia.git"
|
|
28
|
+
},
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/eclipse-theia/theia/issues"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://github.com/eclipse-theia/theia",
|
|
33
|
+
"files": [
|
|
34
|
+
"lib",
|
|
35
|
+
"src"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "theiaext build",
|
|
39
|
+
"clean": "theiaext clean",
|
|
40
|
+
"compile": "theiaext compile",
|
|
41
|
+
"lint": "theiaext lint",
|
|
42
|
+
"test": "theiaext test",
|
|
43
|
+
"watch": "theiaext watch"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@theia/ext-scripts": "1.73.0"
|
|
47
|
+
},
|
|
48
|
+
"nyc": {
|
|
49
|
+
"extends": "../../configs/nyc.json"
|
|
50
|
+
},
|
|
51
|
+
"gitHead": "e1dc76c4d66625cacab9b6e9d288eca104090c4e"
|
|
52
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { FrontendIdProvider } from '@theia/core/lib/browser/messaging/frontend-id-provider';
|
|
19
|
+
import { Emitter, ILogger } from '@theia/core/lib/common';
|
|
20
|
+
import * as sinon from 'sinon';
|
|
21
|
+
import { Container } from '@theia/core/shared/inversify';
|
|
22
|
+
import { TelemetryConsentProvider } from '../common/telemetry-consent-provider';
|
|
23
|
+
import { TelemetryEvent, TelemetryRpc } from '../common/telemetry-protocol';
|
|
24
|
+
import { RecordingLogger } from '../common/test/recording-logger';
|
|
25
|
+
import { TelemetryLevel } from '../common/telemetry-types';
|
|
26
|
+
import { BrowserTelemetryService } from './browser-telemetry-service';
|
|
27
|
+
|
|
28
|
+
const FRONTEND_ID = 'test-frontend-id';
|
|
29
|
+
|
|
30
|
+
interface TestConsentProvider extends TelemetryConsentProvider {
|
|
31
|
+
setLevel(level: TelemetryLevel): void;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function createConsentProvider(initialLevel: TelemetryLevel): TestConsentProvider {
|
|
35
|
+
const emitter = new Emitter<TelemetryLevel>();
|
|
36
|
+
let level = initialLevel;
|
|
37
|
+
return {
|
|
38
|
+
get level(): TelemetryLevel {
|
|
39
|
+
return level;
|
|
40
|
+
},
|
|
41
|
+
onDidChangeTelemetryLevel: emitter.event,
|
|
42
|
+
setLevel: newLevel => {
|
|
43
|
+
level = newLevel;
|
|
44
|
+
emitter.fire(level);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function createRpc(events: TelemetryEvent[], localSinkInterests: Promise<string[]> = Promise.resolve([])): TelemetryRpc {
|
|
50
|
+
return {
|
|
51
|
+
notifyEvent: event => { events.push(event); },
|
|
52
|
+
getLocalSinkInterests: () => localSinkInterests
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function createService(
|
|
57
|
+
rpc: TelemetryRpc,
|
|
58
|
+
consentProvider: TelemetryConsentProvider,
|
|
59
|
+
logger = new RecordingLogger()
|
|
60
|
+
): BrowserTelemetryService {
|
|
61
|
+
const container = new Container();
|
|
62
|
+
container.bind(TelemetryRpc).toConstantValue(rpc);
|
|
63
|
+
container.bind(FrontendIdProvider).toConstantValue({ getId: () => FRONTEND_ID });
|
|
64
|
+
container.bind(TelemetryConsentProvider).toConstantValue(consentProvider);
|
|
65
|
+
container.bind(ILogger).toConstantValue(logger).whenTargetNamed('telemetry:BrowserTelemetryService');
|
|
66
|
+
container.bind(BrowserTelemetryService).toSelf();
|
|
67
|
+
return container.get(BrowserTelemetryService);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
describe('BrowserTelemetryService', () => {
|
|
71
|
+
let clock: sinon.SinonFakeTimers;
|
|
72
|
+
|
|
73
|
+
beforeEach(() => {
|
|
74
|
+
clock = sinon.useFakeTimers({ now: 1234 });
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
afterEach(() => clock.restore());
|
|
78
|
+
|
|
79
|
+
it('assigns report-time timestamps and forwards valid events when allowed', () => {
|
|
80
|
+
const events: TelemetryEvent[] = [];
|
|
81
|
+
const service = createService(createRpc(events), createConsentProvider('all'));
|
|
82
|
+
|
|
83
|
+
service.report('company/action', { enabled: true });
|
|
84
|
+
clock.tick(10);
|
|
85
|
+
service.report('company/other', { count: 3 });
|
|
86
|
+
|
|
87
|
+
expect(events).to.have.length(2);
|
|
88
|
+
expect(events[0]).to.deep.include({ topic: 'company/action', kind: 'usage', data: { enabled: true }, timestamp: 1234 });
|
|
89
|
+
expect(events[1]).to.deep.include({ topic: 'company/other', kind: 'usage', data: { count: 3 }, timestamp: 1244 });
|
|
90
|
+
expect(events.map(event => event.session)).to.deep.equal([FRONTEND_ID, FRONTEND_ID]);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it('forwards optimistically until local interests are ready, then applies consent and local interests', async () => {
|
|
94
|
+
const events: TelemetryEvent[] = [];
|
|
95
|
+
let resolveInterests: (interests: string[]) => void;
|
|
96
|
+
const interests = new Promise<string[]>(resolve => resolveInterests = resolve);
|
|
97
|
+
const consentProvider = createConsentProvider('off');
|
|
98
|
+
const service = createService(createRpc(events, interests), consentProvider);
|
|
99
|
+
|
|
100
|
+
service.report('company/optimistic');
|
|
101
|
+
resolveInterests!(['company/local/*']);
|
|
102
|
+
await interests;
|
|
103
|
+
await Promise.resolve();
|
|
104
|
+
service.report('company/remote');
|
|
105
|
+
service.report('company/local/action');
|
|
106
|
+
consentProvider.setLevel('all');
|
|
107
|
+
service.report('company/enabled');
|
|
108
|
+
|
|
109
|
+
expect(events.map(event => event.topic)).to.deep.equal(['company/optimistic', 'company/local/action', 'company/enabled']);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('fetches local interests once and treats RPC failure as no local interests', async () => {
|
|
113
|
+
const events: TelemetryEvent[] = [];
|
|
114
|
+
const rpc = createRpc(events, Promise.reject(new Error('connection failed')));
|
|
115
|
+
const getLocalSinkInterests = sinon.spy(rpc, 'getLocalSinkInterests');
|
|
116
|
+
const service = createService(rpc, createConsentProvider('off'));
|
|
117
|
+
|
|
118
|
+
service.report('company/optimistic');
|
|
119
|
+
await Promise.resolve();
|
|
120
|
+
await Promise.resolve();
|
|
121
|
+
service.report('company/dropped');
|
|
122
|
+
|
|
123
|
+
expect(getLocalSinkInterests.calledOnce).to.be.true;
|
|
124
|
+
expect(events.map(event => event.topic)).to.deep.equal(['company/optimistic']);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('forwards immutable snapshots of data and attributes with report options', () => {
|
|
128
|
+
const events: TelemetryEvent[] = [];
|
|
129
|
+
const service = createService(createRpc(events), createConsentProvider('all'));
|
|
130
|
+
const data = {
|
|
131
|
+
text: 'value',
|
|
132
|
+
count: 3,
|
|
133
|
+
enabled: true,
|
|
134
|
+
strings: ['first', 'second'],
|
|
135
|
+
numbers: [1, 2],
|
|
136
|
+
booleans: [true, false],
|
|
137
|
+
empty: [] as string[]
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
const attributes = { source: 'browser', labels: ['stable'] };
|
|
141
|
+
service.report('company/action', data, { kind: 'error', attributes });
|
|
142
|
+
|
|
143
|
+
expect(events).to.have.length(1);
|
|
144
|
+
expect(events[0].kind).to.equal('error');
|
|
145
|
+
expect(events[0].session).to.equal(FRONTEND_ID);
|
|
146
|
+
expect(events[0].data).to.deep.equal(data);
|
|
147
|
+
expect(events[0].attributes).to.deep.equal(attributes);
|
|
148
|
+
expect(events[0].attributes).not.to.equal(attributes);
|
|
149
|
+
expect(events[0].attributes?.labels).not.to.equal(attributes.labels);
|
|
150
|
+
expect(events[0].data).not.to.equal(data);
|
|
151
|
+
expect(events[0].data?.strings).not.to.equal(data.strings);
|
|
152
|
+
expect(events[0].data?.numbers).not.to.equal(data.numbers);
|
|
153
|
+
expect(events[0].data?.booleans).not.to.equal(data.booleans);
|
|
154
|
+
expect(events[0].data?.empty).not.to.equal(data.empty);
|
|
155
|
+
expect(Object.isFrozen(events[0])).to.be.true;
|
|
156
|
+
expect(Object.isFrozen(events[0].data)).to.be.true;
|
|
157
|
+
expect(Object.isFrozen(events[0].data?.strings)).to.be.true;
|
|
158
|
+
expect(Object.isFrozen(events[0].attributes)).to.be.true;
|
|
159
|
+
expect(Object.isFrozen(events[0].attributes?.labels)).to.be.true;
|
|
160
|
+
|
|
161
|
+
data.text = 'changed';
|
|
162
|
+
attributes.source = 'changed';
|
|
163
|
+
attributes.labels.push('changed');
|
|
164
|
+
data.strings.push('changed');
|
|
165
|
+
expect(events[0].data?.text).to.equal('value');
|
|
166
|
+
expect(events[0].data?.strings).to.deep.equal(['first', 'second']);
|
|
167
|
+
expect(events[0].attributes).to.deep.equal({ source: 'browser', labels: ['stable'] });
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('does not forward invalid topics or payloads', () => {
|
|
171
|
+
const events: TelemetryEvent[] = [];
|
|
172
|
+
const logger = new RecordingLogger();
|
|
173
|
+
const service = createService(createRpc(events), createConsentProvider('all'), logger);
|
|
174
|
+
const sparse = new Array<string>(2);
|
|
175
|
+
sparse[1] = 'value';
|
|
176
|
+
const invalidCases: Array<[unknown, unknown]> = [
|
|
177
|
+
['invalid', { value: true }],
|
|
178
|
+
['company/action', ['value']],
|
|
179
|
+
['company/action', { values: ['value', 1] }],
|
|
180
|
+
['company/action', { values: [['value']] }],
|
|
181
|
+
['company/action', { values: sparse }]
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
for (const [topic, data] of invalidCases) {
|
|
185
|
+
service.report(topic as string, data as never);
|
|
186
|
+
}
|
|
187
|
+
service.report('company/action', undefined, { kind: 'invalid' as never });
|
|
188
|
+
service.report('company/action', undefined, { attributes: { nested: {} } as never });
|
|
189
|
+
|
|
190
|
+
expect(events).to.be.empty;
|
|
191
|
+
expect(logger.warnings).to.have.length(invalidCases.length + 2);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { FrontendIdProvider } from '@theia/core/lib/browser/messaging/frontend-id-provider';
|
|
18
|
+
import { ILogger } from '@theia/core/lib/common';
|
|
19
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
20
|
+
import { TelemetryConsentProvider, isKindAllowedByLevel } from '../common/telemetry-consent-provider';
|
|
21
|
+
import {
|
|
22
|
+
TelemetryRpc, createTelemetryEvent, describeTelemetryTopic, isValidTelemetryEvent, snapshotTelemetryEvent
|
|
23
|
+
} from '../common/telemetry-protocol';
|
|
24
|
+
import { TelemetryData, TelemetryReportOptions, TelemetryService } from '../common/telemetry-service';
|
|
25
|
+
import { matchesTelemetryTopic } from '../common/telemetry-topic';
|
|
26
|
+
|
|
27
|
+
@injectable()
|
|
28
|
+
export class BrowserTelemetryService implements TelemetryService {
|
|
29
|
+
|
|
30
|
+
protected localSinkInterests: readonly string[] | undefined;
|
|
31
|
+
protected localSinkInterestsPromise: Promise<void> | undefined;
|
|
32
|
+
|
|
33
|
+
@inject(TelemetryRpc)
|
|
34
|
+
protected readonly rpc: TelemetryRpc;
|
|
35
|
+
|
|
36
|
+
@inject(FrontendIdProvider)
|
|
37
|
+
protected readonly frontendIdProvider: FrontendIdProvider;
|
|
38
|
+
|
|
39
|
+
@inject(TelemetryConsentProvider)
|
|
40
|
+
protected readonly consentProvider: TelemetryConsentProvider;
|
|
41
|
+
|
|
42
|
+
@inject(ILogger) @named('telemetry:BrowserTelemetryService')
|
|
43
|
+
protected readonly logger: ILogger;
|
|
44
|
+
|
|
45
|
+
report<T extends object>(topic: string, data?: TelemetryData<T>, options?: TelemetryReportOptions): void {
|
|
46
|
+
const event = createTelemetryEvent(topic, this.frontendIdProvider.getId(), data, options);
|
|
47
|
+
if (!isValidTelemetryEvent(event)) {
|
|
48
|
+
this.logger.warn(`Ignoring malformed telemetry event for topic '${describeTelemetryTopic(topic)}'.`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.fetchLocalSinkInterests();
|
|
52
|
+
if (!isKindAllowedByLevel(this.consentProvider.level, event.kind)
|
|
53
|
+
&& this.localSinkInterests !== undefined
|
|
54
|
+
&& !this.localSinkInterests.some(pattern => matchesTelemetryTopic(pattern, event.topic))) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.rpc.notifyEvent(snapshotTelemetryEvent(event));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
protected fetchLocalSinkInterests(): void {
|
|
61
|
+
if (!this.localSinkInterestsPromise) {
|
|
62
|
+
this.localSinkInterestsPromise = this.rpc.getLocalSinkInterests().then(
|
|
63
|
+
interests => { this.localSinkInterests = interests; },
|
|
64
|
+
() => { this.localSinkInterests = []; }
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
export * from './browser-telemetry-service';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { RemoteConnectionProvider, ServiceConnectionProvider } from '@theia/core/lib/browser';
|
|
18
|
+
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
19
|
+
import { PreferenceTelemetryConsentProvider, TelemetryConsentProvider } from '../common/telemetry-consent-provider';
|
|
20
|
+
import { bindTelemetryPreferences } from '../common/telemetry-preferences';
|
|
21
|
+
import { telemetryServicePath, TelemetryRpc } from '../common/telemetry-protocol';
|
|
22
|
+
import { TelemetryService } from '../common/telemetry-service';
|
|
23
|
+
import { BrowserTelemetryService } from './browser-telemetry-service';
|
|
24
|
+
|
|
25
|
+
export default new ContainerModule(bind => {
|
|
26
|
+
bindTelemetryPreferences(bind);
|
|
27
|
+
bind(TelemetryConsentProvider).to(PreferenceTelemetryConsentProvider).inSingletonScope();
|
|
28
|
+
bind(TelemetryRpc).toDynamicValue(ctx => {
|
|
29
|
+
const connectionProvider = ctx.container.get<ServiceConnectionProvider>(RemoteConnectionProvider);
|
|
30
|
+
return connectionProvider.createProxy<TelemetryRpc>(telemetryServicePath);
|
|
31
|
+
}).inSingletonScope();
|
|
32
|
+
bind(BrowserTelemetryService).toSelf().inSingletonScope();
|
|
33
|
+
bind(TelemetryService).toService(BrowserTelemetryService);
|
|
34
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { Container } from '@theia/core/shared/inversify';
|
|
18
|
+
import { expect } from 'chai';
|
|
19
|
+
import { TelemetryService } from '../common/telemetry-service';
|
|
20
|
+
import { BrowserOnlyTelemetryService } from './browser-only-telemetry-service';
|
|
21
|
+
import telemetryFrontendOnlyModule from './telemetry-frontend-only-module';
|
|
22
|
+
|
|
23
|
+
describe('browser-only telemetry service', () => {
|
|
24
|
+
it('binds the no-op service when telemetry is not already bound', () => {
|
|
25
|
+
const container = new Container();
|
|
26
|
+
container.load(telemetryFrontendOnlyModule);
|
|
27
|
+
|
|
28
|
+
const service = container.get<TelemetryService>(TelemetryService);
|
|
29
|
+
expect(service).to.be.instanceOf(BrowserOnlyTelemetryService);
|
|
30
|
+
expect(() => service.report('invalid', { malformed: { nested: true } } as never)).not.to.throw();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('replaces an existing telemetry service without invoking it', () => {
|
|
34
|
+
const container = new Container();
|
|
35
|
+
let reports = 0;
|
|
36
|
+
container.bind(TelemetryService).toConstantValue({ report: () => reports++ });
|
|
37
|
+
container.load(telemetryFrontendOnlyModule);
|
|
38
|
+
|
|
39
|
+
const service = container.get<TelemetryService>(TelemetryService);
|
|
40
|
+
service.report('company/action');
|
|
41
|
+
expect(service).to.be.instanceOf(BrowserOnlyTelemetryService);
|
|
42
|
+
expect(reports).to.equal(0);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { injectable } from '@theia/core/shared/inversify';
|
|
18
|
+
import { TelemetryData, TelemetryReportOptions, TelemetryService } from '../common/telemetry-service';
|
|
19
|
+
|
|
20
|
+
@injectable()
|
|
21
|
+
export class BrowserOnlyTelemetryService implements TelemetryService {
|
|
22
|
+
report<T extends object>(_topic: string, _data?: TelemetryData<T>, _options?: TelemetryReportOptions): void { }
|
|
23
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
18
|
+
import { TelemetryService } from '../common/telemetry-service';
|
|
19
|
+
import { BrowserOnlyTelemetryService } from './browser-only-telemetry-service';
|
|
20
|
+
|
|
21
|
+
export default new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
22
|
+
bind(BrowserOnlyTelemetryService).toSelf().inSingletonScope();
|
|
23
|
+
if (isBound(TelemetryService)) {
|
|
24
|
+
rebind(TelemetryService).toService(BrowserOnlyTelemetryService);
|
|
25
|
+
} else {
|
|
26
|
+
bind(TelemetryService).toService(BrowserOnlyTelemetryService);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
export * from './telemetry-consent-provider';
|
|
18
|
+
export * from './telemetry-preferences';
|
|
19
|
+
export * from './telemetry-protocol';
|
|
20
|
+
export * from './telemetry-service';
|
|
21
|
+
export * from './telemetry-topic';
|
|
22
|
+
export * from './telemetry-types';
|