Skip to content

fix(vector source): implement standard gRPC health checking protocol#24916

Merged
pront merged 5 commits intovectordotdev:masterfrom
jpds:fix-23657-grpc-health-protocol
Mar 13, 2026
Merged

fix(vector source): implement standard gRPC health checking protocol#24916
pront merged 5 commits intovectordotdev:masterfrom
jpds:fix-23657-grpc-health-protocol

Conversation

@jpds
Copy link
Copy Markdown
Contributor

@jpds jpds commented Mar 13, 2026

Summary

Adds support for the standard gRPC health checking protocol (grpc.health.v1.Health) to the vector source alongside the existing custom health check endpoint. This enables compatibility with standard health checking tools like grpc-health-probe, which is commonly used in Kubernetes and other orchestration systems.

Changes:

  • Added tonic-health dependency to support standard gRPC health protocol
  • Implemented grpc.health.v1.Health service in vector source
  • Maintained backward compatibility with existing custom health check
  • Added tests for both standard and custom health check endpoints
  • Both health services run on the same port using RoutesBuilder

The custom vector.Vector/HealthCheck endpoint continues to work for existing Vector-to-Vector communication, while the new grpc.health.v1.Health/Check endpoint provides compatibility with standard tooling.

Vector configuration

sources:
  vector_in:
    type: vector
    address: "0.0.0.0:9000"

sinks:
  console_out:
    type: console
    inputs:
      - vector_in
    encoding:
      codec: json

How did you test this PR?

 grpc-health-probe -addr=localhost:9000 -service=vector.Vector

Change Type

  • Bug fix
  • New feature
  • Dependencies
  • Non-functional (chore, refactoring, docs)
  • Performance

Is this a breaking change?

  • Yes
  • No

Does this PR include user facing changes?

  • Yes. Please add a changelog fragment based on our guidelines.
  • No. A maintainer will apply the no-changelog label to this PR.

References

Fixes: #23657

Notes

  • Please read our Vector contributor resources.
  • Do not hesitate to use @vectordotdev/vector to reach out to us regarding this PR.
  • Some CI checks run only after we manually approve them.
    • We recommend adding a pre-push hook, please see this template.
    • Alternatively, we recommend running the following locally before pushing to the remote branch:
      • make fmt
      • make check-clippy (if there are failures it's possible some of them can be fixed with make clippy-fix)
      • make test
  • After a review is requested, please avoid force pushes to help us review incrementally.
    • Feel free to push as many commits as you want. They will be squashed into one before merging.
    • For example, you can run git merge origin master and git push.
  • If this PR introduces changes Vector dependencies (modifies Cargo.lock), please
    run make build-licenses to regenerate the license inventory and commit the changes (if any). More details here.

@jpds jpds requested a review from a team as a code owner March 13, 2026 12:02
@github-actions github-actions bot added domain: sources Anything related to the Vector's sources domain: sinks Anything related to the Vector's sinks labels Mar 13, 2026
Copy link
Copy Markdown
Member

@pront pront left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @jpds, thank you! Did you test this PR with a real Vector instance and grpcurl?

Adds support for the standard gRPC health checking protocol (grpc.health.v1.Health)
to the vector source alongside the existing custom health check endpoint. This enables
compatibility with standard health checking tools like grpc-health-probe, which is
commonly used in Kubernetes and other orchestration systems.

Changes:
- Added tonic-health dependency to support standard gRPC health protocol
- Implemented grpc.health.v1.Health service in vector source
- Maintained backward compatibility with existing custom health check
- Added tests for both standard and custom health check endpoints
- Both health services run on the same port using RoutesBuilder

The custom vector.Vector/HealthCheck endpoint continues to work for existing
Vector-to-Vector communication, while the new grpc.health.v1.Health/Check endpoint
provides compatibility with standard tooling.

Fixes: vectordotdev#23657

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jpds jpds force-pushed the fix-23657-grpc-health-protocol branch from 12eb373 to 6f1a402 Compare March 13, 2026 14:46
@jpds
Copy link
Copy Markdown
Contributor Author

jpds commented Mar 13, 2026

@pront Yes, I readded what I was testing when I found this at: https://github.com/NixOS/nixpkgs/tree/master/nixos/tests/vector/

clickhouse: waiting for unit vector
clickhouse: (finished: waiting for unit vector, in 0.03 seconds)
clickhouse: must succeed: grpc-health-probe -addr localhost:6000
clickhouse # status: SERVING
clickhouse: (finished: must succeed: grpc-health-probe -addr localhost:6000, in 0.14 seconds)
clickhouse:
clickhouse: must succeed: grpc-health-probe -addr localhost:6000 vector/Vector
clickhouse # status: SERVING
clickhouse: (finished: must succeed: grpc-health-probe -addr localhost:6000 vector/Vector, in 0.02 seconds)

@pront pront enabled auto-merge March 13, 2026 18:16
Copy link
Copy Markdown
Member

@pront pront left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@pront
Copy link
Copy Markdown
Member

pront commented Mar 13, 2026

FYI I tested this locally and added my config and the test command to the PR summary. Please fill those fields for future PRs, thanks!

@pront pront added this pull request to the merge queue Mar 13, 2026
Merged via the queue into vectordotdev:master with commit 4e95802 Mar 13, 2026
69 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Mar 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

domain: sinks Anything related to the Vector's sinks domain: sources Anything related to the Vector's sources

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vector sink: health protocol

2 participants