Routing: Filters and Splitters
TriggerMesh provides routing by event content (Filter) or dividing incoming events into multiple distinct events as necessary (Splitter).
The Filter determines which events to process based on their content. Content-based event filtering is expressed in Google's Common Expression Language. Multiple filters may be used as necessary. Filters do not modify the content of the processed events.
Examples include dropping log messages outside of a time window or only processing events containing a particular substring.
There is an example of Writing a Filter available under Guides.
The Filter specification is available through
kubectl explain filter.spec KIND: Filter VERSION: routing.triggermesh.io/v1alpha1 RESOURCE: spec <Object> DESCRIPTION: Desired state of the filter. FIELDS: expression <string> -required- Google CEL-like expression string. sink <Object> -required- Sink is a reference to an object that will resolve to a uri to use as the sink.
The Splitter separates events into multiple events which may then be processed individually.
JSON events frequently have arrays of events that need to be split.
There is an example of Creating a Splitter available under Guides.
The Splitter specification is available through
kubectl explain splitter.spec KIND: Splitter VERSION: routing.triggermesh.io/v1alpha1 RESOURCE: spec <Object> DESCRIPTION: Desired state of the splitter. FIELDS: ceContext <Object> -required- Context attributes to set on produced CloudEvents. path <string> JSONPath expression representing the key containing the data array to split. Defaults to the root. sink <Object> -required- Sink is a reference to an object that will resolve to a uri to use as the sink.
Filters and Splitters are listed and documented in the Routing API reference.