无法为podReadyPercentage指标创建MetricAlert的问题求助
问题
尝试用以下PowerShell脚本创建Azure Metric Alert时,报错提示找不到podReadyPercentage指标:
Set-AzContext -Subscription "f0bXXXXXXX" $action = Get-AzActionGroup -ResourceGroupName gze-actgrp-pd-rgp-001 -Name UWDevOps_PD $actionID = New-AzActionGroup -ActionGroupId $action.id #Get-AzMetricDefinition -ResourceId "/subscriptions/9ca9XXXXX/resourcegroups/gze-pdi203-pd1-rgp-001/providers/Microsoft.ContainerService/managedClusters/gze-pdi203-pd1-aks-isostr-001" $dim = New-AzMetricAlertRuleV2DimensionSelection -DimensionName "Kubernetes namespace" -ValuesToInclude "dv1" $severity = 1 $RGObject = "gze-npi203-np1-rgp-001" $ResourceId = "/subscriptions/9caXXXXXXX/resourcegroups/gze-npi203-np1-rgp-001/providers/Microsoft.ContainerService/managedClusters/gze-npi203-np1-aks-isostr-001" $criteria = New-AzMetricAlertRuleV2Criteria -MetricName "podReadyPercentage" -DimensionSelection $dim ` -TimeAggregation average -Operator LessThan ` -Threshold 50 Set-AzContext -Subscription "921XXXX" # subID of the GZ-NP-IT-203-AKSISDUWSYS Add-AzMetricAlertRuleV2 -Name "UWS-AKS203-ISOSTR-DV1-[Sev0-Critical]-Pods-Ready-Percentage less than 50-V2-CT" -ResourceGroupName $RGObject ` -WindowSize 01:00:00 -Frequency 01:00:00 ` -TargetResourceId $ResourceId -Condition $criteria ` -ActionGroup $actionID ` -Severity $severity
报错详情:
Add-AzMetricAlertRuleV2 : Exception type: ErrorResponseException, Message: Couldn't find a metric named podReadyPercentage. Make sure the name is correct. Activity ID: 192c5e83-2b8a-4cd3-861b-da8dd2da8c1f., Code: BadRequest, Status code:BadRequest, Reason phrase: BadRequest
At line:1 char:1
Add-AzMetricAlertRuleV2 -Name "UWS-AKS203-ISOSTR-DV1-[Sev0-Critical]- ...
- CategoryInfo : CloseError: (:) [Add-AzMetricAlertRuleV2], PSInvalidOperationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Insights.Alerts.AddAzureRmMetricAlertRuleV2Command
已知podReadyPercentage是官方文档中列出的合法指标,但无法定位问题所在。
排查与解决步骤
- 启用Container Insights自定义指标:
podReadyPercentage属于Container Insights的自定义指标,需先在目标AKS集群上开启自定义指标收集功能,否则指标不会生成。 - 验证指标存在性:取消注释脚本中的
Get-AzMetricDefinition命令,替换为目标集群的ResourceId,执行以下命令确认指标是否存在:Get-AzMetricDefinition -ResourceId "/subscriptions/9caXXXXXXX/resourcegroups/gze-npi203-np1-rgp-001/providers/Microsoft.ContainerService/managedClusters/gze-npi203-np1-aks-isostr-001" | Where-Object {$_.Name.Value -eq "podReadyPercentage"} - 指定指标命名空间:
podReadyPercentage的指标命名空间为container.azm.ms,创建告警规则时必须指定该命名空间,否则无法识别指标。修改New-AzMetricAlertRuleV2Criteria命令:$criteria = New-AzMetricAlertRuleV2Criteria -MetricName "podReadyPercentage" -MetricNamespace "container.azm.ms" -DimensionSelection $dim ` -TimeAggregation average -Operator LessThan ` -Threshold 50 - 修正维度名称大小写:Container Insights的指标维度名称区分大小写,正确维度名称为
kubernetes namespace(全小写),修改维度定义:$dim = New-AzMetricAlertRuleV2DimensionSelection -DimensionName "kubernetes namespace" -ValuesToInclude "dv1" - 确认订阅与权限:确保
Set-AzContext -Subscription "921XXXX"命令已正确切换到目标订阅,且执行账号对AKS集群拥有Monitoring Contributor及以上权限。
内容的提问来源于stack exchange,提问作者kiruthiga
相关产品推荐
相关产品推荐

