Лучше всего извлечь поле REQ
, а затем использовать spath
для извлечения подробностей из JSON.
Чтобы извлечь поле REQ, вы можете использовать следующую команду. Обратите внимание, что это не будет обрабатывать вложенные JSON, но если ваши события содержат это, вы можете использовать другое регулярное выражение.
| rex field=raw "REQ=(?<REQ>[^}]+})"
Получив поле REQ, вы можете использовать spath
для извлечения все поля и значения из JSON, с помощью следующей команды
| spath input=REQ
Ниже приведен пример, показывающий, что извлечение и spath работают надлежащим образом.
| makeresults | eval raw="
INFO [http-nio-80-exec-30] class:ControllerV3, M=method, UA=ua, URI=/v3/transactions, QS=limit=21&offset=0&sort=-createDate, V=v3, P=3, RT=50, ET=25, ELAPSE-TIME=50,
REQ={\"userId\":98745569,\"initialCreationDate\":\"2020-03-13T00:00:00\",\"finalCreationDate\":\"2020-03-16T15:41:36\",\"source\":\"SOURCE\",\"statusIds\":[2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,79],\"accountingEntryType\":\"ENTRY_TYPE\",\"considerPartialTransaction\":true},
GW=false
"
| rex field=raw "REQ=(?<REQ>[^}]+})"
| spath input=REQ