[英]Splunk compare two rex queries from different source
我有兩個疑問...
(1)提交日志查詢:
index=xxx_prod host="foo.org" 5032 submit | rex "id=PO:(?<PO>\d*)" | dedup PO | table PO _time
(2)保存日志查詢:
index=xxx_prod host="bar.org" | rex "savePO.*POId=(?<PO>\d*).*\"responseCode\":200" | dedup PO | table PO _time
我想比較來自不同服務的PO
和timestamp
(來自 _time 字段)結果,一個是提交事件,另一個是保存事件。 我想將其顯示為下表
PO | submit_date | save_date | elapse_time_min | isSave
1000001 | 2020-01-18 02:09:49.022 | 2020-01-18 02:51:51q289 | 41 | true
1000002 | 2020-01-18 03:18:25.780 | 2020-01-18 03:59:08.695 | 49 | true
1000003 | 2020-01-18 03:18:25.780 | | | false
您將需要查看事務命令,它有助於根據字段加入事件,在您的情況下, PO
(index=xxx_prod host="foo.org" 5032 submit) OR (index=xxx_prod host="bar.org") | rex "id=PO:(?<PO>\d*)" | rex "savePO.*POId=(?<PO>\d*).*\"responseCode\":200" | transaction keeporphans=true PO | eval save_date = _time + duration | convert ctime(save_date) | table _time save_date duration
您需要正確檢查rex
命令提取,並且上面的transaction
命令使用keeporphans
,它保留沒有匹配保存事件的提交事件。
在這種情況下,您可以在字段PO
上使用左連接。
index=xxx_prod host="foo.org" 5032 submit | rex "id=PO:(?<PO>\d*)" | dedup PO | table PO _time
|rename _time as submit_date
|join type=left PO
[search index=xxx_prod host="bar.org" | rex "savePO.*POId=(?<PO>\d*).*\"responseCode\":200" | dedup PO | table PO _time
|rename _time as save_date]
|eval elapse_time_min=round((save_date-submit_date)/60),0)
|eval isSave=if(isnull(save_date),"false","true")
|eval save_date=strftime(save_date,"%Y-%m-%dT%H:%M:%S.%Q")
|eval submit_date=strftime(submit_date,"%Y-%m-%dT%H:%M:%S.%Q")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.