Clean up extension telemetry (#5596)

This commit is contained in:
Charles Gagnon
2019-05-23 15:29:28 -07:00
committed by GitHub
parent 776e2cf6e7
commit fbbf767700
3 changed files with 53 additions and 32 deletions

View File

@@ -62,27 +62,11 @@ export class Telemetry {
}
/**
* Send a telemetry event for an exception
* Send a telemetry event for a general error
* @param err The error to log
*/
public static sendTelemetryEventForException(
err: any, methodName: string, extensionConfigName: string): void {
try {
let stackArray: string[];
let firstLine: string = '';
if (err !== undefined && err.stack !== undefined) {
stackArray = err.stack.split('\n');
if (stackArray !== undefined && stackArray.length >= 2) {
firstLine = stackArray[1]; // The first line is the error message and we don't want to send that telemetry event
firstLine = filterErrorPath(firstLine);
}
}
// Only adding the method name and the fist line of the stack trace. We don't add the error message because it might have PII
this.sendTelemetryEvent('Exception', { methodName: methodName, errorLine: firstLine });
} catch (telemetryErr) {
// If sending telemetry event fails ignore it so it won't break the extension
console.error('Failed to send telemetry event. error: ' + telemetryErr, extensionConfigName);
}
public static sendTelemetryEventForError(err: string, properties?: ITelemetryEventProperties): void {
this.sendTelemetryEvent('Error', { error: err, ...properties });
}
/**
@@ -106,7 +90,12 @@ export class Telemetry {
properties = {};
}
this.reporter.sendTelemetryEvent(eventName, properties, measures);
try {
this.reporter.sendTelemetryEvent(eventName, properties, measures);
} catch (telemetryErr) {
// If sending telemetry event fails ignore it so it won't break the extension
console.error('Failed to send telemetry event. error: ' + telemetryErr);
}
}
}