防止 Azure Log Analytics 错误地假设查询中设置了时间范围

防止 Azure Log Analytics 错误地假设查询中设置了时间范围

我有一个日志分析查询,用于查找跨越特定时间的事件。大致如下

SomeTable
| summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated) by EventId
| where EndTime - StartTime > 15m

问题是,常量的存在15m使得门户网站认为我正在限制查询中的时间范围(尽管我显然没有,因为 TimeGenerated 列没有约束),将时间范围选择器切换到,时间范围:查询中设置并立即继续抱怨查询占用了太多资源,因为它查询的是整个月的数据。当我选择时间范围时,它总是恢复到在查询中设置。

有没有办法表明即使存在时间跨度常量,它也并没有设置时间范围,因此选择器停止切换到查询中的设置?

答案1

检查似乎是针对或where类型的值的约束,因此将条件重写为datetimetimespan

| extend Minutes = (EndTime - StartTime)/1m | where Minutes > 15

成功将其从时间范围检测逻辑中隐藏起来。虽然很丑,但这是我目前想到的最好的办法。

相关内容