首页 > 解决方案 > 使用 SPLUNK 查询时时差列为空

问题描述

我有以下格式的两列开始时间和结束时间。我需要计算总时间并将差异添加为新列。

使用的 Splunk 查询:

| rename per_stage_info{}.starttime as starttime, per_stage_info{}.finishtime as finishtime 
| eval st=strptime(starttime, "%Y/%m/%d %H:%M:%S") 
| eval ft=strptime(finishtime, "%Y/%m/%d %H:%M:%S") 
| table per_stage_info{}.stage_name,starttime,finishtime, ft, st,ft-st

开始时间值

2021/10/11 08:41:40
2021/10/11 08:48:07
2021/10/11 08:55:09
2021/10/11 08:41:40

完成时间值

2021/10/11 08:48:00
2021/10/11 08:51:38
2021/10/11 08:55:14
2021/10/11 08:55:14

转换后的英尺

1633942080.000000
1633942298.000000
1633942514.000000
1633942514.000000

转换后的st

1633941700.000000
1633942087.000000
1633942509.000000
1633941700.000000

ft-st 列为空

为什么我在 ft-st 列中看不到计算出的时间差?我尝试了多种其他方式,但该列是空的。

标签: splunk

解决方案


table命令不执行计算。为此使用eval

| rename per_stage_info{}.starttime as starttime, per_stage_info{}.finishtime as finishtime 
| eval st=strptime(starttime, "%Y/%m/%d %H:%M:%S") 
| eval ft=strptime(finishtime, "%Y/%m/%d %H:%M:%S") 
| eval diff=ft-st
| table per_stage_info{}.stage_name,starttime,finishtime, ft, st,diff

推荐阅读