如何在AWS CloudWatch Logs Insights同一部件中多位置统计失败日志?
解决同一小部件统计多位置应用失败日志的问题
没问题,这个需求完全可以实现!你之前的查询只针对单个位置(AWE)做了筛选和统计,所以只能看到这一组数据,调整查询语句就能在同一个小部件里展示多个位置的失败日志统计了,具体方法如下:
核心思路
要同时统计多个位置,首先得从日志里提取出每条日志对应的位置信息,然后按「时间桶+位置」两个维度做聚合统计,这样就能在同一个结果里展示所有目标位置的每日失败次数。
具体查询语句示例
根据日志里位置信息的存储方式,分两种情况处理:
情况1:位置信息在@message文本中(比如类似"AWE Failure"、"Failure from XYZ"这样的格式)
用parse命令配合正则提取位置关键词,指定你要统计的所有位置:
fields @message | filter @message like /Failure/ # 先筛选所有失败日志 | parse @message /(?<location>AWE|XYZ|ABC)/ # 替换成你实际需要统计的位置列表,用|分隔 | stats count() as failure by bin(1d), location # 按天+位置分组统计失败次数
情况2:日志有结构化的位置字段(比如单独的@location字段)
如果日志本身就带有位置字段,直接用这个字段筛选和分组即可,更简单:
fields @message, @location | filter @message like /Failure/ and @location in ["AWE", "XYZ", "ABC"] # 指定目标位置 | stats count() as failure by bin(1d), @location # 按天+位置分组统计
为什么原来的查询不行?
你之前的语句里,filter只筛选了包含"AWE"的日志,而且把时间桶的别名设为AWE,相当于只聚焦单个位置的统计。调整后通过提取/指定多位置,再按位置维度分组,就能在同一个小部件里看到所有位置的每日失败数据了——比如用折线图的话,每个位置会对应一条折线,表格视图会多一列位置标识,清晰区分各组数据。
内容的提问来源于stack exchange,提问作者Tiger Tsang
相关产品推荐
相关产品推荐

