Vector v0.9.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.
Changelog
14 new features
cli
Add 1908
new source
Initial 1650
kafka sink
Add support for compression
1969
new transform
Initial 1848
new transform
Initial ’tag_cardinality_limit’ transform implementation
1959
new sink
Initial 1835
new sink
Initial 1847
new sink
Initial 1665
new sink
Initial 1832
elasticsearch sink
Check for and log partial ingestion failures
2185
new transform
Initial 2088
new transform
Initial 1888
cli
Add 2230
new source
Initial 1953
--log-format CLI option
http source implementation
dedupe transform implementation
papertrail sink implementation
honeycomb sink implementation
pulsar sink implementation
datadog_logs sink implementation
filter transform implementation
kubernetes_pod_metadata transform implementation
-qqq command line flag to disable logs
internal metrics source implementation
48 enhancements
config
Allow setting individual 1923
socket source
syslog source
vector source
Add TLS support to socket, syslog, and vector sources
1892
config
Default to 1947
config
Add 1950
operations
Create feature flags for all components enabling custom Vector builds
1924
cli
Add 1956
cli
Allow names in 1955
logplex source
splunk_hec source
Add TLS support
1968
sinks
Add new 1915
networking
Move all TLS support over to openssl
1986
config
Add 1997
vector sink
Add support for TLS
2025
elasticsearch sink
Add 2038
sampler transform
Add new 2039
lua transform
Add 2056
config
Support escaping in the field path notation
2081
add_fields transform
Allow native TOML tables
2068
remove_fields transform
rename_fields transform
Add new 2077
lua transform
Support metric events in version 2
2095
config
Make LogSchema more optional
2113
networking
Add 2130
splunk_hec sink
Add new 2127
observability
The 2148
aws_s3 sink
Increase default rate limit to allow for higher throughput
2161
socket sink
Add support for UDP mode
2162
networking
Add support for 2164
config
Rename 2181
config
Add new 2183
field_filter transform
Deprecate in favor of the new 2195
config
Add new 2198
observability
Warn that old 2197
regex_parser transform
Add new 2023
networking
Detect TCP disconnects earlier
2209
lua transform
Implement all hooks and timers in version 2
2126
vector source
vector sink
Support metric events
2245
ux
Use external tagging for metrics serialization
2231
config
Add 2244
filter transform
Accept metrics as input
2267
lua transform
Set 2274
gcp_cloud_storage sink
Make ACL optional
2283
docker source
Add elegant shutdown behavior
2260
sources
Add 2298
cli
Show possible values for 2300
topology
Improve topology shutdown logs
2345
gcp provider
Add support for instance accounts
2351
splunk_hec source
Wire in new 2373
journald source
Wire in 2364
sources
Wire in new 2365
log_schema.* options
check_fields condition when specifying conditions
is_log and is_metric conditions
--fragment flag to generate subcmd
generate subcmd expression
encoding.only_fields and encoding.except_fields options
contains and prefix predicates
timeout query parameter
key_field option
version configuration option
drop_empty option to drop empty objects automatically
User-agent header to all outgoing HTTP requests
index option to specify custom Splunk indexes
add_fields, remove_fields, and rename_fields now produce a debug log when a field is replaced or nonexistent
tls.verify_hostname in HTTP based sinks
prefix condition predicate to starts_with
ends_with condition predicate
filter transform
regex condition predicate
field_filter transform is deprecated
target_field option
source_key and source_type_key to…
search_dirs to config dirs by default
source_type field
--log-format, --color, and --format
ShutdownSignal for improved shutdown
ShutdownSignal for improved shutdown
ShutdownSignal for improved shutdown
20 bug fixes
config
Force 2034
transforms
Fix insertion to arrays in field path notation
2062
merge transform
Support nested fields and arrays
1936
journald source
Fix handling of message array data
2053
gcp_stackdrive_logging sink
Rename 2121
tests
Fix disk pressure
2217
elasticsearch sink
Default 2219
loki sink
Pass 2234
influxdb_metrics sink
Pass 2238
gcp_cloud_storage sink
Use kebab case for ACL encoding
2259
aws_kinesis_firehose sink
Fix healthchecks
2276
aws_ec2_metadata transform
Only run required requests based on the supplied 2265
website
correct typo in testing post
2291
website
small fixes for testing post
2292
kafka sink
Run healthcheck in rt context
2288
aws_cloudwatch_logs sink
Sort events by timestamp
2320
sinks
Reduce credentials fetch timeout
2342
lua transform
Don’t require 2335
aws_cloudwatch_logs sink
Allow creation race of groups and streams
2355
lua transform
support sub-second timestamp resolution
2333
symlink re-evaluation when detecting a changed Vector config
gcp_stackdriver_logging sink to gcp_stackdriver_logs
compression to none
tls settings to healthcheck
tls settings to healthcheck
fields
isdst, wday, yday in timestamps
101 chore
testing
Add behavior test for the 1820
Replace 1902
Upgrade rdkafka to 0.23.1
1928
Upgrade lib/file-source to futures 0.3
1934
dependencies
Rename futures to futures01
1933
gcp_pubsub sink
Rewrite to use HttpSink and JsonArrayBuffer
1925
topology
Allow transforms to implement 1938
tests
Increase test logs size
1949
operations
Add TEST_LOG to test-stable CI job
1937
operations
Check kube and docker code
1914
dependencies
Upgrade to Rust 1.41.1
1958
website
Remove Google Analytics
1976
Add Privacy Policy
1977
Add 1981
Add RFC process
1961
operations
Pull fresh containers on test
2019
statsd sink
Fix race condition in test
2026
logplex source
Refactor to use util/HttpSource
2014
statsd sink
Reshuffle timeout in test
2035
networking
Refactor internal http client
2029
Add PR checklist
2010
operations
Upgrade to rustc 2043
Add markdown linting
2020
splunk_hec sink
Rename 2037
operations
Check lockfile over cargo.toml
2050
docs
Re-run doc generation
2052
Add 2054
testing
Fix 2061
sinks
Part 1 of 2072
json_parser transform
Ensure white-space dooes not break parsing
2060
Update tagline
2079
RFC #1999 - 2020-03-06 - API extensions for 2000
dependencies
Upgrade 2083
website
Upgrade dependencies
2086
sinks
Part 2 of 2075
setup
Use 2087
testing
Pin tag for 2091
Switch to 1922
topology
Refactor source shutdown and make it two-phase
1994
Add 2082
file sink
Upgrade file sink for tokio-compat
1988
Correct doctest at src/stream.rs
2097
console sink
Upgrade console sink for tokio 0.2
2096
Correct Cargo.lock
2105
operations
Fix 2103
topology
Make RunningTopology::stop() signal all sources to shut down using the new ShutdownCoordinator (1091)
2098
Racy buffering tests correction
2106
operations
Add test harness GH action
2028
TLS reorganization
2101
networking
Revert “Use MaybeTlsListener in TcpSource”
2129
dependencies
Rename tokio -> tokio01 and tokio02 -> tokio
2131
operations
Relax PR check list to only fire on important changes
2136
dependencies
Update 2141
networking
Fix handling of incoming TLS connections
2146
Simplify domains for labels, etc
2152
Upstream github-script action at test harness workflow
2157
operations
Switch to upstream repo-permission-check-action
2158
Add LogEvent::new
2154
Remove package managers from install script
2165
Support ARM architectures in the install script
2167
Disable duplicated version output in 2169
tests
Enable Kubernetes tests
1970
tests
Use 2178
Add 2179
website
Add new guides section
2132
website
Update to Docusaurus 2.0.0-alpha.49
2196
sinks
Refactor internal sinks and simplify
2111
testing
Rename map_values_array to array_values_insertion_order test at discriminant
2140
add event-driven observability rfc
2093
website
Fix 2205
operations
Improve Windows Makefile support
2150
topology
disable flaky test
2215
website
Fix sitemap URLs and CSS layouts
2229
operations
RPM for aarch64 was using armv7
2220
kubernetes_pod_metadata transform
Add field tests
2213
topology
Add basic module docs
2233
operations
Don’t use 2239
website
Fix link to the Docker platform on the main page
2249
website
Use cat with heredoc instead of echo and quotes
2262
transforms
Make 2281
tests
Enable Rust codegen LTO for test harness
2310
networking
Upgrade http client to hyper 0.13
2294
operations
Fix Windows metrics
2309
website
Add /highlights section and rework release notes
2317
sources
Wire ShutdownSignal in 2290
Clarify dependencies of the 2324
config
Remove 2297
website
Add Twitter author tags
2299
dependencies
Bump 2346
Use only the filename part of the paths to extract dates
2347
website
Update Ana bio
2360
platforms
Migrate some PR checks to GitHub Actions from Circle
2352
file source
Wire in new 2261
Only run CI workflow when relevant files change
2369
Fix tests
2372
operations
Add nightly GH action workflow
2370
Move /test-data to /tests/data
2375
operations
Run ci workflow on pull requests only
2378
platforms
Reenable component feature check
2371
operations
Optimize binaries in 2380
Prepare 0.9.0
2353
merge transform
flatten/unflatten by native nesting
Stream
check-component-features target to the main Makefile
1.42.0
host_field to host_key
target directory to .markdownlintignore
check-component-features test
HttpSink refactor
lua transform
regex dependency
HttpSink refactor
--release Cargo flag in make build
loki Docker image
tokio-compat to start the transition to our new async runtime
*_flat methods for log events
x86_64-pc-windows-msvc build
bumpalo dependency in Cargo.lock
make version
UTC instead of Europe/London in ClickHouse tests
have: * labels
make generate command
buildx plugin by default
RuntimeTransform trait available for all transforms
trait HttpSource
package-* job in `make hel…
log_schema.source_key
tower-limit 0.1.2
ShutdownSignal for improved shutdown
test-stable CI to reduce binary sizes. This should make it more stable.
What’s next
Kubernetes!
We’re doing this integration right. We’ve been alpha testing with a number of large clusters and we’ve honed in on a very high-quality approach that reflects the UX Vector is going after. You can learn more in our Kubernetes Integration RFC. Feedback is welcome!
WASM Driven Plugin Architecture
This release included an overhaul of our
lua transform, which represents a big step towards making Vector more flexible. Lua is an excellent language when you need some quick scripting capabilities. But what if you need something more powerful? Like writing your own custom source, transform, or sink? Vector plans to solve this with WASM foreign module support, enabling you to extend Vector in the language of your choice with little performance penalty. ❤️ WASM. Check out the WASM Foreign Module Support RFC for more info.Dynamic HTTP Rate-Limiting (AIMD)
Fiddling with rate-limits is a frustrating endeavor. If you set them too high you risk overwhelming the service; too low and you’re unnecessarily limiting throughput. And what happens if you deploy a few more Vector instances? Vector is planning to solve this by automatically detecting the optimal rate limits, taking inspiration from TCP congestion control algorithms. Check out the Dynamic HTTP Rate Limiting RFC.
Vector Observability
Did you know this release includes a new hidden internal source that emits metrics reflecting Vector’s own internal state? 👀 We didn’t highlight this source because we have not finished instrumenting Vector and we’ll be changing the internal schema used.
Fun fact, we took an event-driven approach to Vector’s internal observability, which we strongly believe in. We want Vector to be a good example of our own advice. Checkout the Event-Driven Observability RFC.