You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Splunk中如何获取inputlookup每行的首个/末个事件及统计事件数

Splunk 查询优化需求

已知20230922_id.csv数据如下:

id_
123
234
345
456

当前执行的查询语句:

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search 
  | format ]

该查询会被转换为:

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search 123 or 234 or 345 or 456

目前每个ID对应3个事件,总事件数12,符合预期。现需实现以下两个目标之一:

  1. 每个ID仅返回1个事件,总事件数变为4(已尝试两种无效方案)
  2. 若无法实现上述需求,生成按ID统计事件数的表格

已尝试的无效方案

方案一

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search 
  | head 1 
  | format ]

问题:仅筛选出第一个ID的事件,其余ID的事件全部被排除。

方案二

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search  
  | format ] 
|head 1

问题:仅返回所有匹配事件中的第一条,而非每个ID各返回一条。


解决方案

一、每个ID返回1个事件(取首个/末个)

要实现每个ID返回1条事件,需先从事件中提取出对应ID的字段(假设提取后字段名为id_,实际字段名不同请替换),再按ID分组后取每组的第一条或最后一条:

取每个ID的最新事件(按时间降序)

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv | rename id_ as search | format ]
| rex "(?<id_>\d+)"  // 用正则从事件中提取ID,替换为实际匹配规则
| sort 0 - _time  // 按时间降序排序,0表示不限制结果数
| dedup id_  // 保留每个id_对应的第一条事件

取每个ID的最早事件(按时间升序)

仅修改排序规则即可:

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv | rename id_ as search | format ]
| rex "(?<id_>\d+)"  // 替换为实际的ID提取正则
| sort 0 _time
| dedup id_

注意:如果事件中已存在对应ID的字段(如request_id),直接用该字段替换id_即可,无需rex命令。

二、生成按ID统计事件数的表格

若无需单条事件,仅需统计每个ID的事件数量,使用stats命令即可:

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv | rename id_ as search | format ]
| rex "(?<id_>\d+)"  // 提取ID字段,替换为实际正则
| stats count by id_

执行后将生成如下格式的统计结果:

id_count
1232
2343
3454
4562

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:52:49