New decoding
and framing
options for sources
Often, when consuming data from a source, the first operation you have to do on
it is decode the data from its source representation. To make this easier, we’ve
added new decoding
options to most sources.
For example, if you have a kafka
source that has JSON-encoded messages, now
you can simply add decoding.codec = "json"
to your source configuration like:
[sources.kafka]
type = "kafka"
bootstrap_servers = "localhost:9200"
topics = ["my_topic"]
decoding.codec = "json"
This will decode your messages from JSON, thus saving you from an additional
remap
transform.
In addition, we’ve added a new framing
option to allow configuration for
sources that have non-standard framing (for example a custom-delimiter
separating messages).
For example, if you have an http
source where the messages are delimited by
commas instead of newlines, you can configure this like:
[sources.http]
type = "http"
address = "0.0.0.0:8080"
framing.method = "character_delimited"
framing.character_delimited.delimiter = ","
To have Vector parse each comma-delimited element as a new message. This can be
used with decoding
option specified above. See the docs
for other framing options.