elastic / ecs-logging-java

https://www.elastic.co/guide/en/ecs-logging/java/current/intro.html
Apache License 2.0
141 stars 75 forks source link

Write SequenceNumber in jboss-logmanager-ecs-formatter #154

Open matthiaswelz opened 2 years ago

matthiaswelz commented 2 years ago

Hi,

because the "@timestamp" fields in ECS logging only support millisecond-precision, a sequence number is needed to keep the order of events. Adding this sequence number in FileBeat does not seem possible - only workarounds exist which include disabling multithreading (see https://discuss.elastic.co/t/sequence-number-for-ecs-events-received-by-tcp/291348 ).

Thus, the ECS formatter should add the sequence number ( https://www.elastic.co/guide/en/ecs/current/ecs-event.html#field-event-sequence ).

In case of the co.elastic.logging.jboss.logmanager.EcsFormatter this should be trivial as the ExtLogRecord from which the JSON is built already includes a method getSequenceNumber.

Adding the sequence number would solve a range of other issues regarding to log event order.