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

Azure Logic Apps执行Application Insights日志查询返回值为0的问题求助

问题

通过Azure Logic Apps的「Run query and visualize results」动作执行Application Insights日志查询时,所有指标返回值均为0,但直接在Azure Application Insights日志中执行同一查询却能得到正确结果。已验证Logic Apps到目标Application Insights资源的服务连接无误。

查询语句如下:

let TotalUsersCurrentWeek = toscalar(
    requests
    | where timestamp >= ago(7d)
    | where name == "Login request"
    | summarize TotalUsersCurrentWeek=dcount(user_Id)
);

let TotalUsersPreviousWeek = toscalar(
    requests
    | where timestamp >= ago(14d) and timestamp < ago(7d)
    | where name == "Login request"
    | summarize TotalUsersPreviousWeek=dcount(user_Id)
);

let FailedLoginsCurrentWeek = toscalar(
    requests
    | where timestamp >= ago(7d)
    | where name == "Failed login request"
    | summarize FailedLoginsCurrentWeek=count()
);

let FailedLoginsPreviousWeek = toscalar(
    requests
    | where timestamp >= ago(14d) and timestamp < ago(7d)
    | where name == "Failed login request"
    | summarize FailedLoginsPreviousWeek=count()
);

let AvgLoginTimeCurrentWeek = toscalar(
    requests
    | where timestamp >= ago(7d)
    | where name == "Login request"
    | summarize AvgLoginTimeCurrentWeek=avg(duration)
);

let AvgLoginTimePreviousWeek = toscalar(
    requests
    | where timestamp >= ago(14d) and timestamp < ago(7d)
    | where name == "Login request"
    | summarize AvgLoginTimePreviousWeek=avg(duration)
);

print 
    TotalUsersCurrentWeek, 
    TotalUsersPreviousWeek, 
    FailedLoginsCurrentWeek, 
    FailedLoginsPreviousWeek, 
    AvgLoginTimeCurrentWeek, 
    AvgLoginTimePreviousWeek
| project 
    TotalUsersCurrentWeek = TotalUsersCurrentWeek,
    TotalUsersPreviousWeek = TotalUsersPreviousWeek,
    FailedLoginsCurrentWeek = FailedLoginsCurrentWeek,
    FailedLoginsPreviousWeek = FailedLoginsPreviousWeek,
    AvgLoginTimeCurrentWeek = AvgLoginTimeCurrentWeek,
    AvgLoginTimePreviousWeek = AvgLoginTimePreviousWeek
解决方法
  • 核对时间范围的时区差异:Logic Apps执行动作时,ago(7d)这类相对时间基于UTC时间计算,而Application Insights门户默认可能使用你的本地时区。可以把相对时间替换为绝对UTC时间测试,比如将timestamp >= ago(7d)改成timestamp >= datetime(2024-05-01T00:00:00Z) and timestamp <= datetime(2024-05-08T00:00:00Z),确认是否返回正确数据。
  • 调整查询输出格式:当前查询用print+project返回单行多列结果,可能不兼容Logic Apps的解析逻辑。建议改成键值对格式的输出,比如:
    union 
        (requests | where timestamp >= ago(7d) | where name == "Login request" | summarize MetricValue=dcount(user_Id) | extend MetricName="TotalUsersCurrentWeek"),
        (requests | where timestamp >= ago(14d) and timestamp < ago(7d) | where name == "Login request" | summarize MetricValue=dcount(user_Id) | extend MetricName="TotalUsersPreviousWeek"),
        (requests | where timestamp >= ago(7d) | where name == "Failed login request" | summarize MetricValue=count() | extend MetricName="FailedLoginsCurrentWeek"),
        (requests | where timestamp >= ago(14d) and timestamp < ago(7d) | where name == "Failed login request" | summarize MetricValue=count() | extend MetricName="FailedLoginsPreviousWeek"),
        (requests | where timestamp >= ago(7d) | where name == "Login request" | summarize MetricValue=avg(duration) | extend MetricName="AvgLoginTimeCurrentWeek"),
        (requests | where timestamp >= ago(14d) and timestamp < ago(7d) | where name == "Login request" | summarize MetricValue=avg(duration) | extend MetricName="AvgLoginTimePreviousWeek")
    
  • 检查动作的查询类型设置:在「Run query and visualize results」动作中,确认「Query type」选择的是Logs,选错类型会导致查询执行异常。
  • 验证原始查询输出:在Logic Apps中添加「Compose」动作,输出查询的原始返回结果,查看JSON结构里的数值是否正确。如果原始返回正确,问题出在后续数据提取或可视化环节;如果原始返回就是0,需排查查询执行的权限或资源上下文。
  • 确认服务连接的权限:即使连接测试通过,也要确保连接使用的身份(托管标识或服务主体)拥有Application Insights资源的Logs Reader或更高权限,权限不足可能导致查询返回空结果,聚合后显示为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:04:59