mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2026-05-21 12:47:29 +01:00
feat: Add duration tracking for query execution success and failure in nextPage function (#2487)
This commit is contained in:
@@ -19,9 +19,16 @@ export interface MinimalQueryIterator {
|
||||
// Pick<QueryIterator<any>, "fetchNext">;
|
||||
|
||||
export function nextPage(documentsIterator: MinimalQueryIterator, firstItemIndex: number): Promise<QueryResults> {
|
||||
TelemetryProcessor.traceStart(Action.ExecuteQuery);
|
||||
return documentsIterator.fetchNext().then((response) => {
|
||||
TelemetryProcessor.traceSuccess(Action.ExecuteQuery, { dataExplorerArea: Constants.Areas.Tab });
|
||||
const startKey = TelemetryProcessor.traceStart(Action.ExecuteQuery);
|
||||
return documentsIterator
|
||||
.fetchNext()
|
||||
.then((response) => {
|
||||
const durationMs = Date.now() - startKey;
|
||||
TelemetryProcessor.traceSuccess(
|
||||
Action.ExecuteQuery,
|
||||
{ dataExplorerArea: Constants.Areas.Tab, durationMs },
|
||||
startKey,
|
||||
);
|
||||
const documents = response.resources;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-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,
|
||||
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;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user