hook up unhandled extension errors with extension telemetry (#163424)

* hook up unhandled extension errors with extension telemetry

* fix layering

* forward unhandled language provider errors to extension telemetry loggers
This commit is contained in:
Johannes Rieken
2022-10-13 15:04:08 +02:00
committed by GitHub
parent 17c7a08962
commit 0dd2dc89d2
7 changed files with 110 additions and 65 deletions

View File

@@ -10,7 +10,7 @@ import { ExtHostTelemetryShape } from 'vs/workbench/api/common/extHost.protocol'
import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry';
import { ILogger, ILoggerService } from 'vs/platform/log/common/log';
import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
import { getRemoteName } from 'vs/platform/remote/common/remoteHosts';
import { cleanData, cleanRemoteAuthority } from 'vs/platform/telemetry/common/telemetryUtils';
@@ -107,6 +107,15 @@ export class ExtHostTelemetry implements ExtHostTelemetryShape {
}
this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails());
}
onExtensionError(extension: ExtensionIdentifier, error: Error): boolean {
const logger = this._telemetryLoggers.get(extension.value);
if (!logger) {
return false;
}
logger.logError(error);
return true;
}
}
export class ExtHostTelemetryLogger {