src/vs/workbench/services/telemetry/browser/telemetryService.ts/WebAppInsightsAppender/log
class WebAppInsightsAppender:	public log(eventName: string, data: any): void {
		if (!this._aiClient && this._aiClientLoaded) {
			return;
		} else if (!this._aiClient && !this._aiClientLoaded) {
			this._telemetryCache.push({ eventName, data });
			return;
		}

		data = validateTelemetryData(data);

		// Web does not expect properties and measurements so we must
		// spread them out. This is different from desktop which expects them
		data = { ...data.properties, ...data.measurements };

		// undefined assertion is ok since above two if statements cover both cases
		this._aiClient!.trackEvent({ name: this._eventPrefix + '/' + eventName }, data);
	}