Adding the abort keyword to VRL
Aborting processing of events in remap
Vector 0.13 introduces a new abort expression to the Vector Remap
Language (VRL). This expression can be used to abort processing in
a remap transform. This is useful for aborting processing of invalid
events.
By default, events that encounter an abort expression will be dropped by the
remap transform, but this behavior can be modified to simply pass
along the unmodified event to the next transform by setting drop_on_abort to
false.
Example
As an example, the abort expression can be used if you want to do some
validation on the event before processing it, discarding any invalid events.
Given a config of:
[sources.in]
type = "generator"
format = "shuffle"
interval = 1.0
lines = ['{ "message": "valid message", "type": "ok"}', '{ "message": "invalid message", "type": "unknown"}']
[transforms.remap]
type = "remap"
inputs = ["in"]
source = """
. |= object!(parse_json!(string!(.message)))
if .type != "ok" {
abort # unknown type
}
"""
[sinks.out]
type = "console"
inputs = ["remap"]
encoding.codec = "json"
You would expect to see something like:
{"message":"valid message","timestamp":"2021-04-20T20:26:05.214875Z","type":"ok"}
{"message":"valid message","timestamp":"2021-04-20T20:26:06.213879Z","type":"ok"}
{"message":"valid message","timestamp":"2021-04-20T20:26:07.214254Z","type":"ok"}
{"message":"valid message","timestamp":"2021-04-20T20:26:08.215219Z","type":"ok"}
That is, that all of the events that don’t have a type of ok, would be
dropped.