Vector v0.17.0 release notes
Upgrading Vector
When upgrading, we recommend stepping through minor versions as
these can each contain breaking changes while Vector is pre-1.0.
These breaking changes are noted in their respective upgrade
guides.
The Vector team is pleased to announce version 0.17.0!
Be sure to check out the upgrade guide for breaking changes in this release.
This release includes:
- One new component:
splunk_hec_metricssink for sending metrics to Splunk
- Adaptive Concurrency enabled by default to maximize throughput for HTTP-based sinks
- An enhancement to the
host_metricsto fetch memory and CPU metrics for cgroups - New VRL functions: find, unique, and, a set of functions for dynamically looking up event fields, get, set, and remove.
It also contains a number of additional enhancements and bug fixes. Check out the highlights and changelog for more details.
Known issues
events_out_totalandprocessed_events_totalceased being published by sources and transforms. This will be fixed in a subsequent release, but these metrics have also been replaced bycomponent_sent_events_totalwhich is being implemented for all components.
Changelog
13 new features
pipelines
create WIP pipeline parser
8572
pipelines
compiler verification
8810
pipelines
add –pipeline-dir argument to cli
9002
pipelines
add component_scope field to internal metrics
9051
new sink
Add ‘splunk_hec_metrics’ sink
8947
vrl
add find function
9090
new sink
Add ‘datadog_archives’ sink with S3 support
8929
config
handle BufferConfig parsing without a type tag
9151
kubernetes_logs source
add pod annotations
9180
datadog_logs sink
use v2 endpoint for logs
9277
datadog_agent source
support v1 and v2 log apis
9176
vrl
dynamic path functions
9284
aws service
add support to use AWS credentials file for AWS authentication
9060
46 enhancements
vrl
add undefined variable compiler error
8910
sinks
Use variance calculation to better adapt to RTT times in ARC
8325
host_metrics source
Add initial cgroups metrics
8806
sinks
Make adaptive concurrency the default
8598
blackhole sink
print on interval instead of after X events
8968
reduce transform
Add additional merge strategies
8559
loki sink
Define events
8958
pipelines
rename ComponentId to ComponentKey
8955
loki sink
Add 8983
vrl
Add function for retrieving deduplicating an array
9012
journald source
Add include_matches/exclude_matches options
8974
humio_logs sink
humio_metrics sink
Add 8981
enriching
add between date search to enrichment tables
9021
aws_kinesis_firehose sink
Check batch configuration limits
9088
enriching
add 9069
vrl
Added case sensitive option to enrichment VRL functions
9085
enriching
Add select parameter to enrichment VRL functions
9102
releasing
Add section for debian package
9164
codecs
kafka source
Integrate 9071
cli
Write logs to stderr
9166
enriching
error if enrichment functions reference a non existent column
9174
cli
Fix API client subscription drop
9250
vrl
allow statements in 9177
external docs
Serve metadata as JSON
9276
observability
file source
Improve file source observability
9205
observability
sinks
Emit events for sent events in all HttpSink sinks
9275
kafka sink
add header support to kafka sink
9171
vrl
Move rate limiting span to just around log function
9294
enriching
enrichment functions need to specify date conditions
9296
vrl
Add 9015
unit tests
Add testing for component specification features
9312
vrl
Allow 9373
vrl
added reverse_dns remap function
8717
external docs
Update unit testing docs to cover VRL conditions
9377
codecs
exec source
Integrate 9337
external docs
Link to Helm chart repo
9396
dev
Added check-build-tools to Makefile (#8146)
8147
graphql api
Refactor 9339
prometheus_scrape source
Allowing tagging metrics with instance and endpoint
9330
datadog_logs sink
Set DD origin headers
9367
sources
observability
Add events to HttpSource framework
9379
codecs
exec source
Integrate 9400
codecs
datadog_agent source
Integrate 9430
vrl
Add 9376
codecs
aws_kinesis_firehose source
Integrate 9332
aws_ec2_metadata transform
dont error when receiving a 404 when fetching metadata
9492
logfmt encoding
index and indexed_fields options to Humio sink
find_enrichment_table_records VRL function
Decoder/DecodingConfig with kafka source
if predicates over multiple lines.
tally function
to_float to take timestamps
Decoder/DecodingConfig with exec source
outputEvents subscription -> outputEventsByComponentIdPatterns
Decoder/DecodingConfig with nats source
Decoder/DecodingConfig with datadog source
default_known_ports parameter to parse_url function
Decoder/DecodingConfig with aws_kinesis_firehose source
48 bug fixes
releasing
Add enrichment tables to all builds
8939
css website
github icon should have hover effect in dark mode.
8964
splunk_hec source
Do not blow up on trailing whitespace
8997
vrl
handle complex ruby objects
8956
external docs
Add template note to config params
9032
config
error on duplicate inputs
9011
ci
Regenerate intermediate test CA
9053
external docs
Fix component docs rendering nits
9074
config
ensure components don’t have dots in their names
9083
aws_cloudwatch_logs sink
Allow adaptive concurrency
9007
ci
Put collects back
9097
tests
work around internal_logs lack of isolation
9099
tests
Fix smoke test first line function for e2e kubernetes tests
9096
enriching
Usable in Test
9095
aws_s3 sink
Fix batching parameters
9106
ci
Overwrite wix install if exists
9116
aws service
more precise aws retry logic
9104
architecture
use a fixed vec allocation for batches
9128
prometheus_scrape source
allow 9123
vrl
Re-add VRL posiition to 8995
ci
Use use_v2_api: false for k8s datadog agent tests
9155
http source
adjust deflate compression handling
9121
networking
reorder service layers to prevent unbounded retries
9026
vrl
Add ipv6 support to parse_aws_alb_log.rs
9163
aws_s3 sink
ship final batches when shutting down
9184
host_metrics source
Detect cgroup memory controller before scanning
9168
cli
Fix 9139
datadog_archives sink
Correct encoding tags
9252
external docs
Update GitHub org name throughout the website
9249
external docs
Add source/edit buttons to docs and guides
9248
vrl
fix byte-swapped integers in ip_aton() and ip_ntoa() functions
9208
cli
Fix 9254
releasing
Use bash rather than sh for script installer
9266
external docs
Improve VRL function templating
9263
ci
Re-add markdown and cue checks
9285
external docs
Change sidebar ordering of VRL and config docs
9271
transforms
add sanity check in route & compound transforms
9301
docs
add missing word
9359
vrl
reverse if else alternatives before nesting
9363
external docs
Provide the correct optionality for the VRL assert message
9384
generator source
Give the generator source a default interval
9390
buffers
Use tokio runtime in buffer benchmarks
9391
external docs
Fix configuration reference
9397
codecs
Propagate empty byte frames in message based transports
9399
datadog_logs sink
always send unix timestamp in milliseconds
9436
datadog_logs sink
expect ACCEPTED(202) instead of OK(200) response from Logs v2 API
9437
vrl
Correct parse_url’s value type
9473
sink loki
return empty json when buffer is empty
9464
: in metric names
log() calls
top quitting when the host has gone away
tap signal handling
133 chore
deps
bump inherent from 0.1.6 to 1.0.0
8832
Add VERSIONING policy
8795
Silence a couple of clippy warnings
8880
Add link to CHANGELOG.md
8885
deps
bump redis from 0.21.0 to 0.21.1
8890
deps
bump bytes from 1.0.1 to 1.1.0
8891
deps
bump libc from 0.2.100 to 0.2.101
8892
deps
bump tokio from 1.10.0 to 1.10.1
8897
Introduce a 8907
deps
Remove WASM code
8911
vrl
RFC for improved error diagnostics
8894
Add note about RBAC required for kubernetes_logs
8915
deps
bump grok from 1.1.0 to 1.2.0
8916
deps
bump serde_yaml from 0.8.19 to 0.8.20
8917
generator source
Generate config with JSON default
8942
codecs
Add RFC for “Framing and Codecs - Sources”
8620
deps
bump serde from 1.0.129 to 1.0.130
8952
Add data loss defaults to user experience design
8945
deps
bump thiserror from 1.0.26 to 1.0.28
8959
deps
bump serde_json from 1.0.66 to 1.0.67
8953
deps
bump flate2 from 1.0.20 to 1.0.21
8961
deps
bump sha-1 from 0.9.7 to 0.9.8
8962
deps
bump arc-swap from 1.3.1 to 1.3.2
8963
Add RFC last call meeting to template
8965
deps
bump futures from 0.3.16 to 0.3.17
8966
Add component specification
8858
deps
Unpin evmap from fork
8941
deps
bump structopt from 0.3.22 to 0.3.23
8971
Introduce a 8960
deps
bump tokio from 1.10.1 to 1.11.0
8986
enriching
move enrichment tables into new crate
8979
deps
bump ordered-float from 2.7.0 to 2.8.0
9018
deps
bump redis from 0.21.1 to 0.21.2
9019
Attempt to enable disallowed-methods clippy lint
9013
codecs
Implement codec traits for sources/decoding
8913
architecture
add per-batch timeout support to Batcher
9004
observability
Internal tracing RFC
8723
deps
bump pulsar from 4.0.0 to 4.1.1
9062
deps
bump thiserror from 1.0.28 to 1.0.29
9050
ci
bump docker/setup-buildx-action from 1.5.1 to 1.6.0
9058
deps
bump assert_cmd from 2.0.0 to 2.0.1
9061
Add how test intermediate certificates were generated
9076
aws_s3 sink
refactor the S3 sink
8884
deps
bump mongodb from 2.0.0-beta.3 to 2.0.0
9081
deps
bump syslog_loose from 0.14.0 to 0.15.0
9082
releasing
Run Windows builds on our CI runners
9084
codecs
Implement 8918
compound transform
Use array for configuration
8846
codecs
Implement 8936
enriching
check for duplicate indexes before adding a new one
9056
host_metrics source
Improve error reporting for cgroups metrics
9087
deps
Bump grok from 1.1.0 to 1.2.0
8940
codecs
Implement 9054
codecs
Implement 9063
codecs
Implement 9059
codecs
Implement 9065
deps
9089
deps
Upgrade Rust to 1.55
9094
observability
revert internal tracing proof of concept
9041
deps
bump nom from 7.0.0-alpha1 to 7.0.0
8830
ci
Run integration tests on PRs with label
9098
deps
bump async-nats from 0.9.18 to 0.10.1
9101
observability
Add common counters
9111
deps
bump serde_yaml from 0.8.20 to 0.8.21
9118
deps
bump tracing-core from 0.1.19 to 0.1.20
9119
deps
bump anyhow from 1.0.43 to 1.0.44
9120
deps
bump flate2 from 1.0.21 to 1.0.22
9133
deps
bump tracing from 0.1.26 to 0.1.27
9134
deps
bump serde_json from 1.0.67 to 1.0.68
9149
deps
bump tracing-subscriber from 0.2.20 to 0.2.22
9136
Add specifications for configuration and instrumentation
9117
deps
bump rust_decimal from 1.15.0 to 1.16.0
9148
ci
Remove unused advisory
9138
deps
bump libc from 0.2.101 to 0.2.102
9156
Rework the Datadog logs sink
8825
codecs
stdin source
Integrate 9070
deps
bump socket2 from 0.4.1 to 0.4.2
9167
deps
bump mlua from 0.6.2 to 0.6.3
9170
codecs
Allow 9067
deps
bump hyper from 0.14.12 to 0.14.13
9198
Removes 9172
deps
bump metrics-util from 0.10.0 to 0.10.1
9200
codecs
Use 9154
deps
bump tracing-subscriber from 0.2.22 to 0.2.23
9199
external docs
Fix typo on pipelines page
9214
deps
bump arc-swap from 1.3.2 to 1.4.0
9220
Add buffer instrumentation spec
9165
Add component_ prefix to metric naming
9218
Re-add namespace to instrumentation spec
9232
deps
bump tracing from 0.1.27 to 0.1.28
9230
deps
bump cidr-utils from 0.5.4 to 0.5.5
9245
deps
bump rand_distr from 0.4.1 to 0.4.2
9246
deps
bump tracing-subscriber from 0.2.23 to 0.2.24
9247
Re-introduce tokio-console under a feature flag
9240
deps
bump bstr from 0.2.16 to 0.2.17
9260
external docs
Run 9268
datadog_agent source
Accept metrics in the 9057
Move InternalEvent to vector-core
9264
buffers
Fix clippy error in 9274
deps
bump tokio from 1.11.0 to 1.12.0
9288
deps
bump chrono-tz from 0.5.3 to 0.6.0
9258
deps
bump http from 0.2.4 to 0.2.5
9290
graphql api
Add 9300
sinks
make StreamSink::run take self
9331
Move byte_size_of to core_common
9341
ci
bump actions/github-script from 4.1 to 5
9345
external docs
Actually run cue and markdown checks on CI
9343
architecture
refactor PathIter to avoid regex + allocations (plus a bonus change)
9348
deps
bump libc from 0.2.102 to 0.2.103
9356
Add buffer max size metric to buffer specification
9318
vrl
RFC for iteration support
9001
deps
bump pretty_assertions from 0.7.2 to 1.0.0
9364
deps
bump mlua from 0.6.3 to 0.6.4
9365
deps
bump smallvec from 1.6.1 to 1.7.0
9366
deps
bump nix from 0.22.1 to 0.22.2
9369
Add script to surface-scan components against specification
9308
internal docs
Fix markdown lint issues in VRL iteration RFC
9380
deps
bump tokio-postgres from 0.7.2 to 0.7.3
9385
vrl
add development design document
8735
graphql api
Add 9313
vrl
Lint DESIGN.md
9413
Improve highlighting on template syntax page
9419
deps
bump atomig from 0.3.1 to 0.3.2
9427
architecture
consolidate sink I/O driver logic into reusable component
9215
deps
bump lru from 0.6.6 to 0.7.0
9461
deps
bump tracing-core from 0.1.20 to 0.1.21
9426
deps
bump woothee from 0.11.0 to 0.12.1
9425
buffers
Fix compilation issues when disk buffers are not enabled
9358
vrl
Add benches for type assertion functions
9412
buffers
Add ByteSizeOf for buffer items
9482
deps
bump tracing-subscriber from 0.2.24 to 0.2.25
9486
deps
bump mlua from 0.6.4 to 0.6.5
9487
deps
bump tracing from 0.1.28 to 0.1.29
9488
rename_key on LogEvent
Batcher stream processor
character_delimited framing
length_delimited framing
newline_delimited framing
octet_counting framing
bytes framing
syslog parser
cargo upgrade --aggressive
Decoder/DecodingConfig with stdin source
max_length to be missing from framers / empty decoding config
sink::Response from the Datadog Logs sink
codecs::Decoder in TcpSource
cue fmt on the docs
datadog_agent source RFC
BufferConfig::resources
received_events_total to the API
sent_events_total to API
What’s next
Component metric standardization
We are in the process of ensuring that all Vector components report a consistent set of metrics to make
it easier to monitor the performance of Vector. These metrics are outlined in this new instrumentation
specification).
VRL iteration support
A common request from users when the incoming log event shape is unknown, to be able to iterate over the
keys and values in those log events. We recently published an RFC for this and
expect to implement this support this quarter.
New unified Vector helm chart
Taking all of our learnings from the existing agent and aggregator Helm charts, we’ve started work on
a new Helm chart that will unify both the agent and aggregator deployments into one chart, which can be
configured by deployment role, to simplify deployment and chart maintenance. You can follow along in
vectordotdev/helm-charts#38.