Enhance logging and error handling in sdk read collections api (#2602)

* Enhance logging and error handling in readCollections function

* Add defensive measure to avoid breaking runtime.

---------

Co-authored-by: Laurent Nguyen <languye@microsoft.com>
This commit is contained in:
Laurent Nguyen
2026-09-16 14:30:19 +02:00
committed by GitHub
parent b16229d1f8
commit 11959bb7b0
2 changed files with 91 additions and 19 deletions
+12 -1
View File
@@ -78,7 +78,9 @@ export async function readCollections(databaseId: string): Promise<DataModels.Co
const sdkResponse = await client().database(databaseId).containers.readAll().fetchAll();
Logger.logInfo(
`readCollections: fetchAll completed for database ${databaseId}, count=${sdkResponse.resources
?.length}, durationMs=${Date.now() - fetchAllStart}`,
?.length}, durationMs=${Date.now() - fetchAllStart}, diagnostics=${JSON.stringify(
sdkResponse.diagnostics?.clientSideRequestStatistics,
)}`,
"readCollections",
);
traceSuccess(
@@ -88,6 +90,15 @@ export async function readCollections(databaseId: string): Promise<DataModels.Co
);
return sdkResponse.resources as DataModels.Collection[];
} catch (error) {
const diagnostics = error instanceof Error && "diagnostics" in error ? error.diagnostics : undefined;
if (diagnostics && typeof diagnostics === "object" && "clientSideRequestStatistics" in diagnostics) {
Logger.logError(
`readCollections: fetchAll failed for database ${databaseId}, diagnostics=${JSON.stringify(
diagnostics.clientSideRequestStatistics,
)}`,
"readCollections",
);
}
traceFailure(Action.ReadCollections, { databaseId, error: error?.message }, startKey);
handleError(error, "ReadCollections", `Error while querying containers for database ${databaseId}`);
throw error;