无法通过Azure REST API获取BackupVault备份指标值的问题
排查Azure BackupVault BackupHealthEvents指标返回空数据的问题
1. 修正API请求路径
你当前的请求是针对单个备份任务(backupJobs/{jobName})的指标,但BackupHealthEvents属于BackupVault级别的指标,不属于单个job资源。正确的请求路径应直接指向BackupVault:
GET https://management.azure.com/subscriptions/b324c52b-4073-4807-93af-e07d289c093e/resourceGroups/test/providers/Microsoft.DataProtection/BackupVaults/{vaultName}/providers/Microsoft.Insights/metrics?api-version=2021-05-01-preview&metricnames=BackupHealthEvents
2. 核对诊断设置细节
- 进入BackupVault的诊断设置,确保不仅勾选了
Health类别,还明确选中BackupHealthEvents具体指标项(部分类别包含多个子指标,仅选类别可能不生效)。 - 确认诊断设置的目标LA工作区与BackupVault在同一区域,跨区域转发可能导致数据丢失或延迟。
3. 考虑数据延迟与时间范围
- Azure指标数据(尤其是诊断设置转发的)通常有15-30分钟以上的延迟,刚完成备份任务后立即查询可能无结果,建议等待至少1小时后重试。
- 检查API请求的
timespan参数,确保时间范围覆盖备份任务执行时段。比如任务2小时前执行,需指定timespan=PT3H(最近3小时)或具体时间区间timespan=2024-05-20T00:00:00Z/2024-05-20T03:00:00Z。
4. 升级API版本
你使用的2018-01-01是较旧的API版本,部分新指标可能不被支持。建议切换到最新稳定版2021-05-01-preview或更新版本。
5. 检查权限与任务状态
- 确认调用API的账号拥有
Monitoring Reader、Backup Reader或更高权限,权限不足可能返回空数据而非权限报错。 BackupHealthEvents仅在备份任务出现异常(失败、警告等)时生成数据,成功完成的任务不会触发该指标。可创建一个测试用的失败备份任务,验证是否能采集到数据。
6. 验证LA工作区数据接收情况
直接在目标LA工作区执行KQL查询,确认数据是否已正常接收:
AzureMetrics | where ResourceProvider == "Microsoft.DataProtection/BackupVaults" | where MetricName == "BackupHealthEvents" | where TimeGenerated between (ago(2h) .. now())
如果LA中能查到数据,说明问题出在API查询环节;如果LA中也无数据,说明诊断设置未生效或指标未生成。
内容的提问来源于stack exchange,提问作者gpvt
相关产品推荐
相关产品推荐

