Commit 558b1fb
committed
feat(process-tags): emit svc.user/svc.auto per-span and via sidecar
Addresses senior review on the prior PR commit. Process tags are
per-process (set once, propagated by the sidecar), but the active
service name in PHP is request-local (mutable via `ini_set` and OTEL/RC
fallbacks). Baking `svc.user`/`svc.auto` into the static process_tags
string leaked the latest request's override into subsequent FPM requests.
Two cooperating paths now:
1. **Per-span** (`ext/serializer.c::ddtrace_serialize_span_to_rust_span`):
computes svc.user/svc.auto from `get_DD_SERVICE()` at serialization
time and appends to that span's `_dd.tags.process`. Each span sees
exactly its own request's state — no cross-request leak.
2. **Sidecar** (`ext/sidecar.c::ddtrace_sidecar_update_process_tags`):
sends the process-level svc source to libdatadog via the new
`ddog_sidecar_session_set_default_service_name` FFI. The sidecar
injects svc.user/svc.auto into outgoing telemetry/RC/runtime_info
payloads at emission time, eliminating the static-string conflict.
The libdatadog half is in DataDog/libdatadog#2053; the submodule is
bumped here to that commit.
Reverts the static svc.* emission and `ddtrace_alter_dd_service` reload
hook from 5a55f2d.
Tests:
- 5 new `.phpt` tests (CLI per-span correctness incl. ini_set + ini_restore)
- New PHPUnit `testSvcTagDoesNotLeakBetweenRequests` against the FPM
weblog: two sequential requests on the same worker prove svc.* reflects
per-request state with no leak.
Implements: RFC "Signal Service Name Source via Process Tags"
https://docs.google.com/document/d/1c47iSTWxIOHMHfZTF2nT9xfyQaIBP9KJvI9sRn5SvpM1 parent 5a55f2d commit 558b1fb
12 files changed
Lines changed: 129 additions & 50 deletions
File tree
- components-rs
- ext
- tests
- Frameworks/Custom/Version_Autoloaded/src
- Integrations/Custom/Autoloaded
- ext
- telemetry
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
228 | 239 | | |
229 | 240 | | |
230 | 241 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
416 | 416 | | |
417 | 417 | | |
418 | 418 | | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | 419 | | |
424 | 420 | | |
425 | 421 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | 14 | | |
16 | 15 | | |
17 | 16 | | |
| |||
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
28 | | - | |
29 | | - | |
30 | 27 | | |
31 | 28 | | |
32 | 29 | | |
| |||
47 | 44 | | |
48 | 45 | | |
49 | 46 | | |
50 | | - | |
51 | 47 | | |
52 | 48 | | |
53 | 49 | | |
| |||
172 | 168 | | |
173 | 169 | | |
174 | 170 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | 171 | | |
187 | 172 | | |
188 | 173 | | |
| |||
351 | 336 | | |
352 | 337 | | |
353 | 338 | | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | 339 | | |
362 | 340 | | |
363 | 341 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | 14 | | |
20 | 15 | | |
21 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1577 | 1577 | | |
1578 | 1578 | | |
1579 | 1579 | | |
1580 | | - | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
1581 | 1618 | | |
1582 | 1619 | | |
1583 | 1620 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
149 | 150 | | |
150 | 151 | | |
151 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
152 | 172 | | |
153 | 173 | | |
154 | 174 | | |
| |||
Submodule libdatadog updated 9 files
- datadog-sidecar-ffi/src/lib.rs+27
- datadog-sidecar/src/service/blocking.rs+8
- datadog-sidecar/src/service/mod.rs+6
- datadog-sidecar/src/service/runtime_info.rs+1-1
- datadog-sidecar/src/service/sender.rs+19-1
- datadog-sidecar/src/service/session_info.rs+16-1
- datadog-sidecar/src/service/sidecar_interface.rs+5
- datadog-sidecar/src/service/sidecar_server.rs+15-1
- datadog-sidecar/src/service/telemetry.rs+1-1
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
68 | 92 | | |
0 commit comments