Как кластеризовать и создать временную диаграмму в splunk

У меня есть поле с LogMsg сообщениями об ошибках, которые я группирую на основе сходства с помощью cluster.

Я пытаюсь добиться отображения, на котором будут отображаться временные ряды с сгруппированной ошибкой.

index="my_index_here" LogLevel=ERROR
  | cluster showcount=t t=0.2 field=Message | eval "Error Count" = cluster_count
  | head 10 | timechart count("Error Count") By LogMsg span=60m

Идея такая

  1. Получить все сообщения об ошибках LogLevel=ERROR
  2. Сгруппируйте элементы на основе поля сообщения | cluster showcount=t t=0.2 field=Message | eval "Error Count" = cluster_count
  3. Получите 10 лучших результатов | head 10
  4. Нарисуйте временную диаграмму timechart count("Error Count") By LogMsg span=60m. Временная диаграмма должна иметь график количества различных сообщений об ошибках, сгенерированных кластером, в зависимости от времени, что-то вроде
Message 8.00 9:00 10.00 11:00
Unable to authenticate 90 40 30 60
Another Error 80 40 30 60
Yet another error 70 40 30 60
--- --- --- --- ---
The 10th most frequent error 50 40 30 60

Мой подход выше не работает, возвращая пустой график,


person Owen Kelvin    schedule 16.02.2021    source источник


Ответы (1)


Способ отладки SPL состоит в том, чтобы выполнять по одному каналу за раз и проверять результаты перед добавлением следующего канала.

Я верю, что вы обнаружите одну вещь: команда head портит временную диаграмму. Возможно, все 10 лучших результатов будут в один и тот же час, поэтому результаты могут быть менее чем полезными.

Распространенной причиной пустого графика является команда stats или timechart, которая ссылается на несуществующее или нулевое поле. Вы должны выяснить, какое поле имеет значение NULL во время отладки.

FWIW, вот запрос, запускаемый везде, похожий на ваш, который создает график.

index=_internal log_level=INFO 
| cluster showcount=t t=0.2 field=event_message 
| eval "Error Count" = cluster_count 
| head 10 
| timechart count("Error Count") By group span=60m
person RichG    schedule 16.02.2021