Получение временных интервалов в час, но группировка по идентификатору машины

#sumologic

#сумологический

Вопрос:

 _sourceCategory=myService | json field=_raw "log.Log" as log_message | json field=_raw "log.Barcode" as log_Barcode | json field=_raw "log.MachineId" as machine_id | where log_message contains "successfully sorted" | count by machine_id  

Этот запрос даст мне количество успешных попыток для каждого идентификатора машины.

Что я хочу, так это получить все сообщения за последние 24 часа и получить средний показатель успеха в час.

так что вместо того, чтобы иметь

Идентификатор машины Показатель Успешности Подсчета время
123445 2400 24 ЧАСА

Я получаю что-то вроде

Идентификатор машины Количество успешных попыток в час время
123445 100 24 ЧАСА

Ответ №1:

Вам нужно будет пометить успехи по сравнению с неудачами, прежде чем применять временной интервал с помощью if оператора. Затем примените временной интервал и агрегируйте поля и рассчитайте соотношение. Что-то вроде:

 _sourceCategory=myService | json field=_raw "log.Log" as log_message | json field=_raw "log.Barcode" as log_Barcode | json field=_raw "log.MachineId" as machine_id | if (log_message matches "*successfully sorted*", 1, 0) as success | timeslice 1h | count as total_records, sum(success) as successes by _timeslice | successes / total_records * 100 as success_rate_pct  

Комментарии:

1. Этот запрос даст мне процент успеха в процентах на общее количество сообщений. Что мне нужно, так это средний показатель успеха в час. Таким образом, если вы преуспели 80 раз за 8 часов, показатель успеха в час составит 10