Postman调用Cosmos DB未返回x-ms-documentdb-query-metrics指标求助
我来帮你梳理下几个常见的原因,我之前在调试Cosmos DB查询的时候也遇到过类似的情况:
请求类型不匹配:
x-ms-documentdb-populatequerymetrics这个头只对查询类请求生效,比如SQL查询(POST到/docs路径并携带查询体)、跨分区查询这类需要Cosmos DB查询引擎处理的操作。如果你的请求是GET单文档、创建/删除文档这类直接操作资源的请求,服务端不会返回这个指标字段。先确认你的请求是不是真正的查询操作。请求头拼写错误:Cosmos DB的HTTP头字段是区分大小写的,你得确保添加的头是
x-ms-documentdb-populatequerymetrics,连字符、大小写都不能错。比如写成PopulateQueryMetrics或者少了某个连字符,服务端都会忽略这个配置,自然不会返回指标。对照你的截图再仔细核对一遍头名称。API版本过低:这个查询指标功能是从API版本
2017-02-22开始支持的,如果你的请求里的x-ms-version头版本低于这个值,服务端就不会识别populatequerymetrics头。检查下请求里的x-ms-version是否符合要求,建议用最新的稳定版本。Postman隐藏了响应头:有时候Postman会默认隐藏一些非标准的响应头,你可以在响应的「Headers」面板里,勾选「Show hidden headers」选项,看看是不是这个字段被隐藏了,而不是服务端没返回。
查询未触发计算逻辑:如果你的查询是极端简单的情况(比如筛选条件直接匹配分区键且只返回单个文档,本质上和直接读取文档类似),Cosmos DB可能不会生成查询指标。这种情况比较少见,但可以试试稍微复杂一点的查询(比如带过滤、排序)来验证。
内容的提问来源于stack exchange,提问作者user3603308

