Поле "duration" время больше 23:59:59

Всем привет!
Есть поле "duration" в него преобразуется UNIXTIME, но если UNIXTIME больше 86400, то один день не учитывается.
Например, если UNIXTIME 86407, то в "duration " запишется 00:00:07.

Вот код который преобразует:

      if "ise" in [tags] and "Session" in [tags] and  [Acct_Session_Time] {
        date {
          match => [ "Acct_Session_Time", "UNIX" ]
          target => "Duration_temp"
        }
        ruby {
          code => "
            event.set('Duration', event.get('Duration_temp').time.strftime('%H:%M:%S'))
            event.set('Session_start', (event.get('@timestamp') - event.get('Duration_temp')))
            "
        }
        date {
          match => [ "Session_start", "UNIX" ]
          target => "Session_start_date"
        }
      }

Пробовал писать в формате '%d %H:%M:%S', тогда если UNIXTIME меньше 86400, например 3600, тогда будет 01 01:00:00, а нужно 00 01:00:00.

Подскажите, может как то можно сделать учет дней?

Поделить duration на 86400 с остатком, остаток отформатировать с помошью strftime, а неполное частное использовать для форматировния количества дней, если оно не нулевое?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.