LogstashTimeMillis
Материал из noname.com.ua
Версия от 16:34, 23 августа 2021; Sirmax (обсуждение | вклад) (Новая страница: «Категория:Linux Категория:ELK Категория:Logstash Категория:Elasticsearch Категория:Log4J Кат...»)
Добавление поля 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)" } } } } }