I need a clarification/help on Rule on Pipeline stages.
This is my scenario and I try to explain the message lifecycle with you:
Stream1(with rule to address message that comes from Input Gelf) Pipeline1 connected to Stream1 Stage0 r1:(when has_field("connection") then //do something) r2:(when has_field("url") the //do something else) Stage1 (when true then set_field(...); let x = clone_message();) Stage2 (when true then set_field(...);) Output -> System.out of file
Well the incaming message m in the Gelf Input is routed to the Stream1 then before output is managed by the pipeline.
The message comes into the Stage0 if the r1 contition in not evaluated it jump to the output without the Stage1 and Stage 2 evaluation, Is this correct? (with the configuration at least one rule…).
What is the best practice to be sure that the message walks through all stages? Crate a rule and its not (r1:has_field(“field1”) and r2: ! has_field(“field1”)) to be sure that the message goes to the next step?
Looking the cloned message, what happen to it? It restarts with the Stage0? or continue with the Stage2?
thanks to all those who want to help me understand