Использование splunk для построения таблицы подсчетов ключей, извлеченных из поля строки JSON

#logging #splunk

#ведение журнала #splunk

Вопрос:

Я хочу использовать splunk для построения графика из журналов полезной нагрузки моей службы, чтобы выделить тип параметров запроса. Журналы имеют этот формат:

 2020-11-10 04:46:57.471  INFO InfoType="payload" request="{"queryParams":{"field1":"26453451364"}}" 

2020-11-10 04:46:57.471  INFO InfoType="payload" request="{"queryParams":{"field2":"71362547612531"}}" 

2020-11-10 04:46:57.471  INFO InfoType="payload" request="{"queryParams":{"field3":"71547612531", "field4":"7136254761"}}"
  

Для приведенного выше, я хочу, чтобы вывод был примерно таким:

 Query Param   | Count
--------------------
field1        |  1
--------------------
field2        |  1
--------------------
field3,field4 |  1
  

Я много пробовал с помощью spath, но я не могу заставить его работать.

 | makeresults
| eval _raw="2020-11-10 04:46:57.471  INFO InfoType="payload" request="{"queryParams":{"field1":"26453451364"}}""
| spath input=request path={}.queryParams
  

Любая помощь о том, как действовать дальше или что я делаю неправильно, будет действительно полезной.

Ответ №1:

Похоже, что ваш JSON имеет многозначные поля

Попробуйте mvexpand сначала использовать:

 index=ndx sourcetype=srctp
| mvexpand queryParams
| stats count by queryParams
| rename queryParams as "Query Param"