-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the otelarrow receiver scaffold #26519
Conversation
Sorry, I realize you'll want this scaffold to use the fields generated from metadata.yaml. I'll re-open. |
…mented; use metadata.Type and generated stability level
I replaced the use of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for breaking this PR up. See comments inline
type Protocols struct { | ||
GRPC *configgrpc.GRPCServerSettings `mapstructure:"grpc"` | ||
HTTP *httpServerSettings `mapstructure:"http"` | ||
Arrow *ArrowSettings `mapstructure:"arrow"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this need a separate section for configuration? If the only setting is a memory limit, any reason not to include it at the top level?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relates to open-telemetry/otel-arrow#43. This code is designed to drop-in where an OTLP receiver once stood, so leaving the Arrow settings in a separate section for future compatibility (was the idea).
return err | ||
} | ||
|
||
// Note: since this is the OTel-Arrow exporter, not the core component, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is http only not a valid configuration for this receiver? if it is, then i would remove this comment and re-enable the check below
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HTTP only means you've disabled OTel Arrow and you're identical to an OTLP receiver. I'm not sure why the user would want this. (Again, open-telemetry/otel-arrow#43 comes up.)
README states:
This receiver listens on the standard OTLP/gRPC port 4317 and serves standard OTLP over gRPC out of the box.
and later
To enable optional OTLP/HTTP support, the HTTP protocol must be explicitly listed. It will use port 4318 by default. The OTel Arrow protocol is not currently supported over HTTP.
if we added OTel Arrow support for HTTP streams, possibly, then it would make sense to apply the change you described, but I think we should separate the two transports into separate components.
Co-authored-by: Alex Boten <alex@boten.ca>
…try-collector-contrib into jmacd/receiver_scaffold
I have updated the README to declare this a multi-protocol receiver the way OTLP is a multi-protocol receiver.
|
See the design of this multi-protocol feature: https://github.com/open-telemetry/oteps/blob/main/text/0156-columnar-encoding.md#protocol-extension-and-fallback-mechanism |
…tor-contrib into jmacd/receiver_scaffold
I will re-open this PR when we have a strategy to avoid duplication of the core OTLP exporter/receiver code. |
Description: Introduces scaffolding for the new otelarrow receiver.
Link to tracking Issue: #26491
Testing: No new tests, since this is just scaffold. Tests will arrive with the implementation.
Documentation: This README is copied (w/ some URLs updated) from the otel-arrow repository, which housed the component under development. Note this component is already functional, since the scaffold refers to the other repo's components (i.e., its
Config
andNewFactory
).