Azure Application Insights:如何通过自定义KQL查询生成优质时间图表?
自定义KQL实现Azure Application Insights自动时间切片图表
当然可以,无需硬编码时间周期,KQL提供了适配自动时间切片的方案,能让系统根据查询的时间范围自动划分合理的切片间隔,和内置图表效果一致。
核心方案:bin()函数+动态时间粒度
替代硬编码日期格式化的方式,改用bin(timestamp, _timespan)语法,其中_timespan是系统自动传入的内置参数,会匹配你在仪表板或查询界面选择的时间窗口。结合summarize或make-series即可实现自动分桶:
示例1:自动适配的请求数统计图表
requests | summarize Total = count() by bin(timestamp, _timespan) | sort by timestamp asc | render timechart
示例2:自定义粒度规则的动态适配
如果需要针对不同时间范围设置更精细的切片逻辑,可通过case()函数结合_timespan判断:
requests | let timeBin = case( _timespan <= 1h, 1m, // 时间范围≤1小时时,按1分钟切片 _timespan <= 1d, 1h, // 时间范围≤1天时,按1小时切片 _timespan <= 7d, 1d, // 时间范围≤7天时,按1天切片 7d // 更大时间范围按7天切片 ); | summarize Total = count() by bin(timestamp, timeBin) | sort by timestamp asc | render timechart
关键说明
_timespan是Azure Application Insights查询环境的内置参数,自动关联当前选择的时间筛选条件(如仪表板时间过滤器、查询页面时间选择器)。- 使用
bin()后,时间字段保留datetime类型,render timechart可正确识别并展示连续时间轴,避免硬编码字符串日期导致的轴显示异常。 - 该方案支持复杂聚合场景,只需将自定义计算逻辑与
bin(timestamp, ...)结合即可,完全满足复杂查询的可视化需求。
内容的提问来源于stack exchange,提问作者Claus Appel
相关产品推荐
相关产品推荐

