You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中为CosmosDB应用多维度过滤器获取利用率数据

在Get-AzMetric中应用多个维度过滤器的正确方法

你当前触发Bad Request错误的原因是:将New-AzMetricFilter生成的多个过滤器对象存入数组后传给-MetricFilter参数,但该参数实际需要的是单个组合后的过滤器字符串,数组格式不符合Azure Monitor的API要求。

以下是两种正确实现多维度过滤的方式:

方法1:用New-AzMetricFilter自带参数组合条件

通过-And或-Or参数,直接将多个维度过滤规则组合成合法的过滤器字符串:

# 组合两个维度的"等于"条件(逻辑与)
$dimFilter = New-AzMetricFilter -Dimension CollectionName -Operator eq -Value $collectionName `
               -And (New-AzMetricFilter -Dimension Region -Operator eq -Value 'Central US')

$output = Get-AzMetric -ResourceId $resourceid `
               -StartTime $startTime `
               -EndTime $endTime `
               -MetricNames $metricsName `
               -TimeGrain $timeGrain `
               -MetricFilter $dimFilter `
               -AggregationType Average

方法2:手动拼接符合OData格式的过滤器字符串

如果需要更灵活的逻辑控制,可直接按照Azure Monitor的OData语法手动构造过滤字符串:

# 手动构造多维度过滤规则(逻辑与用小写"and",逻辑或用小写"or")
$dimFilter = "CollectionName eq '$collectionName' and Region eq 'Central US'"

$output = Get-AzMetric -ResourceId $resourceid `
               -StartTime $startTime `
               -EndTime $endTime `
               -MetricNames $metricsName `
               -TimeGrain $timeGrain `
               -MetricFilter $dimFilter `
               -AggregationType Average

额外注意事项

  • 确保$collectionName变量已正确赋值,且取值与目标资源的实际维度值完全匹配(包括大小写、空格等细节,不匹配也会触发Bad Request)
  • 过滤器的逻辑运算符必须是小写的and/or,不能使用大写格式

内容的提问来源于stack exchange,提问作者learningtocode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:45:36