-
Notifications
You must be signed in to change notification settings - Fork 893
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
Mark legacy exporter features in spec compliance optional. SDKs are free to su… #1359
Mark legacy exporter features in spec compliance optional. SDKs are free to su… #1359
Conversation
…pport it if they'd like.
I left jaeger thrift UDP since my reading of the jaeger docs made it seem it's still a good idea for jaeger in agent mode, but I don't know if that's actually true. Let me know if it makes sense. |
Even if it is a good idea, it still doesn't sound like it would be essential. |
If compliance matrix represents what SDKs MUST implement for GA, then the question is "why do we have Jaeger Thrift UDP in there?" Is it to satisfy some backward compatibility? Or there is an actual business use case for it? If there are no good answers to that question, then we should remove it to simplify GA. |
I think this change takes away from the project by hiding the features that some SDK maintainers already spent effort on implementing. Instead, it would make more sense to me to declare certain features as optional for SDKs to implement, but still have the features matrix where one can compare SDKs across many dimensions. |
@yurishkuro That is a very good idea. But I heard several times that "All language SIGs MUST implement everything in spec compliance matrix before GA". Is TC willing to change this stance and to bring optional components into the matrix? |
The spec compliance matrix is geared towards maintainers and release mangagers, not external users IMHO. But I'm OK with moving this to some "optional features" section. |
There are plenty of
At some point there will need to be a public (and pretty) version of the features matrix similar to that Jaeger page. I think this matrix should be treated as a source of truth. |
I think most of the rows do correspond to (one or more) MUST-requirements. But it can't hurt to check. |
+1 to moving it to an optional section (at the bottom probably?) |
I would rather add a Require/Optional column, it is easier to read the table when semantically relevant entries are grouped together. |
…ification into remove-jaeger-thrift-compliance
…/opentelemetry-specification into remove-jaeger-thrift-compliance
Ok - added an optional column instead and my interpretation of what seems optional, please make suggestions as needed. |
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.
The optional ones are meant to indicate what's optional long term, this isn't meant to tie to 1.0 or GA requirements in any way.
spec-compliance-matrix.md
Outdated
|Honors retryable responses with backoff | + | | + | + | + | - | | | | - | - | | | ||
|Honors non-retryable responses | + | | - | + | + | - | | | | - | - | | | ||
|Honors throttling response | + | | - | + | + | - | | | | - | - | | | ||
|Multi-destination spec compliance | - | | | [-](https://github.com/open-telemetry/opentelemetry-python/issues/1109) | | - | | | | - | - | X | |
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.
I'm not really sure what this spec is :) As no SDK has implemented it yet assuming it's optional.
I am against that. The table is large enough as it is. This column would invite all minor optional features to be added, even if they are just in one SDK. |
I doubt it. Features in the matrix must be spelled out elsewhere in the spec, and we can always turn down such changes if they are not general enough. |
That's a good point, I think that should be the case. But I cannot find "thrift" in https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk_exporters/jaeger.md |
spec-compliance-matrix.md
Outdated
|OTLP/HTTP JSON Protobuf Exporter | - | - | + | [-](https://github.com/open-telemetry/opentelemetry-python/issues/1003) | | - | | | | - | - | X | | ||
|OTLP/HTTP gzip Content-Encoding support | - | - | + | + | + | - | | | | - | - | X | | ||
|Concurrent sending | - | | + | [-](https://github.com/open-telemetry/opentelemetry-python/issues/1108) | | - | | + | | - | - | | | ||
|Honors retryable responses with backoff | + | | + | + | + | - | | | | - | - | | |
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 this required? If an SDK allows people to configure the grpc channel however they want, does that fulfill this?
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.
Handling retry well seems like a nice feature to support eventually, though not necessarily for 1.0 (which was my intent). I'd think being able to configure the gRPC channel could be enough, and shortcuts could be added based on user demand independently of this spec.
I don't oppose this in principal, but I do oppose several of the choices as to which features are required and which are optional, especially at this stage of the game. Ruby chose proto over http for its OTLP exporter and Thrift for the Jaeger exporter. We do not have gRPC versions of either, which are listed as required. Ideally, we'd have a less restrictive policy, such as, you need an OTLP and Jaeger exporter, but you choose whichever transport makes most sense for your SIG. cc: @fbogsany. |
@mwear What do you mean by "choices"? This PR marks some features which were required for GA as now optional, relaxing the requirements. It does not bring any new requirements on the table. It was said several times during both maintainers and spec meetings that ALL rows in spec compliance matrix are required for GA. If some SIGs find some of those requirements unreasonable, please raise that concern loud and clear. Probably as separate issue/PR. |
I actually didn't know this either :) In that case, I feel like I need to mark most of the retry stuff as optional, and add some text that for each type of exporter, only one format is required for GA. |
I am happy to be wrong here :) @open-telemetry/technical-committee can you confirm or deny that "ALL rows in spec compliance matrix are required for GA"? |
That's correct - I think, as time goes by, we may make more items mandatory, i.e. more exporter protocols. But for now we need to make more items optional. |
That was the plan IIRC, yes. In that regard, the Matrix can help us know whether we are complete and ready to release or not ;) |
During today's Spec call we decided to go with this decision. Hope that makes sense @anuraaga ;) |
| links collection size limit | | | + | + | + | + | - | | + | | - | + | | ||
| [Span attributes](specification/trace/api.md#set-attributes) | | | | | | | | | | | | | | ||
| SetAttribute | | + | + | + | + | + | + | + | + | + | + | + | | ||
| Set order preserved | X | + | - | + | + | + | + | + | + | + | + | + | |
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.
Should we use YES
instead of X
for the optional values?
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.
Have no preference for either, so for now sticking with what's here unless someone has stronger preference :)
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.
I'd prefer just writing Optional in there (the column has the width of the header anyway), so one would not have to look up the heading. Anyway, I'd rather merge this asap to avoid conflicts and consider prettifying it afterwards in a smaller changeset.
@SergeyKanzhelev We still need to make this clarification:
|
…ication into remove-jaeger-thrift-compliance
Made some updates
|
Co-authored-by: Christian Neumüller <[email protected]>
| links collection size limit | | | + | + | + | + | - | | + | | - | + | | ||
| [Span attributes](specification/trace/api.md#set-attributes) | | | | | | | | | | | | | | ||
| SetAttribute | | + | + | + | + | + | + | + | + | + | + | + | | ||
| Set order preserved | X | + | - | + | + | + | + | + | + | + | + | + | |
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.
I'd prefer just writing Optional in there (the column has the width of the header anyway), so one would not have to look up the heading. Anyway, I'd rather merge this asap to avoid conflicts and consider prettifying it afterwards in a smaller changeset.
| `null` values documented as invalid/undefined | | | + | + | + | | N/A | | | + | | N/A | | ||
| Unicode support for keys and string values | | + | + | + | + | + | + | + | + | + | + | + | | ||
| [Span linking](specification/trace/api.md#specifying-links) | | | | | | | | | | | | | | ||
| AddLink | | + | + | + | + | + | + | + | + | - | + | + | |
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.
C++: + to - on purpose?
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.
Ooops, I just realized we just had a race condition, my bad :( Would you mind filling issues (or PRs) to follow these two details up?
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.
No worries, I think it's fine actually, as it seems to be indeed missing:
https://github.com/open-telemetry/opentelemetry-cpp/blob/main/api/include/opentelemetry/trace/span.h
The other change is just cosmetic, nothing urgent.
Merging this now as we have enough approvals. @bogdandrutu please let me know if you still prefer a YES instead of an X for the Optional column, as I can easily cook a PR myself. |
…pport it if they'd like.
Fixes #1356
Changes
Removes jaeger-thrift-http from compliance matrix