MCPcopy Create free account
hub / github.com/microsoft/vscode-cpptools / ExperimentationTelemetry

Class ExperimentationTelemetry

Extension/src/telemetry.ts:19–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17}
18
19export class ExperimentationTelemetry implements IExperimentationTelemetry {
20 private sharedProperties: Record<string, string> = {};
21
22 constructor(private baseReporter: TelemetryReporter) { }
23
24 sendTelemetryEvent(eventName: string, properties?: Record<string, string>, measurements?: Record<string, number>): void {
25 this.baseReporter.sendTelemetryEvent(
26 eventName,
27 {
28 ...this.sharedProperties,
29 ...properties
30 },
31 measurements
32 );
33 }
34
35 sendTelemetryErrorEvent(eventName: string, properties?: Record<string, string>, _measurements?: Record<string, number>): void {
36 this.baseReporter.sendTelemetryErrorEvent(eventName, {
37 ...this.sharedProperties,
38 ...properties
39 });
40 }
41
42 setSharedProperty(name: string, value: string): void {
43 this.sharedProperties[name] = value;
44 }
45
46 postEvent(eventName: string, props: Map<string, string>): void {
47 const event: Record<string, string> = {};
48 for (const [key, value] of props) {
49 event[key] = value;
50 }
51 this.sendTelemetryEvent(eventName, event);
52 }
53
54 dispose(): Promise<any> {
55 return this.baseReporter.dispose();
56 }
57}
58
59let initializationPromise: Promise<IExperimentationService> | undefined;
60let experimentationTelemetry: ExperimentationTelemetry | undefined;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected