LogstashTimeMillis: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (→Log4j) |
Sirmax (обсуждение | вклад) (→Log4j) |
||
Строка 11: | Строка 11: | ||
На стороне Log4j поле не добавляется ни в какую |
На стороне Log4j поле не добавляется ни в какую |
||
<PRE> |
<PRE> |
||
+ | ... |
||
<JsonLayout compact="true" eventEol="true" properties="true" includeTimeMillis="true"> |
<JsonLayout compact="true" eventEol="true" properties="true" includeTimeMillis="true"> |
||
<KeyValuePair key="timeMillisNb" value="$${date:UNIX_MILLIS}"/> |
<KeyValuePair key="timeMillisNb" value="$${date:UNIX_MILLIS}"/> |
||
</JsonLayout> |
</JsonLayout> |
||
+ | ... |
||
</PRE> |
</PRE> |
||
При этом добавляются поля |
При этом добавляются поля |
Текущая версия на 16:35, 23 августа 2021
Добавление поля 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)" } } } } }