Skip to content
This repository has been archived by the owner on Dec 6, 2024. It is now read-only.

Stabilize messaging semantic conventions for tracing #192

Closed
wants to merge 39 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
03d8291
Messaging semantic conventions for tracing, first draft
pyohannes Dec 1, 2021
13c975d
Change name to PR request id
pyohannes Dec 2, 2021
8f4349f
Update text/trace/0192-messaging-semantic-conventions-spec.md
pyohannes Dec 6, 2021
98cf8f3
PR comments
pyohannes Dec 6, 2021
2d8f25c
PR comments
pyohannes Dec 6, 2021
f48379f
Add first draft for consumer instrumentation span structure
pyohannes Dec 10, 2021
5e67b1f
Fix spelling
pyohannes Dec 10, 2021
7b2dbe9
PR comments
pyohannes Dec 15, 2021
f23c5ac
Rename the "Receive" span to "Deliver"
pyohannes Dec 16, 2021
51501ce
Push and pull based consumer scenarios
pyohannes Feb 3, 2022
20f272c
Remove obsolete text
pyohannes Feb 3, 2022
1e14ff0
Clarify context propagation
pyohannes Feb 3, 2022
b87adf6
Fix markdownlint errors
pyohannes Feb 3, 2022
20887d2
Add links
pyohannes Feb 3, 2022
2ae923d
PR comments
pyohannes Feb 4, 2022
0e8f824
Producer scenarios
pyohannes Mar 16, 2022
161392e
Remove trailing whitespace
pyohannes Mar 16, 2022
f40ff57
Fix wording
pyohannes Mar 16, 2022
523c435
Add examples
pyohannes Mar 16, 2022
4d341f6
Fix examples
pyohannes Mar 16, 2022
4615994
Add draft for settlement instrumentation
pyohannes Apr 5, 2022
71e5ab8
Complete settlement section
pyohannes Apr 7, 2022
b316b1a
Add details about span kinds and names
pyohannes Apr 22, 2022
bcd328e
Fix markdown lint error
pyohannes Apr 22, 2022
0e4a777
Update text/trace/0192-messaging-semantic-conventions-spec.md
pyohannes May 4, 2022
d91ac98
Update text/trace/0192-messaging-semantic-conventions-spec.md
pyohannes May 4, 2022
40c1d13
Add first attributes
pyohannes May 4, 2022
e2738c6
Avoid using the term "client"
pyohannes May 4, 2022
9055167
Add TOC
pyohannes May 4, 2022
8e663f0
Add more attributes
pyohannes May 16, 2022
7c1d84c
Add network transport attributes
pyohannes Jun 15, 2022
38dc813
Update text/trace/0192-messaging-semantic-conventions-spec.md
pyohannes Jul 1, 2022
92a1dd5
Update text/trace/0192-messaging-semantic-conventions-spec.md
pyohannes Jul 12, 2022
8dc5b9f
Apply suggestions from code review
pyohannes Jul 12, 2022
72e1215
PR comments
pyohannes Jul 12, 2022
e4ccef0
Merge branch 'main' into conventions-messaging
joaopgrassi Aug 2, 2022
5fa715d
PR suggestions and grammar fixes
joaopgrassi Aug 2, 2022
8b4461a
Make messaging.system attribute level required
joaopgrassi Aug 2, 2022
964d65e
Set requirement level for destination.temporary and anonymous
joaopgrassi Aug 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix wording
  • Loading branch information
pyohannes committed Apr 7, 2022
commit f40ff576a53a9a2788d10be7b519d9725b2c5445
6 changes: 3 additions & 3 deletions text/trace/0192-messaging-semantic-conventions-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,17 +126,17 @@ traces. Ideally, each message gets a unique and distinct creation context
assigned. However, as a context must refer to a span this would require the
creation of a distinct span for each message, which is not feasible in all
scenarios. In certain batching scenarios where many messages are created and
published in large batches, creating a span for each single message would
published in large batches, creating a span for every single message would
obfuscate traces and is not desirable. Thus having a unique and distinct
context per message is recommended, but not required.

For each producer scenario, a "Publish" span needs to be created. This span
measures the duration of the call or operation that provides messages for
sending or publishing to an intermediary. This call or operation (and the

Choose a reason for hiding this comment

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

"duration of the call or operation that provides messages for sending" ... what does it actually mean?
For example, with the Kafka producer, the send method is just a way to put the message in a buffer and it will be sent asynchronously (even because it works by using batches). Does the span measure only the time to call the send and exit? What if the producer wants a level of acknowledge waiting for the ack (so the Kafka producer has also a callback for that)?

Copy link
Member

Choose a reason for hiding this comment

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

My interpretation is that it's "vague" intentionally. In my view it can mean/cover all of the scenarios you brought. The problem is that it can't enforce anything and since it changes between systems + what instrumentations can do I'm not sure if we should be highly specific here.

Choose a reason for hiding this comment

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

I made a suggestion to list the scenarios.

related "Publish" span) can either refer to a single message or to a batch of
related "Publish" span) can either refer to a single message or a batch of
multiple messages.

It is recommended to create a "Create" span for each single message. "Create"
It is recommended to create a "Create" span for every single message. "Create"
spans can be created during the "Publish" operation as children of the
"Publish" span. Alternatively, "Create" spans can be created independently of
the "Publish" operation. In that case, SDKs may provide mechanisms to allow
Expand Down