Skip to content

Add gRPC reflection support to arrow flight #1706

Open
@alamb

Description

@alamb

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

We like to use the gRPC service reflection, via grpcurl --plaintext localhost:8082 list, to list gRPC services in IOx

We have a flight based service that does not appear in the service list (see https://github.com/influxdata/influxdb_iox/issues/4543)

I think this is because the arrow-flight library doesn't create the appropriate gRPC descriptors.

Describe the solution you'd like
Whatever is needed so that https://crates.io/crates/tonic-reflection can be used to provide reflection services to arrow-flight

@tustvold suggests:

I think we would likely need to make the generated descriptor set available as a constant within the produced binary, so that it can be passed to the reflection https://docs.rs/tonic-reflection/0.4.0/tonic_reflection/server/struct.Builder.html.

Effectively all gRPC reflection is, is a service that returns the compiled descriptor sets, which in turn are just a parsed version of the proto files, represented as protobuf - https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto

Additional context
Here is an attempt (that didn't work): #1686

Metadata

Metadata

Assignees

No one assigned

    Labels

    arrow-flightChanges to the arrow-flight crateenhancementAny new improvement worthy of a entry in the changelog

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions