如何确定哪个服务正在对 CosmosDB 数据库执行查询?
How to determine what service is executing queries against CosmosDB database?
我工作的环境中有一个我们的团队想要关闭的遗留生产 Cosmos 数据库。根据 Cosmos 的指标和日志,我们可以清楚地看到插入和更新插入仍然命中容器,但是,我们无法确定请求来自何处(即什么应用程序服务)。
有没有办法确定哪些应用服务查询来自使用日志?
在 Logs
中,对于来自 AzureDiagnostics
来源的 Cosmos DB 帐户和 Category == "DataPlaneRequests"
提取 clientIdAdress_s
和 userAgent_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 可能很有用。
我工作的环境中有一个我们的团队想要关闭的遗留生产 Cosmos 数据库。根据 Cosmos 的指标和日志,我们可以清楚地看到插入和更新插入仍然命中容器,但是,我们无法确定请求来自何处(即什么应用程序服务)。
有没有办法确定哪些应用服务查询来自使用日志?
在 Logs
中,对于来自 AzureDiagnostics
来源的 Cosmos DB 帐户和 Category == "DataPlaneRequests"
提取 clientIdAdress_s
和 userAgent_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 可能很有用。