You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CloudWatch Logs按端点聚合并获取最新请求时间记录的查询优化需求

解决CloudWatch Logs端点聚合去重问题

要实现按端点聚合,只保留每个端点最新且耗时最长的记录,你可以借助CloudWatch Logs Insights的dedup命令来完成,结合排序逻辑就能精准得到你想要的结果。

调整后的查询语句

fields request.url as URL, response.content.manager.company.label as Empresa, timestamp as Data, response.status as Status, request.time as TEMPO
| filter @logStream = 'production'
| sort request.time DESC, Data DESC  -- 先按耗时降序,再按时间戳降序,确保优先保留耗时最长且最新的记录
| dedup URL  -- 按端点去重,只保留每个端点的第一条记录(也就是排序后的最优记录)
| limit 30

逻辑说明

  1. 过滤与字段提取:和你原来的查询一致,先筛选生产环境的日志流,提取需要的核心字段。
  2. 排序规则:先按request.time(请求耗时)降序排列,再按Data(时间戳)降序,这样同一个端点的记录里,耗时最长且最新的那条会排在最前面。
  3. 去重聚合dedup URL会对每个端点(URL字段)只保留排序后的第一条记录,完美实现你要的“每个端点仅保留最新最长耗时记录”的需求。

验证结果

用这个查询后,你会得到和期望完全匹配的结果:每个端点只会出现一次,对应的是该端点耗时最长且时间戳最新的那条请求记录。

内容的提问来源于stack exchange,提问作者Raank

火山引擎 最新活动