Repository navigation
Resolve direction-scoped OpenTelemetry names at the OpenTelemetry boundary (otlp - tag registry - phase 3) #12731
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
Merged
gh-worker-dd-mergequeue-cf854d
merged 74 commits into
master
from
dougqh/tag-registry-direction-resolution
Oct 20, 2026
Merged
Changes from all commits
Commits
Show all changes
74 commits
Select commit
Hold shift + click to select a range
3ab5862
Set known tags by id on TagMap and spans
dougqh 4bf02bb
Ignore unknown ids when clearing a tag by id; fix a comment wrap
dougqh a2829d1
Precheck and reuse the box in long-valued setters
dougqh 2d87cde
Keep peer.port off the id path
dougqh 7a017a5
Merge set-by-id (#12715) onto master
dougqh 0401a43
Mark intercepted tags with an id bit, via a tracer overlay
dougqh 8949a57
Dispatch TagInterceptor on tag ids
dougqh cfe2368
Set tags on spans by id first
dougqh 38c9947
Look up tag names by serial in an array, not a switch
dougqh 3545c15
Point stale comments at the tracer overlay and the intercepted bit
dougqh 1642cc9
Index the split-by-tags table by serial, sized to every known tag
dougqh b9dd573
Check for a known tag id with a range check, not a name lookup
dougqh 75d3fbc
Pin interceptTag(long) above C2's inlining size
dougqh ecb4f73
Tighten comments on the id-keyed interceptor
dougqh 3f65031
Treat overlay tags as intercepted; tidy from review
dougqh 69d7849
Reject shared-name tag ids on the id-keyed TagMap and span paths
dougqh 46c3b47
Test rejection of shared-name tag ids
dougqh ad2fa97
Build custom tags by name and known tags by id
dougqh 3a269e1
Resolve direction-dependent tag names by the span's kind
dougqh d509119
Key shared-name tags by direction now that resolution knows it
dougqh 628da33
Merge master into id-tag-interceptor (#12817)
dougqh cc43136
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh dac7060
Give the tracer core a restricted, trusted path into TagMap
dougqh fbab551
Mark TagMap.Internals @NoEscape
dougqh 8d47c7f
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh 92fb191
Point Internals' trust note at isKnown, the span's check here
dougqh 06dec0f
Store each direction-dependent tag once and apply direction on read
dougqh d469c66
Name direction-dependent tags by span kind in OTLP export
dougqh 748a8af
Apply last write wins between a tag and its direction-scoped alias
dougqh 44826c6
Carry the direction role in tag ids so plain setTag pays nothing extra
dougqh dc06725
Move alias superseding off the setTag store fast path
dougqh 44c9c2f
Cover SpanTags and the KnownTagCodec direction helpers in internal-api
dougqh d3d6ee4
Route alias-target writes only on spans holding a pending alias
dougqh a48e145
Merge tag-registry-direction-resolution into the single-representatio…
dougqh 85c222d
Cover the remaining TagMap.Internals setKnown overloads
dougqh f08c1c3
Add datadog.apicontract to CODEOWNERS
dougqh f796149
Merge branch 'master' into dougqh/id-tag-interceptor
dougqh 22d0fd1
Give peer.port one direction-neutral id
dougqh ba715de
Name peer.port by the span's kind in OTLP export
dougqh e55a358
Merge id-tag-interceptor (#12817, before the peer.port move) into tag…
dougqh 01ea7f5
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh 584310c
Let C2 inline the constructors of TagMap's nested classes
dougqh 3842b16
Remove TagMap's remaining synthetic accessors and guard against them
dougqh 6e6077e
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh 64d6cf3
Merge master into id-tag-interceptor
dougqh bb0bbb0
Cover TagMap.Internals, KnownTagCodec and EntryReader paths
dougqh fb6410e
Format the tag-registry generator to its spotless rules
dougqh 6593371
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh 0d7b732
Drop #12817's direction stand-in tests, covered by SpanTagsTest
dougqh 97a508b
Order the tag-id carve bits by position
dougqh fa54aca
Merge master into id-tag-interceptor
dougqh 4bb2c75
Merge id-tag-interceptor (#12817) into tag-registry-direction-resolution
dougqh 1c88d5e
Re-apply split-by-tags language by its id
dougqh 5ba0a09
Say what a tag id's intercepted bit does and doesn't decide
dougqh 1a084b2
Merge #12817's final commits into tag-registry-direction-resolution
dougqh a24cb0d
Merge remote-tracking branch 'origin/master' into dougqh/tag-registry…
dougqh 32ad2a3
Restore the conventions' one-tag wording for peer.port
dougqh 306b312
Tidy the direction-resolution code from review
dougqh 96df27a
Keep the alias slow paths to spans that really hold a pending alias
dougqh a5c6556
Make a removal before the span's kind supersede every meaning
dougqh d7356bc
Extend the pending-alias gate to reads, removals and entry routing
dougqh c517b18
Encapsulate direction handling in a package-private DirectionalTags
dougqh ab4b1ac
Write and read known tags by id without building an Entry per call
dougqh 351145d
Resolve aliases when the kind is set, and route them as their tag
dougqh 6aa6d4f
Close three more gaps between the write paths and direction handling
dougqh dabddda
Let a Datadog tag name double as another tag's direction-scoped alias
dougqh b1107a3
Drop the OTLP export check for a tag written by id on the wrong side
dougqh 66a069c
Merge remote-tracking branch 'origin/master' into dougqh/tag-registry…
dougqh d7f0ffc
Resolve direction-scoped names at the OpenTelemetry boundary, not in …
dougqh 416663b
Merge master (#12882 slot coloring) into tag-registry-direction-resol…
dougqh 3742a7e
Resolve held OTel attributes as soon as the span kind is set
dougqh 9e6bd6c
Ignore null OTel attribute keys again
dougqh 810d174
Merge branch 'master' into dougqh/tag-registry-direction-resolution
dougqh ac13674
Merge branch 'master' into dougqh/tag-registry-direction-resolution
dougqh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.