Skip to content
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

Context and baggage propagation over Queues is loosely defined #2516

Open
oxeye-nikolay opened this issue Apr 27, 2022 · 4 comments
Open

Context and baggage propagation over Queues is loosely defined #2516

oxeye-nikolay opened this issue Apr 27, 2022 · 4 comments
Assignees
Labels
spec:trace Related to the specification/trace directory

Comments

@oxeye-nikolay
Copy link
Member

I am looking into creating instrumentation in python that will propagate traces over SQS messages. I have begun looking into the specification and noticed that the context propagation way is loosely defined. Therefore I have decided to look into how was it implemented in other languages. I looked into ruby and nodejs.

I noticed that both set up to 10 attributes, to comply with SQS's attributes requirements. This, however, means that a message can be sent with partial context. Also, there are additional rules to SQS's MessageAttributes (like Can't start with AWS. or Amazon. (or any casing variations)) that are not being enforced.

It seems that there is no specification defined that settles exactly how should this information be propagated over messages and takes into consideration limits from queue systems like this.
I would expect to see an explicit definition in the spec, naming the exact headers that appear in the message attributes.

@oxeye-nikolay oxeye-nikolay added the spec:protocol Related to the specification/protocol directory label Apr 27, 2022
@oxeye-nikolay oxeye-nikolay changed the title Context and baggage propagation over Queues is loosely undefined Context and baggage propagation over Queues is loosely defined Apr 27, 2022
@pyohannes
Copy link
Contributor

This is something we have been actively discussing in the messaging workgroup (meeting weekly Thursdays 8am PST).

In the OTEP we are currently working on we explicitly state basic requirements for context propagation, without going into details of how those requirements can be met for every single messaging system or protocol.

Those details will be a future work item, as laid out in the same draft document. It is not even clear yet whether these details should be part of OpenTelemetry semantic conventions. For example, for AMQP and MQTT there are W3C draft documents specifying mechanisms for propagating context.

@reyang
Copy link
Member

reyang commented Apr 29, 2022

@oxeye-nikolay I think this belongs to spec:trace instead of spec:protocol?

@oxeye-nikolay
Copy link
Member Author

@oxeye-nikolay I think this belongs to spec:trace instead of spec:protocol?

You're right @reyang . My bad

@arminru arminru added spec:trace Related to the specification/trace directory and removed spec:protocol Related to the specification/protocol directory labels May 2, 2022
@pyohannes
Copy link
Contributor

This is partly covered by #2750, which lays out general requirements for context propagation in messaging scenarios.

As mentioned in a comment above, this doesn't go into details of how those requirements can be met for every single messaging system or protocol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:trace Related to the specification/trace directory
Projects
Status: Post-stability
Development

No branches or pull requests

5 participants