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_streamdoes not abort a pipeline, all attached pipelines will run to its finish as usual. -
add_to_streammarks 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_messagein graylog <= 4.2 just prevents message from being indexed into elasticsearchdrop_messagein graylog >= 4.3 additionally aborts its processing in running pipelines. Rules running in parallel in the same stage asdrop_messageswill 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_messageandclone_messagecreate 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.