feat: Add duration tracking for query execution success and failure in nextPage function (#2487)

This commit is contained in:
Laurent Nguyen
2026-05-20 16:40:58 +02:00
committed by GitHub
parent 05f834ed57
commit 7ad7aac4f2
+19 -3
View File
@@ -19,9 +19,16 @@ export interface MinimalQueryIterator {
// Pick<QueryIterator<any>, "fetchNext">; // Pick<QueryIterator<any>, "fetchNext">;
export function nextPage(documentsIterator: MinimalQueryIterator, firstItemIndex: number): Promise<QueryResults> { export function nextPage(documentsIterator: MinimalQueryIterator, firstItemIndex: number): Promise<QueryResults> {
TelemetryProcessor.traceStart(Action.ExecuteQuery); const startKey = TelemetryProcessor.traceStart(Action.ExecuteQuery);
return documentsIterator.fetchNext().then((response) => { return documentsIterator
TelemetryProcessor.traceSuccess(Action.ExecuteQuery, { dataExplorerArea: Constants.Areas.Tab }); .fetchNext()
.then((response) => {
const durationMs = Date.now() - startKey;
TelemetryProcessor.traceSuccess(
Action.ExecuteQuery,
{ dataExplorerArea: Constants.Areas.Tab, durationMs },
startKey,
);
const documents = response.resources; const documents = response.resources;
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
const headers = (response as any).headers || {}; // TODO this is a private key. Remove any const headers = (response as any).headers || {}; // TODO this is a private key. Remove any
@@ -36,5 +43,14 @@ export function nextPage(documentsIterator: MinimalQueryIterator, firstItemIndex
activityId: response.activityId, activityId: response.activityId,
requestCharge: response.requestCharge, requestCharge: response.requestCharge,
}; };
})
.catch((error) => {
const durationMs = Date.now() - startKey;
TelemetryProcessor.traceFailure(
Action.ExecuteQuery,
{ dataExplorerArea: Constants.Areas.Tab, durationMs, error: error.message },
startKey,
);
throw error;
}); });
} }