This is an update to Rules, order of execution and 2nd half of Rename index set backing "All messages" stream? - #10 by tmacgbay
So far the answers are:
-
All attached pipelines run in parallel. Normally all rules of stage X of attached pipelines execute at the same time (order of this processing is undefined), then all rules of stage X+1 execute and so on.
-
remove_from_stream
does not abort a pipeline, all attached pipelines will run to its finish as usual. -
add_to_stream
marks the message for the new stream, but waits for all processing steps of currently attached pipelines to finish and then starts to run all the newly attached pipelines from their start.
drop_message
in graylog <= 4.2 just prevents message from being indexed into elasticsearchdrop_message
in graylog >= 4.3 additionally aborts its processing in running pipelines. Rules running in parallel in the same stage asdrop_messages
will run, but rules in all the following stages will be skipped.-
- Not sure about the extractors, though. If “message filter chain” is configured after pipeline processor I think it will still run?
create_message
andclone_message
create independent messages (going through here and here), but this also waits for currently attached pipelines of the original message to return and then this new messages start their pipeline processing based on streams given to it by anyadd_to_stream
(s).-
- Not sure about the extractors. If “message filter chain” is configured after pipeline processor, will extractors run for these new messages?
This will make it more obvious that “stream rules” is just a one-time processing step that assigns streams. When a message stops matching a stream rule mid-pipeline, it does not matter.