A note for the community
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Use Cases
When using e.g. KeepaliveD, HAProxy, etc. to load-balance/HA multiple Vector instances, it is desirable to implement health checks. This allows for dynamic balance membership or priority based on if Vector itself is actually running on a target address.
To accomplish this, there should be an option for:
- an option on
http_server that will respond to a GET with a static body text/bytes and specified status code
- an option to filter out/not log bogus/improperly framed traffic from certain addresses/ranges/prefixes (e.g. for UDP socket, UDP syslog sources)
For no. 2, I've worked around it for now by configuring KeepaliveD to send a specific valid syslog message as its payload with certain identifiers unlikely to be encountered in real life and then filtering it out with a route.
However, given that there does not seem to be any way of avoiding a log entry when dropping an event or dealing with unexpected-formatting of received data (even if abort() is called, even with an explicitly or unspecified empty log message, and a bytes or vrl encoding is used), other balancing solutions aside from Keepalived may struggle with this.
For no. 1, I don't have any sort of ideal workaround. I suppose I could have the API listen on all addresses and do a GET to that but that's still pretty decoupled from an actual source that I'd want to verify is responding within a certain amount of time.
Attempted Solutions
(See above)
Proposal
(See above)
References
No response
Version
vector 0.56.0 (x86_64-unknown-linux-gnu 6817c02 2026-06-03 14:25:37.451398530)
A note for the community
Use Cases
When using e.g. KeepaliveD, HAProxy, etc. to load-balance/HA multiple Vector instances, it is desirable to implement health checks. This allows for dynamic balance membership or priority based on if Vector itself is actually running on a target address.
To accomplish this, there should be an option for:
http_serverthat will respond to aGETwith a static body text/bytes and specified status codeFor no. 2, I've worked around it for now by configuring KeepaliveD to send a specific valid syslog message as its
payloadwith certain identifiers unlikely to be encountered in real life and then filtering it out with aroute.However, given that there does not seem to be any way of avoiding a log entry when dropping an event or dealing with unexpected-formatting of received data (even if
abort()is called, even with an explicitly or unspecified empty log message, and abytesorvrlencoding is used), other balancing solutions aside from Keepalived may struggle with this.For no. 1, I don't have any sort of ideal workaround. I suppose I could have the API listen on all addresses and do a
GETto that but that's still pretty decoupled from an actualsourcethat I'd want to verify is responding within a certain amount of time.Attempted Solutions
(See above)
Proposal
(See above)
References
No response
Version
vector 0.56.0 (x86_64-unknown-linux-gnu 6817c02 2026-06-03 14:25:37.451398530)