Version 2 of the Vector source/sink released
We’ve released a new major version (
v2) of our
components. This release resolves several issues and limitations we experienced
with our previous (
v1) TCP-based implementation of these two components:
vectorsink does not work in k8s with dynamic IP addresses (#2070)
- Allow for HTTP in the vector source and sinks (#5124)
- Allow Vector Source and Sink to Communicate over GRPC (#6646)
- RFC 5843 - Encoding/Decoding for Vector to Vector Communication (#6032)
The new version transitions to using gRPC over HTTP as its communication protocol, which resolves those limitations.
To allow operators to transition at their leisure, this new release of Vector
still defaults to
v1. In the next release (
0.17.0) we’ll require operators
to explicitly state which version they want to use, but continue to support
v1. The release after that (
0.18.0) we’ll drop
v1 completely, and default
v2, we also no longer require you to explicitly set the version since there
will only be one supported going forward.
If you want to opt in to the new (stable!)
v2 version, you can do so as
[sinks.vector] type = "vector" + version = "2" [sources.vector] type = "vector" + version = "2"
There are a couple of things to be aware of:
You have to upgrade both the source and sink to
v2, or none at all,
you cannot update one without updating the other. Doing so will result in a loss
If you want to do a zero-downtime upgrade to
v2, you’ll have to introduce the
new source/sink versions next to the existing versions, before removing the
First, deploy the configuration that defines the source:
[sources.vector] address = "0.0.0.0:9000" type = "vector" + version = "1" + [sources.vector] + address = "0.0.0.0:5000" + type = "vector" + version = "2"
Then, deploy the sink configuration, switching it over to the new version:
[sinks.vector] - address = "127.0.1.2:9000" + address = "127.0.1.2:5000" type = "vector" + version = "2"
Once the sink is deployed, you can do another deploy of the source, removing the old version:
- [sources.vector] - address = "0.0.0.0:9000" - type = "vector" - version = "1" - [sources.vector] address = "0.0.0.0:5000" type = "vector" version = "2"
That’s it! You are now using the new transport protocol for Vector-to-Vector communication.