LogstashTimeMillis
Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Добавление поля timeMillis
Задача - добавить поле timeMillis там где Log4J его не добавляет
Log4j
На стороне Log4j поле не добавляется ни в какую
... <JsonLayout compact="true" eventEol="true" properties="true" includeTimeMillis="true"> <KeyValuePair key="timeMillisNb" value="$${date:UNIX_MILLIS}"/> </JsonLayout> ...
При этом добавляются поля
- instant.epochSecond
- instant.nanoOfSecond
Logstash
- instant.epochSecond - домножить на 1000 что бы перевести секунды в микросекунды
- instant.nanoOfSecond - поделить на 1000000 что бы перевести наносекунды в микросекунды
- если поле с наносекундами отсутствует то игнорировать его
filter { ... skipped ... if ![timeMillis] { if [instant][epochSecond] { if [instant][nanoOfSecond] { ruby { code => "event.set('timeMillis', (event.get('[instant][epochSecond]').to_i) * 1000 + (event.get('[instant][nanoOfSecond]') / 1000000).to_i)" } } else { ruby { code => "event.set('timeMillis', (event.get('[instant][epochSecond').to_i) * 1000)" } } } } }