代码之家  ›  专栏  ›  技术社区  ›  Onkel Toob

Azure Cosmos DB:HTTP 400应用程序洞察

  •  6
  • Onkel Toob  · 技术社区  · 7 年前

    我们在一个Azure应用程序服务(一些Web API)中使用应用程序洞察,该服务在 .net core 2.1中查询一个Azure Cosmos数据库。查询是使用nuget包中的 documentclient object完成的,在这个客户机上我们调用了 createddocumentquery<t>(uri feedoptions). extension method.

    现在从用户的角度来看,查询似乎工作正常。然而,在应用程序洞察方面,我们看到了大量与cosmos-db相关的依赖失败。我将尝试可视化我在Azure门户中看到的内容:

    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    |事件持续时间|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | Web API资源名称发布API端点名称200 149.1 ms|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com创建/查询文档400 4毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com查询文档200 7毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com创建/查询文档400 4毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com查询文档200 5毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com创建/查询文档400 4毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com查询文档200 6毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com查询文档200 6毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    | azure documentdb cosmossdb-name.documents.azure.com查询文档200 12毫秒|
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————---
    
    
    

    包含HTTP 400结果的行在Azure门户中以红色突出显示,显然是显示依赖关系失败的行。现在,由于整个请求似乎会导致HTTP 200,并且不会向Web API返回任何错误,所以我只能认为这是一些内部的cosmos-db查询。而且由于一个请求有多个条目,我猜这可能与某些重试策略有关。

    然而,由于我似乎找不到关于错误请求的任何进一步信息:有人能在这个问题上透露一些信息吗?

    update:这里是Azure门户中Application Insights视图的屏幕截图。持续时间值略有不同,但问题相同。

    不幸的是,包含create/query documentquery documentstexts的列隐藏在这里,因为在Azure门户中,您必须水平滚动以查看该信息。

    提前谢谢,托比使用DocumentClientnuget包中的对象Microsoft.azure.documentdb.core 1.10.0版在这个客户身上,我们打电话给CreateDocumentQuery<T>(Uri, FeedOptions)扩展方法。

    现在从用户的角度来看,查询似乎工作正常。然而,在应用程序洞察方面,我们看到了大量与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视图的屏幕截图。持续时间值略有不同,但问题相同。

    Screenshot of Application Insights view

    不幸的是,包含Create/query documentQuery documents文本隐藏在这里,因为在Azure门户中,您必须水平滚动才能查看这些信息。

    多比,提前谢谢你

    1 回复  |  直到 7 年前
        1
  •  5
  •   Kiran Kolli    7 年前

    只要查询成功,就可以忽略400。他们是被期待的。