我有两个查询...
((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
您将需要查看transaction命令,该命令有助于基于字段加入事件,在您的情况下为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
,该命令将保留没有匹配保存事件的提交事件。