В Splunk, Как использовать проанализированное время, чтобы определить продолжительность между событиями? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть файл журнала, в котором записывается время начала и окончания обработки файлов. Записи содержат строки, которые выглядят так:

=============== STARTED PROCESSING FILE filename at Thu Jul 19 00:03:55 2018 EDT===============
=============== FINISHED PROCESSING FILE filename at Thu Jul 19 00:04:05 2018 EDT===============

Изначально я придумал запрос, используя _time:

processing.log "FINISHED PROCESSING FILE" OR "STARTED PROCESSING FILE" | rex field=_raw "(?<filename>\S*)" | stats count first(_time) as start last(_time) as finished by filename | eval duration = abs( finished - start)

Это, казалось бы, работало очень хорошо, пока я не понял, что _time завершения и запуска может быть с разницей в часы, даже если фактическая обработка составляет 10 секунд (как в приведенном выше примере. Поэтому сейчас я пытаюсь выполнить этот запрос:

processing.log "FINISHED PROCESSING FILE" OR "STARTED PROCESSING FILE" | rex field=_raw "(?<filename>\S*) at (?<ptime>.*) EDT" | eval stime=strptime(ptime,'%a %B %d %Y %H:%M:%S')| stats count first(stime) as start last(stime) as finished by filename | eval duration = abs( finished - start)

Однако он не дает желаемых результатов, показывающих продолжительность обработки каждого имени файла. Что я делаю не так / как я могу это исправить?

1 Ответ

0 голосов
/ 12 сентября 2018

Вместо ...| stats count first(stime) as start last(stime) as finished by filename |eval duration = abs( finished - start) попробуйте ... | stats count range(stime) as duration by filename

...