如何从CloudWatch Logs Insights的@timestamp字段提取精确时间
日志洞察查询:按小时分组同时保留精确时间
要实现按小时分组日志,同时保留原始@timestamp字段的精确时间(而非取整后的值),可以通过新增分组字段的方式实现,以下是两种常见场景的查询写法:
场景1:按小时归类并展示每条日志的精确时间
这种写法会保留每条日志的原始精确时间,同时新增小时分组字段用于归类,方便查看同一小时内的所有日志:
fields @timestamp, @message | add field hour_group = datefloor(@timestamp, 1h) | sort hour_group desc, @timestamp desc
fields @timestamp, @message:指定要显示的原始精确时间和日志内容字段add field hour_group = datefloor(@timestamp, 1h):生成按小时取整的分组字段,用于按小时归类日志sort hour_group desc, @timestamp desc:先按小时分组倒序排列,再按精确时间倒序,便于查看最新小时的日志
场景2:按小时聚合并保留组内所有精确时间
如果需要对每个小时的日志做聚合统计,同时保留该小时内所有日志的精确时间,可以使用stats配合collect函数:
fields @timestamp, @message | stats collect(@timestamp) as precise_timestamps, collect(@message) as messages by datefloor(@timestamp, 1h) as hour_group
collect(@timestamp) as precise_timestamps:将同一小时内的所有精确时间收集到一个列表中collect(@message) as messages:对应收集同一小时内的所有日志内容by datefloor(@timestamp, 1h) as hour_group:按小时取整后的字段作为分组依据
内容的提问来源于stack exchange,提问作者AxB
相关产品推荐
相关产品推荐

