如何确定哪个服务正在对 CosmosDB 数据库执行查询?

How to determine what service is executing queries against CosmosDB database?

我工作的环境中有一个我们的团队想要关闭的遗留生产 Cosmos 数据库。根据 Cosmos 的指标和日志,我们可以清楚地看到插入和更新插入仍然命中容器,但是,我们无法确定请求来自何处(即什么应用程序服务)。

有没有办法确定哪些应用服务查询来自使用日志?

Logs 中,对于来自 AzureDiagnostics 来源的 Cosmos DB 帐户和 Category == "DataPlaneRequests" 提取 clientIdAdress_suserAgent_s 以识别请求的来源。

以下查询将 return IP 和请求列表(读取、创建、查询等):

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.DOCUMENTDB" and Category == "DataPlaneRequests"
| project clientIpAddress_s, userAgent_s, requestResourceId_s, OperationName

添加 where 子句 OperationName == "Create" 将 return 仅在结果集中插入。此外,通过 requestResourceId 添加过滤器以关注多数据库帐户中的特定 datqbase 可能很有用。