Splunk как исключить определенную юдоль из списка, если она существует

У меня есть журнал с полезной нагрузкой примерно так:

"Stats":[        { 
           errors: 0
           type: "Disc"
           success: 878
         },
         {
           errors: 21
           type: "cronJob"
           success: 25
         },
         { 
           errors: 0
           type: "File"
           success: 8787
         },
         { 
           errors: 15
           type: "Unknown"
           success: 0
         }]

Мне нужно избавиться от объекта типа "Неизвестный" и получить сумму оставшихся значений

Я могу получить сумму всех ошибок, но для событий типа Unknown я не знаю, как это сделать. Не могли бы вы помочь?

<search>|rename Stats{}.type= as type|eventstats sum(errors)  as ErrorCount 

Это мой текущий поиск без исключения неизвестного типа. как включить логику исключения неизвестных счетчиков

2 ответа

<search>|rename Stats{}.type= as type | where type != "Unknown" | eventstats sum(errors)  as ErrorCount 

Полезные данные JSON обрабатываются как многозначное поле

Значит тебе нужно mvexpand это перед тем, как отфильтровать то, что вы хотите игнорировать

Попробуйте что-то вроде этого:

index=ndx sourcetype=srctp Stats{}.type=*
| rename Stats{}.type as type
| mvexpand type
| search NOT type="Unknown"
| ...
Другие вопросы по тегам