Open lucabelluccini opened 3 years ago
🤔 This appears to be a difference between the legacy Ruby Execution Engine (default in 6.x; in 7.x use --java-execution false
) and the modern Java Execution Engine (default in 7.x; in 6.x use --experimental-java-execution true
).
events.out
metric by the original size of the batch as pulled off the queue. The meaning of this metric becomes: "of the events.in
events inserted into the queue, events.out
are fully-resolved."In the docs, we direct people to determine lag in their pipelines by subtracting events.out
from events.in
. For pipelines with memory queues this will never be more than pipeline.workers
* queue.batch.size
, but with persistent queue this number can be exceptionally valuable at determining whether a pipeline is generally keeping up or falling behind.
In simple pipelines, these two numbers can be equivalent, but in complex pipelines that add or cancel events, or conditionally route those events to outputs, I believe that the modern JEE implementation provides a more actionable metric. We do provide concrete numbers for each of the pipeline outputs to indicate how many non-cancelled events it has completed so if a user is looking for that data, it is available.
I'm not sure what the best solution is here.
Bug
Global pipeline in/out event count stats are wrong when the
split
filter is involved.To recap:
split
I decided to file it on Logstash as the
split
plugin reports the correct in/out event count stats.Affected versions
Both 6.x and 7.x, with different behaviors.
Reproducer
Result
Behavior on 6.8.8:
On 7.8.1 (also on 7.11):
On 6.x:
main.events.out
= 3 On 7.x:main.events.out
= 1