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

问题描述 投票:0回答:3

我有一个以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,它什么也不会返回

您能帮忙吗?

datetime splunk splunk-query
3个回答
2
投票

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

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

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


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

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()功能将时间戳更改为数值。如果要使用它进行更多计算,这将很有用。

© www.soinside.com 2019 - 2024. All rights reserved.