如何在Seq中一次性查询满足条件的慢请求对应的所有关联日志
Seq 慢请求全链路日志一步查询方案
直接使用Seq内置的子查询语法即可实现,不需要二次导出处理,核心查询语句如下:
where RequestId in (select RequestId from stream where RequestTime > 500)
语句说明
- 内层子查询会先筛选出所有请求耗时超过500ms的请求对应的唯一RequestId集合
- 外层查询直接匹配所有RequestId落在该集合内的日志,一次性拉取慢请求对应的全链路日志
常用优化方案
- 限定查询时间范围,避免全量扫描提升查询效率,例如下方语句查询最近24小时的慢请求全量日志:
where @Timestamp > now() - 24h and RequestId in ( select RequestId from stream where @Timestamp > now() - 24h and RequestTime > 500 )
- 可追加排序规则让日志更易读,例如末尾添加
order by RequestId, @Timestamp,即可实现按请求分组、按请求内日志生成时间升序排列
内容的提问来源于stack exchange,提问作者BlargleMonster
相关产品推荐
相关产品推荐

