The Vector team is pleased to announce version 0.31.0!
Be sure to check out the upgrade guide for breaking changes in this release.
In addition to the usual smaller enhancements and bug fixes, this release includes an opt-in beta of a new log event data model that we think will make it easier to process logs by moving event metadata out of the log event itself. We are looking for feedback on this new feature before beginning towards making it the default and eventually removing the old log event data model.
By way of example, an example event from the datadog_agent source currently looks like:
{
"ddsource": "vector",
"ddtags": "env:prod",
"hostname": "alpha",
"foo": "foo field",
"service": "cernan",
"source_type": "datadog_agent",
"bar": "bar field",
"status": "warning",
"timestamp": "1970-02-14T20:44:57.570Z"
}
Will now look like:
{
"foo": "foo field",
"bar": "bar field"
}
(just the event itself)
with additional buckets for source added metadata:
{
"ddsource": "vector",
"ddtags": "env:prod",
"hostname": "alpha",
"service": "cernan",
"status": "warning",
"timestamp": "1970-02-14T20:44:57.570Z"
}
accessible via %<datadog_agent>.<field>, and Vector added metadata:
{
"source_type": "datadog_agent",
"ingest_timestamp": "1970-02-14T20:44:58.236Z"
}
accessible via %vector.<field>.
We think this new organization will be easier to reason about for users as well as avoid key conflicts between event fields and metadata.
You can opt into this feature by setting schema.log_namespace as a global setting or the
log_namespace option now available on each source itself. See the blog
post for an expanded explanation and details. Let us know what you think on this issue.
aws_s3 source now support bucket notifications in SQS that originated as SNS
messages. It still does not support receiving SNS messages directly.from_unix_timestamp function was added to VRL to decode timestamp values from
unix timestamps. This deprecates the to_timestamp function, which will be removed
in a future release.parse_nginx_log function now supports ingress_upstreaminfo as a format.format_timestamp function now supports an optional timezone argument to
control the timezone of the encoded timestamp.--graceful-shutdown-limit-secs) and able to be disabled (via
--no-graceful-shutdown-limit). See the CLI
docs for more.zstd compression was added to sinks support compression.prometheus_remote_write sink now supports zstd and gzip compression in
addition to snappy (the default).journald source now supports a journal_namespace option to restrict the namespace of the units that the source consumes logs from.gelf, native_json, syslog, and json decoders (configurable as
decoding.codec on sources) now have corresponding options for lossy UTF-8
decoding via decoding.<codec name>.lossy = true|false. This can be used to
accept invalid UTF-8 where invalid characters are replaced before decoded.aws_kinesis_firehose and aws_kinesis_streams sinks are now able to retry requests
with partial failures by setting request_retry_partial to true. The default is
false to avoid writing duplicate data if proper event idempotency is not in place.component_sent_event_bytes_total and component_sent_event_total metrics can
now optionally have a service and source tag added to them, driven from event
data, from the added telemetry global config
options. This can be used
to break down processing volume by service and source.internal_metrics and internal_logs sources now shutdown last in order to
capture as much telemetry as possible during Vector shutdown.fluent source now correctly sends back message acknowledgements in msgpack
rather than JSON. Previously fluentbit would fail to process them.\0 null byte escape sequence in strings.statsd sink now correctly encodes all counters as incremental, per the spec.http_client no longer corrupts binary data by always trying to interpret as UTF-8 bytes. Instead options were added to encoders for lossy UTF-8 decoding (see above entry).Proxy-Authorization header is now added to HTTP requests from components
that support HTTP proxies when authentication is used.The following components now log template render errors at the warning level rather
than error and does not increment component_errors_total. This fixes a regression
in v0.30.0 for the loki sink.
loki sinkpapertrail sinksplunk_hec_logs sinksplunk_hec_metrics sinkthrottle transformlog_to_metric transformdatadog_metrics sink now incrementally encodes sketches. This avoids issues
users have seen with sketch payloads exceeding the limits and being dropped.datadog_agent reporting of events and bytes received was fixed so it no longer
double counted incoming events.log_schema global configuration fields can now appear in a different file than
defined sources.file sources were defined.component_kind,
component_id, component_type).Several deprecated internal metrics were removed:
events_in_totalevents_out_totalprocessed_bytes_totalprocessed_events_totalprocessing_errors_totalevents_failed_totalevents_discarded_totalSee the upgrade guide for more details.
component_received_event_bytes_total and component_sent_event_bytes_total
internal metrics have been updated to use a new measure, “estimated JSON size”, that
is an estimate of the size of the event were it encoded as JSON rather than the
“in-memory size” of the event, which is an implementation detail. See the upgrade
guide for more
details.Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter