我们在Azure应用服务(某些Web API)中使用Application Insights,该服务查询 .NET Core 2.1 中的Azure Cosmos数据库。使用Nuget包 Microsoft.Azure.DocumentDB.Core 1.10.0 中的DocumentClient
对象完成查询,在此客户端上我们调用CreateDocumentQuery<T>(Uri, FeedOptions)扩展方法
现在从用户的角度来看,查询似乎工作正常。但是,在查看Application Insights时,我们会看到有关Cosmos DB的相当多的依赖性故障。我将尝试可视化我在Azure门户中看到的内容:
--------------------------------------------------------------------------------------------------
| Event | Res. | Duration |
--------------------------------------------------------------------------------------------------
| ▼ web-api-resource-name POST api-endpoint-name | 200 | 149.1 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Create/query document | 400 | 4 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Query documents | 200 | 7 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Create/query document | 400 | 4 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Query documents | 200 | 5 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Create/query document | 400 | 4 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Query documents | 200 | 6 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Query documents | 200 | 6 ms |
--------------------------------------------------------------------------------------------------
| AZURE DOCUMENTDB cosmosdb-name.documents.azure.com | Query documents | 200 | 12 ms |
--------------------------------------------------------------------------------------------------
包含HTTP 400结果的行在Azure门户中以红色突出显示,显然是显示依赖性失败的行。现在,由于整个请求似乎导致HTTP 200并且没有错误返回到web api,我只能想到这是一些内部的Cosmos DB查询。而且因为单个请求有多个条目,我猜这可能与某些重试策略有关。
但是,由于我似乎无法找到有关错误请求的任何进一步信息:任何人都可以对这个问题有所了解吗?
更新:以下是Azure门户中Application Insights视图的屏幕截图。持续时间值略有不同,但问题相同。
不幸的是,此处隐藏了包含Create/query document
和Query documents
文本的列,因为在Azure门户中,您必须水平滚动才能查看该信息。
先谢谢,Tobi
答案 0 :(得分:5)
只要查询成功,您就可以忽略400。他们是预期的。
Cosmos服务将对单个服务器分区(或Shard)执行查询。跨分区查询预计将由SDK处理,服务器拒绝则为400。您可以通过FeedOptions.MaxDegreeOfParallism控制SDK执行的并发性。