The Vector team is pleased to announce version 0.24.0!
Be sure to check out the upgrade guide for breaking changes in this release.
In addition to the new features, enhancements, and fixes listed below, this release adds:
axiom
sink for sending events to Axiomgcp_chronicle_unstructured
sink for sending unstructured log events to GCP Chroniclefile_descriptor
source to consume input from file descriptorsopentelemetry
source to receive input from OpenTelemetry collectors and SDKs. Only
logs are supported in this release, but support for metrics and traces are in-flight.
An opentelemetry
sink will follow.expire_metrics
(will be replaced by expire_metrics_secs
in 0.24.1). This can alleviate issues with
Vector using increased memory over time. For now it is opt-in, but we may make this the
default in the future.Note that this release has a backwards incompatible data model change that users of the
vector
sink and disk buffers should be aware of while upgrading. See the note in the
upgrade guide for more
details.
host_metrics
metrics for physical and logical CPU counts were incorrectly
implemented as new modes for the cpu_seconds_total
when they were meant to be new gauges.
Fixed in 0.24.1.vector top
and some sinks like file
incorrectly report metrics from the
internal_metrics
source as they show the incremental metrics rather than absolute.
Fixed in 0.24.1.expire_metrics_secs
option added in this release was not correctly applied. Fixed
in 0.24.2.""
) for options that take a field name started panicking in
0.24.0 rather than disabling the option as it previously did. Fixed in 0.24.2.datadog_metrics
sink, but there was a regression in it prior to release. Fixed in
0.24.2.The VRL compiler now rejects assignments to fields on values known not to be objects or arrays. For example, this now fails:
foo = 1
foo.bar = 2
Where previously it would overwrite the value of 1
with { "bar": 2 }
. This was
done to alleviate accidental assignments. You can still assign like:
foo = 1
foo = {}
foo.bar = 2
prometheus_exporter
sink now has a suppress_timestamp
option to avoid adding
the timestamp to exposed metrics.
Thanks to
shenxn
for contributing this change!prometheus_scrape
source now uses unsigned 64-bit integers for histogram
buckets, allowing it to avoid errors when scraping endpoints that have buckets with
very counts that didn’t fit in an unsigned 32-bit integer.A filter
function was added to VRL to allow easy removal of keys from objects or
elements from arrays. It can be used like:
.kubernetes.pod_annotations = filter(.kubernetes.pod_annotations) { |key, _value|
!starts_with(key, "checksum")
}
flatten
function now takes an optional parameter, separator
, to configure
the separator to use when flattening keys. This defaults to .
, preserving the
current behavior.
Thanks to
trennepohl
for contributing this change!sample
transform can now sample trace events.gcp_chronicle_unstructured
sink was added to send log events to GCP
Chronicle as unstructured
events. We expect to support UDM events in the future.A number of VRL type definition bugs have been resolved to allow VRL to more
precisely know the types of values and fields in more places. In general, this means
less need for type coercion functions like string()
.
See the release highlight for more details.
host_metrics
source now emits mode=iowait
for host_cpu_seconds_total
.
Thanks to
charmitro
for contributing this change!End-to-end acknowledgement support has been added to the following sinks:
papertrail
socket
pulsar
prometheus_exporter
prometheus_remote_write
auth.region
. By default, this will use the same region that the component is
configured to use via region
.
Thanks to
akutta
for contributing this change!is_ipv4
and is_ipv6
.source_lag_time_seconds
, was added for sources that is
a histogram of the time difference of when Vector ingests an event and the timestamp
of the event itself (if it exists).The internal_metrics
source now emits an internal_metrics_cardinality
gauge
indicating the cardinality of the internal metric store.
Previously we emitted internal_metrics_cardinality_total
but this metric is
a counter and so cannot account for metrics being dropped from the internal metric
store. internal_metrics_cardinality_total
has been deprecated and will be removed
in a future release.
websocket
sink now allows configuration of the same authentication settings
the http
sink does via the new auth
configuration option.
Thanks to
wez470
for contributing this change!internal_metrics
source, now allows for expiration of metrics via a new configurable global
expire_metrics
configuration option. When set, the store will drop metrics that
haven’t been seen in the configured duration. This can be used to expire metrics
from the kubernetes_logs
source, and others, which tag their internal metrics with
high cardinality, but ephemeral, tags like file
.axiom
sink was added for sending data to Axiom.
Thanks to
bahlo
for contributing this change!gelf
codec was added for decoding/encoding
GELF data in Vector’s sources and sinks. It
can be used via encoding.codec
on sinks and decoding.codec
on sources, for
those that support codecs.A new enrichment table type was added,
geoip
.
This can be used with VRL’s enrichment table
functions to enrich events
using a GeoIP database.
Additionally the geoip
enrichment table has support for Connection-Type
databases.
This takes the place of the geoip
, which has been deprecated.
A new opentelemetry
source
was added to ingest logs from the OpenTelemetry collector and OpenTelemetry SDKs.
We will be following with support for ingesting metrics and traces.
Thanks to caibirdme for contributing this change!apex
sink was added to send logs to Apex.
This sink was removed in v0.28 as the Apex service moved to EOL.
Thanks to
mcasper
for contributing this change!file_descriptor
source was added to
read events from file descriptors.
Thanks to
mcasper
for contributing this change!elasticsearch
sink now sends any configured headers when making healthchecks.datadog_agent
source the
datadog_metrics
sink to correctly pass “rate” metrics from the Datadog Agent to
Datadog.parse_apache_log
function now handles additional error log formats.mongodb_metrics
source now correctly decodes bytes_written_from
values that
exceed 32-bit integers, up to 64-bit.
Thanks to
KernelErr
for contributing this change!host_metrics
source has improved handling of fetching cgroups metrics from
hybrid cgroups. It now checks all possible locations for stats.proxy
is configured on a component).
Thanks to
ntim
for contributing this change!docker_logs
source now correctly tags internal metrics that it emits with the
normal component tags (component_id
, component_kind
, and component_type
).
Thanks to
zhongzc
for contributing this change!host_metrics
source now emits two new gauges for the number of CPUs on the
host: physical_cpus
and logical_cpus
. These can be used to better interpret the
load*
metrics that are emitted.exec
source now gracefully waits for the subprocess to exit when shutting down
by sending a SIGTERM. This has only been implemented for *nix hosts. On Windows, the
subprocess will be abruptly killed. We hope to improve this in the future.file
, journald
, and kafka
sources no longer halt when end-to-end
acknowledgements are enabled and an attached sink returns an error. This was
a change in v0.23.0, but we backed it out to pursue improved error handling in
sinks.Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter