#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"