Description |
Any events matching Condition
may be merged by adding FieldName
from each event to the starting event. |
|
|
Comments |
This filter can be used for combining a sequence of events into a single event, for example merging multiple lines read from a text log file into a single event record. If FieldName or the ending Condition are missing, blank or invalid, do nothing. 1. If an event matches the starting Condition, retain the starting event. 2. For every subsequent event take its FieldName and add it as a uniquely named field to the starting event (such as ev:msg1, ev:msg2, ...). Discard this merged event. 3. When the event matches the ending Condition or if the TimeInteval expires or another starting Condition is matched, release the starting event into the stream after creating the following event fields: ev:mergeEvents.startTime = StartingTime Example: Starting
Event in: Starting
Event after (still held): Event
2 in: Starting
Event after (still held): Event
3 in: Starting
Event after (released): |
<filter objectId="MergeMultiple" type="MergeMultipleEventsIntoSingleEventFilter"> <parameter type="Condition"> <negatePrimaryCondition>false</negatePrimaryCondition> <conditionRelation>Any</conditionRelation> <conditionSpec> <!—changed name from “condition” --> <negate>false</negate> <fieldName>ev:host</fieldName> <operator>neq</operator> <valueType>string</valueType> <value>HOST_INVALID</value> </conditionSpec> </parameter> <parameter type="FieldName">ev:msg</parameter> <parameter type="Condition"> <negatePrimaryCondition>false</negatePrimaryCondition> <conditionRelation>Any</conditionRelation> <conditionSpec> <negate>false</negate> <fieldName>ev:host</fieldName> <operator>isContainedInString</operator> <valueType>string</valueType> <value>START</value> </conditionSpec> </parameter> <parameter type="Condition"> <negatePrimaryCondition>false</negatePrimaryCondition> <conditionRelation>Any</conditionRelation> <conditionSpec> <negate>false</negate> <fieldName>ev:host</fieldName> <operator>isContainedInString</operator> <valueType>string</valueType> <value>END</value> </conditionSpec> </parameter> <parameter type="TimeInterval"> <time>10</time> <units>min</units> </parameter> </filter>