Commit f408684
authored
fix(otel): correct sampling priority and origin propagation from trac… (#8031)
Three related bugs in the OTel-to-Datadog context bridge are fixed:
1. `SpanContext` is a composition wrapper that exposes `traceFlags` via
`this._ddContext._sampling.priority`. The extractor was writing
`_sampling` and `_trace` directly on the wrapper, so the values never
reached `_ddContext` and `traceFlags` always returned 0 regardless of
the `s:` field in the incoming tracestate.
2. `Number.parseInt(samplingPriorityTs, 10)` produced `NaN` when the
`dd` tracestate member had no `s:` field. The `NaN` was then passed to
`_getSamplingPriority`, where it slipped through both conditional
branches and was returned as-is. `_getSamplingPriority` now uses the
existing `AUTO_REJECT`/`AUTO_KEEP` constants and defaults to
`AUTO_KEEP` when the tracestate priority is missing or not a number.
The caller in `_convertOtelContextToDatadog` guards `parseInt` to
avoid producing `NaN` in the first place.
3. The `origin` pulled from the `dd` tracestate (`o:` field) was being
assigned to an inner block-scoped `const origin`, which shadowed the
outer `origin` variable used when writing `_trace`. As a result the
origin was silently dropped from every extracted OTel context.1 parent 9f10b0e commit f408684
3 files changed
Lines changed: 75 additions & 21 deletions
File tree
- packages/dd-trace
- src
- opentelemetry
- opentracing/propagation
- test/opentelemetry
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
115 | 113 | | |
116 | | - | |
| 114 | + | |
117 | 115 | | |
118 | 116 | | |
119 | 117 | | |
120 | 118 | | |
121 | 119 | | |
122 | 120 | | |
123 | 121 | | |
124 | | - | |
125 | | - | |
| 122 | + | |
| 123 | + | |
126 | 124 | | |
127 | 125 | | |
128 | 126 | | |
| |||
Lines changed: 17 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
802 | 802 | | |
803 | 803 | | |
804 | 804 | | |
805 | | - | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
806 | 812 | | |
807 | 813 | | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
817 | 824 | | |
818 | 825 | | |
819 | 826 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
214 | 215 | | |
215 | 216 | | |
216 | 217 | | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
217 | 266 | | |
218 | 267 | | |
219 | 268 | | |
| |||
0 commit comments