Splunk:如何通过 id 计算时间戳的差异?
Splunk: How to compute the difference of timestamps by id?
我有这样的事件:
要求:
Request "id":"123-abc-456"
回复:
Response "id":"123-abc-456"
使用以下查询
(index=something "Response") OR (index=something "Request")
|rex field=_raw "id\":\"(?<id>[a-z0-9-]+)"
| table _time id
我得到一个 table,其中包含一个事件的 id
和 _time
字段。它看起来像这样:
_time id
2022-01-01 12:00:00:00 123-abc-456
2022-01-01 12:11:11:11 123-abc-456
现在,我想知道是否可以生成一个新的 table,其中 _time
字段按 id
字段分组?或者我是否必须更改我的查询以获得这样的 table 然后计算差异?但我不知道如何获得如下 table...
Requesttime id Reponsetime
2022-01-01 12:00:00:00 123-abc-456 2022-01-01 12:11:11:11
非常感谢回复!
Splunk 只能计算纪元(整数)形式的时间戳之间的差异。幸运的是,_time
已经是纪元形式(显示时自动转换为文本)。
如果请求时间和响应时间相同 event/result,那么计算差异很简单 | eval diff=Responsetime - Requesttime
。
如果两个时间戳不同events/results那么我们可以使用range()
函数来得到它们的差异
index=something "Request"
| rex field=_raw "id\":\"(?<id>[a-z0-9-]+)"
| table _time id
| stats min(_time) as Requesttime, max(_time) as Responsetime, range(_time) as diff by id
```Format the timestamps manually```
| fieldformat Requesttime=strftime(Requesttime, "%Y-%m-%d %H:%M:S")
| fieldformat Responsetime=strftime(Responsetime, "%Y-%m-%d %H:%M:S")
| fieldformat diff=tostring(diff,"duration")
我有这样的事件:
要求:
Request "id":"123-abc-456"
回复:
Response "id":"123-abc-456"
使用以下查询
(index=something "Response") OR (index=something "Request")
|rex field=_raw "id\":\"(?<id>[a-z0-9-]+)"
| table _time id
我得到一个 table,其中包含一个事件的 id
和 _time
字段。它看起来像这样:
_time id
2022-01-01 12:00:00:00 123-abc-456
2022-01-01 12:11:11:11 123-abc-456
现在,我想知道是否可以生成一个新的 table,其中 _time
字段按 id
字段分组?或者我是否必须更改我的查询以获得这样的 table 然后计算差异?但我不知道如何获得如下 table...
Requesttime id Reponsetime
2022-01-01 12:00:00:00 123-abc-456 2022-01-01 12:11:11:11
非常感谢回复!
Splunk 只能计算纪元(整数)形式的时间戳之间的差异。幸运的是,_time
已经是纪元形式(显示时自动转换为文本)。
如果请求时间和响应时间相同 event/result,那么计算差异很简单 | eval diff=Responsetime - Requesttime
。
如果两个时间戳不同events/results那么我们可以使用range()
函数来得到它们的差异
index=something "Request"
| rex field=_raw "id\":\"(?<id>[a-z0-9-]+)"
| table _time id
| stats min(_time) as Requesttime, max(_time) as Responsetime, range(_time) as diff by id
```Format the timestamps manually```
| fieldformat Requesttime=strftime(Requesttime, "%Y-%m-%d %H:%M:S")
| fieldformat Responsetime=strftime(Responsetime, "%Y-%m-%d %H:%M:S")
| fieldformat diff=tostring(diff,"duration")