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.axiom sink was added for sending data to Axiom.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.
apex sink was added to send logs to Apex.
This sink was removed in v0.28 as the Apex service moved to EOL.file_descriptor
source was added to
read events from file descriptors.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.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.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.End-to-end acknowledgement support has been added to the following sinks:
papertrailsocketpulsarprometheus_exporterprometheus_remote_writeauth.region. By default, this will use the same region that the component is
configured to use via region.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.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.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.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).docker_logs source now correctly tags internal metrics that it emits with the
normal component tags (component_id, component_kind, and component_type).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.encoding.codec rather than just encoding. See the upgrade note for details.opentelemetry source for consuming logs from OpenTelemetry collectors and SDKs.
This support will be expanded to cover metrics and traces as well as an
opentelemetry sink.Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter