如何将自定义时间转换为splunk中的分钟

时间:2019-12-09 21:21:46

标签: datetime splunk splunk-query

我有一个字段,它以1h3m45s3m45s格式发送时间

我想将其转换为分钟以绘制图表。

我尝试过

| eval ProcessingTime=replace(replace(replace(LoadTime,"h",":"), "m",":"),"s","")
| eval ProcessingTime=strptime(ProcessingTime,"%H:%M:%S")

但是它给出了空白字段。

编辑:

| eval time="1h34m56s"  | eval ProcessingTime=strftime(strptime(time, "%Hh%Mm%Ss"),"%H:%M:%S")|convert dur2sec(ProcessingTime)|  eval TimeinMin=(ProcessingTime)/60  | table time, ProcessingTime,TimeinMin

这给出了我期望的最小时间,但是如果我有时间= 34m56s,它什么也不会返回

能请你帮忙吗?

3 个答案:

答案 0 :(得分:2)

非常接近,您可以使用convert dur2sec()

| eval ProcessingTime=replace(replace(replace(LoadTime,"h",":"), "m",":"),"s","")
| convert dur2sec(ProcessingTime)

如果不起作用,请删除转换行并发送ProcessingTIme的值。它看起来应该像HH:MM:SS格式

答案 1 :(得分:0)

rex来营救!该查询处理可选的小时值。

| makeresults
| eval time="34m56s" 
| rex field=time "(?:(?<hr>\d+)h)?(?<min>\d+)m(?<sec>\d+)s"
| eval hr=coalesce(hr,0)
| eval ProcessingTime=hr.":".min.":".sec
| convert dur2sec(ProcessingTime) 
| eval TimeinMin=(ProcessingTime)/60 
| table time, ProcessingTime,TimeinMin

答案 2 :(得分:0)

尝试将MM:SS.SSS(分钟,秒和亚秒)中的时间转换为以秒为单位的数字。

sourcetype=syslog | convert mstime(_time) AS ms_time | table _time, ms_time
  • mstime()函数从几分钟开始转换_time字段值 几秒钟到几秒钟。

已转换的时间字段重命名为ms_time

table命令用于显示原始_time值和转换后的时间。

enter image description here

mstime()函数将时间戳更改为数值。如果要使用它进行更多计算,这将很有用。