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

Azure Dashboard卡片设置“Set in Query”时间范围后运行异常

你遇到的NaN报错核心原因是Azure Dashboard默认会对日志查询卡片强制应用仪表板全局时间范围,即便你在编辑面板选择了「Set in Query(查询中设置)」,如果没有关闭全局时间范围继承,查询中的ago()时间条件会被外部传入的时间范围截断,导致对应时间区间没有匹配数据,avg()聚合返回空值,最终计算得到NaN。

步骤1:优化查询语句增加空值兼容

修改原查询,增加空值兜底逻辑,避免某段时间无数据时直接返回异常:

let requests0to24HoursAgo = requests
    | where timestamp > ago(24h)
    | summarize last0to24HoursAverageRequestDuration=avg(duration), id=1;
let requests24to192HoursAgo = requests
    | where timestamp > ago(192h)
    | where timestamp < ago(24h)
    | summarize last24to192HoursAverageRequestDuration=avg(duration), id=1;
let diff = requests0to24HoursAgo
    // 改用全外连接,避免单边无数据时关联失败
    | join kind=fullouter
        requests24to192HoursAgo
        on id
    // 空值替换为0,避免后续计算异常
    | extend last0to24HoursAverageRequestDuration = coalesce(last0to24HoursAverageRequestDuration, 0)
    | extend last24to192HoursAverageRequestDuration = coalesce(last24to192HoursAverageRequestDuration, 0)
    // 分母为0时直接返回0,避免计算错误
    | extend Diff = iff(last24to192HoursAverageRequestDuration == 0, 0, 
        (last0to24HoursAverageRequestDuration - last24to192HoursAverageRequestDuration) / last24to192HoursAverageRequestDuration * 100)
    | project
        ["过去24小时平均响应时间"]=last0to24HoursAverageRequestDuration,
        ["过去24-192小时平均响应时间"]=last24to192HoursAverageRequestDuration,
        ["差值百分比"]=Diff;
diff

步骤2:调整仪表板卡片配置

  1. 在仪表板中找到对应卡片,点击右上角更多按钮(三个点),选择「配置卡片」
  2. 在时间范围配置栏,确认选择「查询中设置」,取消勾选「继承仪表板时间范围」选项
  3. 保存卡片配置后刷新仪表板即可正常展示数据

步骤3:验证日志保留配置

如果调整后仍有异常,确认Log Analytics工作区的日志保留周期≥8天(192小时),如果保留时长不足,24-192小时区间无历史数据也会出现空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:45:05