mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode 27ada910e121e23a6d95ecca9cae595fb98ab568
This commit is contained in:
@@ -120,7 +120,7 @@ export default abstract class BaseErrorTelemetry {
|
||||
private _flushBuffer(): void {
|
||||
/*for (let error of this._buffer) { {{SQL CARBON EDIT}} don't log errors
|
||||
type UnhandledErrorClassification = {} & ErrorEventFragment;
|
||||
this._telemetryService.publicLog2<ErrorEvent, UnhandledErrorClassification>('UnhandledError', error, true);
|
||||
this._telemetryService.publicLogError2<ErrorEvent, UnhandledErrorClassification>('UnhandledError', error);
|
||||
}*/
|
||||
this._buffer.length = 0;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,10 @@ export interface ITelemetryService {
|
||||
|
||||
publicLog2<E extends ClassifiedEvent<T> = never, T extends GDPRClassification<T> = never>(eventName: string, data?: StrictPropertyCheck<T, E>, anonymizeFilePaths?: boolean): Promise<void>;
|
||||
|
||||
publicLogError(errorEventName: string, data?: ITelemetryData): Promise<void>;
|
||||
|
||||
publicLogError2<E extends ClassifiedEvent<T> = never, T extends GDPRClassification<T> = never>(eventName: string, data?: StrictPropertyCheck<T, E>): Promise<void>;
|
||||
|
||||
setEnabled(value: boolean): void;
|
||||
|
||||
getTelemetryInfo(): Promise<ITelemetryInfo>;
|
||||
|
||||
@@ -17,6 +17,7 @@ import { ClassifiedEvent, StrictPropertyCheck, GDPRClassification } from 'vs/pla
|
||||
|
||||
export interface ITelemetryServiceConfig {
|
||||
appender: ITelemetryAppender;
|
||||
sendErrorTelemetry?: boolean;
|
||||
commonProperties?: Promise<{ [name: string]: any }>;
|
||||
piiPaths?: string[];
|
||||
trueMachineId?: string;
|
||||
@@ -34,6 +35,7 @@ export class TelemetryService implements ITelemetryService {
|
||||
private _piiPaths: string[];
|
||||
private _userOptIn: boolean;
|
||||
private _enabled: boolean;
|
||||
private _sendErrorTelemetry: boolean;
|
||||
|
||||
private readonly _disposables = new DisposableStore();
|
||||
private _cleanupPatterns: RegExp[] = [];
|
||||
@@ -47,6 +49,7 @@ export class TelemetryService implements ITelemetryService {
|
||||
this._piiPaths = config.piiPaths || [];
|
||||
this._userOptIn = true;
|
||||
this._enabled = true;
|
||||
this._sendErrorTelemetry = !!config.sendErrorTelemetry;
|
||||
|
||||
// static cleanup pattern for: `file:///DANGEROUS/PATH/resources/app/Useful/Information`
|
||||
this._cleanupPatterns = [/file:\/\/\/.*?\/resources\/app\//gi];
|
||||
@@ -144,6 +147,19 @@ export class TelemetryService implements ITelemetryService {
|
||||
return this.publicLog(eventName, data as ITelemetryData, anonymizeFilePaths);
|
||||
}
|
||||
|
||||
publicLogError(errorEventName: string, data?: ITelemetryData): Promise<any> {
|
||||
if (!this._sendErrorTelemetry) {
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
|
||||
// Send error event and anonymize paths
|
||||
return this.publicLog(errorEventName, data, true);
|
||||
}
|
||||
|
||||
publicLogError2<E extends ClassifiedEvent<T> = never, T extends GDPRClassification<T> = never>(eventName: string, data?: StrictPropertyCheck<T, E>): Promise<any> {
|
||||
return this.publicLogError(eventName, data as ITelemetryData);
|
||||
}
|
||||
|
||||
private _cleanupInfo(stack: string, anonymizeFilePaths?: boolean): string {
|
||||
let updatedStack = stack;
|
||||
|
||||
|
||||
@@ -19,6 +19,13 @@ export const NullTelemetryService = new class implements ITelemetryService {
|
||||
publicLog2<E extends ClassifiedEvent<T> = never, T extends GDPRClassification<T> = never>(eventName: string, data?: StrictPropertyCheck<T, E>) {
|
||||
return this.publicLog(eventName, data as ITelemetryData);
|
||||
}
|
||||
publicLogError(eventName: string, data?: ITelemetryData) {
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
publicLogError2<E extends ClassifiedEvent<T> = never, T extends GDPRClassification<T> = never>(eventName: string, data?: StrictPropertyCheck<T, E>) {
|
||||
return this.publicLogError(eventName, data as ITelemetryData);
|
||||
}
|
||||
|
||||
setEnabled() { }
|
||||
isOptedIn = true;
|
||||
getTelemetryInfo(): Promise<ITelemetryInfo> {
|
||||
|
||||
Reference in New Issue
Block a user