Запрос о поле со значением типа JSON - PullRequest
0 голосов
/ 16 марта 2020

У меня есть следующий журнал:

INFO [http-nio-80-exe c -30] класс: ControllerV3, M = метод, UA = ua, URI = / v3 / транзакции, 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", "источник": "иСТОЧНИК", "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" , "acceptPartialTransaction": true},

GW = false

Поэтому я не знаю, как получить метрики и данные о поле REQ JSON. Я хочу знать, какие значения передаются statusIds, accountingEntryType, considerPartialTransaction и диапазон дат initialCreationDate и finalCreationDate. Чтобы получить метри c с нормальным полем, я использую что-то вроде | stats count by UA. Я новичок ie со Splunk и не знаю некоторых функций для получения результатов.

1 Ответ

1 голос
/ 17 марта 2020

Лучше всего извлечь поле 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
...