无法为ContainerLog的KQL查询聚合字段配置Azure日志警报
解决Azure警报规则无法识别avg_capacity字段的问题
以下是针对该问题的排查和解决步骤:
验证数据提取有效性
先单独运行parse后的查询,确认Total和Used字段能正确提取到数值:ContainerLog | parse-where LogEntry with * '//example.output ' Total:decimal ' ' Used:decimal ' ' | project TimeGenerated, Total, Used如果该查询无有效数据返回,说明
parse-where的匹配规则存在问题,需要调整日志内容的匹配模式,确保能准确捕获Total和Used的数值。调整时间聚合粒度
Azure日志警报要求查询返回符合时间序列格式的数据,原查询按TimeGenerated单独分组可能导致数据过于零散,无法被警报系统识别为可测量指标。修改查询为按固定时间窗口聚合:ContainerLog | parse-where LogEntry with * '//example.output ' Total:decimal ' ' Used:decimal ' ' | summarize avg_capacity=sum(Used)/sum(Total)*100 by bin(TimeGenerated, 5m)这里的
bin(TimeGenerated, 5m)表示按5分钟窗口聚合数据,你可根据实际需求调整窗口大小(如1m、10m等)。确认警报配置的时间范围
配置警报规则时,确保选择的时间范围与测试查询时的时间范围一致。若警报时间范围内无匹配日志数据,系统将无法检测到avg_capacity字段。检查警报规则类型
确保创建的是日志查询警报,并在配置测量值(Measurement)时选择“数值列”类型,此时avg_capacity应会出现在可选字段列表中。
内容的提问来源于stack exchange,提问作者Janie Zhan
相关产品推荐
相关产品推荐

