Skip to content

Commit 77ce982

Browse files
laurenastrid1Lauren Nathan
and
Lauren Nathan
authored
Added error telemetry for query plans (#19417)
* added error telemetry * pr comments + fixed test * fix unit test --------- Co-authored-by: Lauren Nathan <[email protected]>
1 parent 9b04666 commit 77ce982

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/controllers/sharedExecutionPlanUtils.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import * as vscode from "vscode";
1616
import UntitledSqlDocumentService from "./untitledSqlDocumentService";
1717
import { ApiStatus } from "../sharedInterfaces/webview";
1818
import { TelemetryActions, TelemetryViews } from "../sharedInterfaces/telemetry";
19-
import { sendActionEvent } from "../telemetry/telemetry";
19+
import { sendActionEvent, sendErrorEvent } from "../telemetry/telemetry";
2020
import { sqlPlanLanguageId } from "../constants/constants";
2121
import { executionPlanFileFilter } from "../constants/locConstants";
2222

@@ -104,9 +104,18 @@ export async function createExecutionPlanGraphs(
104104
);
105105
newState.loadState = ApiStatus.Loaded;
106106
} catch (e) {
107-
// malformed xml
107+
// Errors out on first instance of malformed xml
108108
newState.loadState = ApiStatus.Error;
109109
newState.errorMessage = getErrorMessage(e);
110+
state.executionPlanState = newState;
111+
112+
sendErrorEvent(
113+
TelemetryViews.ExecutionPlan,
114+
TelemetryActions.OpenExecutionPlan,
115+
e,
116+
true, // includeErrorMessage
117+
);
118+
return state;
110119
}
111120
}
112121

test/unit/executionPlanWebviewController.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ suite("Execution Plan Utilities", () => {
363363

364364
sinon.assert.calledOnceWithExactly(getExecutionPlanStub, planFile);
365365

366-
assert.notEqual(result, undefined, "The resulting state should be defined");
366+
assert.notDeepEqual(result, undefined, "The resulting state should be defined");
367367
assert.deepStrictEqual(
368368
result.executionPlanState.loadState,
369369
ApiStatus.Error,

0 commit comments

Comments
 (0)