feat(tracing): otlp trace export via libdatadog#17031
feat(tracing): otlp trace export via libdatadog#17031gh-worker-dd-mergequeue-cf854d[bot] merged 31 commits into
Conversation
Codeowners resolved as |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5f4375559c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Performance SLOsComparing candidate rachel.yang/libdatadog-trace-export (98a2275) with baseline main (174c1ba) 📈 Performance Regressions (3 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 105.412µs (SLO: <130.000µs 📉 -18.9%) vs baseline: +2.7% Memory: ✅ 44.239MB (SLO: <46.000MB -3.8%) vs baseline: +6.3% ✅ add_inplace_aspectTime: ✅ 102.219µs (SLO: <130.000µs 📉 -21.4%) vs baseline: -0.3% Memory: ✅ 44.187MB (SLO: <46.000MB -3.9%) vs baseline: +6.2% ✅ add_inplace_noaspectTime: ✅ 28.568µs (SLO: <40.000µs 📉 -28.6%) vs baseline: +0.7% Memory: ✅ 44.090MB (SLO: <46.000MB -4.2%) vs baseline: +6.1% ✅ add_noaspectTime: ✅ 48.612µs (SLO: <70.000µs 📉 -30.6%) vs baseline: -1.3% Memory: ✅ 44.113MB (SLO: <46.000MB -4.1%) vs baseline: +6.2% ✅ bytearray_aspectTime: ✅ 246.068µs (SLO: <400.000µs 📉 -38.5%) vs baseline: -3.8% Memory: ✅ 44.534MB (SLO: <46.000MB -3.2%) vs baseline: +7.2% ✅ bytearray_extend_aspectTime: ✅ 652.111µs (SLO: <800.000µs 📉 -18.5%) vs baseline: -1.6% Memory: ✅ 44.148MB (SLO: <46.000MB -4.0%) vs baseline: +6.1% ✅ bytearray_extend_noaspectTime: ✅ 264.080µs (SLO: <400.000µs 📉 -34.0%) vs baseline: -3.2% Memory: ✅ 44.130MB (SLO: <46.000MB -4.1%) vs baseline: +6.1% ✅ bytearray_noaspectTime: ✅ 138.463µs (SLO: <300.000µs 📉 -53.8%) vs baseline: -4.7% Memory: ✅ 44.110MB (SLO: <46.000MB -4.1%) vs baseline: +6.2% ✅ bytes_aspectTime: ✅ 217.962µs (SLO: <300.000µs 📉 -27.3%) vs baseline: -1.5% Memory: ✅ 44.161MB (SLO: <46.000MB -4.0%) vs baseline: +6.1% ✅ bytes_noaspectTime: ✅ 134.489µs (SLO: <200.000µs 📉 -32.8%) vs baseline: -1.0% Memory: ✅ 44.186MB (SLO: <46.000MB -3.9%) vs baseline: +6.4% ✅ bytesio_aspectTime: ✅ 3.759ms (SLO: <5.000ms 📉 -24.8%) vs baseline: -1.3% Memory: ✅ 44.504MB (SLO: <46.000MB -3.3%) vs baseline: +7.0% ✅ bytesio_noaspectTime: ✅ 313.148µs (SLO: <420.000µs 📉 -25.4%) vs baseline: -1.9% Memory: ✅ 44.053MB (SLO: <46.000MB -4.2%) vs baseline: +6.0% ✅ capitalize_aspectTime: ✅ 88.180µs (SLO: <300.000µs 📉 -70.6%) vs baseline: -1.2% Memory: ✅ 44.252MB (SLO: <46.000MB -3.8%) vs baseline: +6.6% ✅ capitalize_noaspectTime: ✅ 250.937µs (SLO: <300.000µs 📉 -16.4%) vs baseline: +0.3% Memory: ✅ 44.143MB (SLO: <46.000MB -4.0%) vs baseline: +6.3% ✅ casefold_aspectTime: ✅ 88.191µs (SLO: <500.000µs 📉 -82.4%) vs baseline: -1.2% Memory: ✅ 44.525MB (SLO: <46.000MB -3.2%) vs baseline: +7.0% ✅ casefold_noaspectTime: ✅ 299.815µs (SLO: <500.000µs 📉 -40.0%) vs baseline: -2.3% Memory: ✅ 44.260MB (SLO: <46.000MB -3.8%) vs baseline: +6.5% ✅ decode_aspectTime: ✅ 86.319µs (SLO: <100.000µs 📉 -13.7%) vs baseline: -0.6% Memory: ✅ 44.207MB (SLO: <46.000MB -3.9%) vs baseline: +6.3% ✅ decode_noaspectTime: ✅ 152.808µs (SLO: <210.000µs 📉 -27.2%) vs baseline: -0.9% Memory: ✅ 44.240MB (SLO: <46.000MB -3.8%) vs baseline: +6.4% ✅ encode_aspectTime: ✅ 84.122µs (SLO: <200.000µs 📉 -57.9%) vs baseline: -0.2% Memory: ✅ 44.239MB (SLO: <46.000MB -3.8%) vs baseline: +6.4% ✅ encode_noaspectTime: ✅ 140.588µs (SLO: <200.000µs 📉 -29.7%) vs baseline: -0.3% Memory: ✅ 44.255MB (SLO: <46.000MB -3.8%) vs baseline: +6.4% ✅ format_aspectTime: ✅ 14.593ms (SLO: <19.200ms 📉 -24.0%) vs baseline: -0.4% Memory: ✅ 44.223MB (SLO: <46.000MB -3.9%) vs baseline: +6.2% ✅ format_map_aspectTime: ✅ 16.385ms (SLO: <21.500ms 📉 -23.8%) vs baseline: -0.3% Memory: ✅ 44.205MB (SLO: <46.000MB -3.9%) vs baseline: +6.1% ✅ format_map_noaspectTime: ✅ 374.608µs (SLO: <500.000µs 📉 -25.1%) vs baseline: -1.0% Memory: ✅ 44.157MB (SLO: <46.000MB -4.0%) vs baseline: +6.2% ✅ format_noaspectTime: ✅ 302.001µs (SLO: <500.000µs 📉 -39.6%) vs baseline: -4.3% Memory: ✅ 44.159MB (SLO: <46.000MB -4.0%) vs baseline: +6.4% ✅ index_aspectTime: ✅ 129.526µs (SLO: <300.000µs 📉 -56.8%) vs baseline: +3.6% Memory: ✅ 44.125MB (SLO: <46.000MB -4.1%) vs baseline: +6.2% ✅ index_noaspectTime: ✅ 40.460µs (SLO: <300.000µs 📉 -86.5%) vs baseline: +0.5% Memory: ✅ 44.120MB (SLO: <46.000MB -4.1%) vs baseline: +6.1% ✅ join_aspectTime: ✅ 206.027µs (SLO: <300.000µs 📉 -31.3%) vs baseline: -3.0% Memory: ✅ 44.161MB (SLO: <46.000MB -4.0%) vs baseline: +6.1% ✅ join_noaspectTime: ✅ 144.381µs (SLO: <300.000µs 📉 -51.9%) vs baseline: -0.9% Memory: ✅ 44.117MB (SLO: <46.000MB -4.1%) vs baseline: +6.0% ✅ ljust_aspectTime: ✅ 572.002µs (SLO: <700.000µs 📉 -18.3%) vs baseline: 📈 +14.4% Memory: ✅ 44.179MB (SLO: <46.000MB -4.0%) vs baseline: +6.2% ✅ ljust_noaspectTime: ✅ 250.458µs (SLO: <300.000µs 📉 -16.5%) vs baseline: -2.9% Memory: ✅ 44.249MB (SLO: <46.000MB -3.8%) vs baseline: +6.5% ✅ lower_aspectTime: ✅ 293.756µs (SLO: <500.000µs 📉 -41.2%) vs baseline: -1.5% Memory: ✅ 44.174MB (SLO: <46.000MB -4.0%) vs baseline: +6.2% ✅ lower_noaspectTime: ✅ 228.767µs (SLO: <300.000µs 📉 -23.7%) vs baseline: -3.1% Memory: ✅ 44.292MB (SLO: <46.000MB -3.7%) vs baseline: +6.7% ✅ lstrip_aspectTime: ✅ 0.269ms (SLO: <3.000ms 📉 -91.0%) vs baseline: -3.1% Memory: ✅ 44.146MB (SLO: <46.000MB -4.0%) vs baseline: +6.1% ✅ lstrip_noaspectTime: ✅ 0.174ms (SLO: <3.000ms 📉 -94.2%) vs baseline: -1.6% Memory: ✅ 44.188MB (SLO: <46.000MB -3.9%) vs baseline: +6.2% ✅ modulo_aspectTime: ✅ 14.293ms (SLO: <18.750ms 📉 -23.8%) vs baseline: -0.3% Memory: ✅ 44.317MB (SLO: <46.000MB -3.7%) vs baseline: +6.2% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.871ms (SLO: <19.350ms 📉 -23.1%) vs baseline: +0.4% Memory: ✅ 44.417MB (SLO: <46.000MB -3.4%) vs baseline: +6.5% ✅ modulo_aspect_for_bytesTime: ✅ 14.411ms (SLO: <18.900ms 📉 -23.7%) vs baseline: -0.4% Memory: ✅ 44.361MB (SLO: <46.000MB -3.6%) vs baseline: +6.4% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.601ms (SLO: <19.150ms 📉 -23.8%) vs baseline: -0.6% Memory: ✅ 44.185MB (SLO: <46.000MB -3.9%) vs baseline: +5.9% ✅ modulo_noaspectTime: ✅ 0.358ms (SLO: <3.000ms 📉 -88.1%) vs baseline: -2.1% Memory: ✅ 44.114MB (SLO: <46.000MB -4.1%) vs baseline: +6.1% ✅ replace_aspectTime: ✅ 18.378ms (SLO: <24.000ms 📉 -23.4%) vs baseline: ~same Memory: ✅ 44.608MB (SLO: <46.000MB -3.0%) vs baseline: +7.0% ✅ replace_noaspectTime: ✅ 274.608µs (SLO: <400.000µs 📉 -31.3%) vs baseline: -3.6% Memory: ✅ 44.079MB (SLO: <46.000MB -4.2%) vs baseline: +5.8% ✅ repr_aspectTime: ✅ 312.486µs (SLO: <420.000µs 📉 -25.6%) vs baseline: -2.9% Memory: ✅ 44.109MB (SLO: <46.000MB -4.1%) vs baseline: +6.0% ✅ repr_noaspectTime: ✅ 46.641µs (SLO: <90.000µs 📉 -48.2%) vs baseline: -1.5% Memory: ✅ 44.246MB (SLO: <46.000MB -3.8%) vs baseline: +6.3% ✅ rstrip_aspectTime: ✅ 379.765µs (SLO: <500.000µs 📉 -24.0%) vs baseline: -3.0% Memory: ✅ 44.143MB (SLO: <46.000MB -4.0%) vs baseline: +6.0% ✅ rstrip_noaspectTime: ✅ 180.119µs (SLO: <300.000µs 📉 -40.0%) vs baseline: -2.4% Memory: ✅ 44.132MB (SLO: <46.000MB -4.1%) vs baseline: +6.1% ✅ slice_aspectTime: ✅ 181.537µs (SLO: <300.000µs 📉 -39.5%) vs baseline: -0.2% Memory: ✅ 44.169MB (SLO: <46.000MB -4.0%) vs baseline: +6.3% ✅ slice_noaspectTime: ✅ 53.474µs (SLO: <90.000µs 📉 -40.6%) vs baseline: -1.6% Memory: ✅ 44.183MB (SLO: <46.000MB -4.0%) vs baseline: +6.4% ✅ stringio_aspectTime: ✅ 4.359ms (SLO: <5.000ms 📉 -12.8%) vs baseline: 📈 +13.5% Memory: ✅ 44.491MB (SLO: <46.000MB -3.3%) vs baseline: +7.0% ✅ stringio_noaspectTime: ✅ 345.402µs (SLO: <500.000µs 📉 -30.9%) vs baseline: -1.5% Memory: ✅ 43.996MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ strip_aspectTime: ✅ 272.227µs (SLO: <350.000µs 📉 -22.2%) vs baseline: +0.1% Memory: ✅ 44.030MB (SLO: <46.000MB -4.3%) vs baseline: +6.0% ✅ strip_noaspectTime: ✅ 173.255µs (SLO: <240.000µs 📉 -27.8%) vs baseline: -3.4% Memory: ✅ 44.300MB (SLO: <46.000MB -3.7%) vs baseline: +6.4% ✅ swapcase_aspectTime: ✅ 325.137µs (SLO: <500.000µs 📉 -35.0%) vs baseline: -4.5% Memory: ✅ 44.446MB (SLO: <46.000MB -3.4%) vs baseline: +7.1% ✅ swapcase_noaspectTime: ✅ 266.466µs (SLO: <400.000µs 📉 -33.4%) vs baseline: -1.9% Memory: ✅ 44.195MB (SLO: <46.000MB -3.9%) vs baseline: +6.3% ✅ title_aspectTime: ✅ 313.449µs (SLO: <500.000µs 📉 -37.3%) vs baseline: -2.8% Memory: ✅ 44.089MB (SLO: <46.000MB -4.2%) vs baseline: +5.8% ✅ title_noaspectTime: ✅ 255.544µs (SLO: <400.000µs 📉 -36.1%) vs baseline: -2.1% Memory: ✅ 44.223MB (SLO: <46.000MB -3.9%) vs baseline: +6.3% ✅ translate_aspectTime: ✅ 495.943µs (SLO: <700.000µs 📉 -29.2%) vs baseline: -0.3% Memory: ✅ 44.460MB (SLO: <46.000MB -3.3%) vs baseline: +7.0% ✅ translate_noaspectTime: ✅ 420.605µs (SLO: <500.000µs 📉 -15.9%) vs baseline: -2.6% Memory: ✅ 44.137MB (SLO: <46.000MB -4.1%) vs baseline: +6.0% ✅ upper_aspectTime: ✅ 290.661µs (SLO: <500.000µs 📉 -41.9%) vs baseline: -2.9% Memory: ✅ 44.137MB (SLO: <46.000MB -4.0%) vs baseline: +6.1% ✅ upper_noaspectTime: ✅ 229.165µs (SLO: <400.000µs 📉 -42.7%) vs baseline: -3.5% Memory: ✅ 44.226MB (SLO: <46.000MB -3.9%) vs baseline: +6.4% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 502.603µs (SLO: <700.000µs 📉 -28.2%) vs baseline: 📈 +18.5% Memory: ✅ 44.178MB (SLO: <46.000MB -4.0%) vs baseline: +6.3% ✅ ospathbasename_noaspectTime: ✅ 421.047µs (SLO: <700.000µs 📉 -39.9%) vs baseline: -2.7% Memory: ✅ 44.309MB (SLO: <46.000MB -3.7%) vs baseline: +7.2% ✅ ospathjoin_aspectTime: ✅ 617.482µs (SLO: <700.000µs 📉 -11.8%) vs baseline: -2.3% Memory: ✅ 44.286MB (SLO: <46.000MB -3.7%) vs baseline: +6.3% ✅ ospathjoin_noaspectTime: ✅ 627.286µs (SLO: <700.000µs 📉 -10.4%) vs baseline: -2.1% Memory: ✅ 44.275MB (SLO: <46.000MB -3.7%) vs baseline: +6.8% ✅ ospathnormcase_aspectTime: ✅ 346.984µs (SLO: <700.000µs 📉 -50.4%) vs baseline: -1.4% Memory: ✅ 44.283MB (SLO: <46.000MB -3.7%) vs baseline: +6.5% ✅ ospathnormcase_noaspectTime: ✅ 353.101µs (SLO: <700.000µs 📉 -49.6%) vs baseline: -2.9% Memory: ✅ 44.078MB (SLO: <46.000MB -4.2%) vs baseline: +6.7% ✅ ospathsplit_aspectTime: ✅ 481.487µs (SLO: <700.000µs 📉 -31.2%) vs baseline: -2.1% Memory: ✅ 44.144MB (SLO: <46.000MB -4.0%) vs baseline: +6.0% ✅ ospathsplit_noaspectTime: ✅ 496.686µs (SLO: <700.000µs 📉 -29.0%) vs baseline: -1.5% Memory: ✅ 44.165MB (SLO: <46.000MB -4.0%) vs baseline: +7.0% ✅ ospathsplitdrive_aspectTime: ✅ 368.469µs (SLO: <700.000µs 📉 -47.4%) vs baseline: -1.9% Memory: ✅ 44.158MB (SLO: <46.000MB -4.0%) vs baseline: +6.7% ✅ ospathsplitdrive_noaspectTime: ✅ 72.604µs (SLO: <700.000µs 📉 -89.6%) vs baseline: -0.8% Memory: ✅ 43.965MB (SLO: <46.000MB -4.4%) vs baseline: +5.7% ✅ ospathsplitext_aspectTime: ✅ 449.592µs (SLO: <700.000µs 📉 -35.8%) vs baseline: -3.0% Memory: ✅ 44.191MB (SLO: <46.000MB -3.9%) vs baseline: +6.0% ✅ ospathsplitext_noaspectTime: ✅ 459.817µs (SLO: <700.000µs 📉 -34.3%) vs baseline: -1.1% Memory: ✅ 44.314MB (SLO: <46.000MB -3.7%) vs baseline: +6.9% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 2.323µs (SLO: <20.000µs 📉 -88.4%) vs baseline: 📈 +10.4% Memory: ✅ 36.785MB (SLO: <38.000MB -3.2%) vs baseline: +6.9% ✅ 1-count-metrics-100-timesTime: ✅ 152.980µs (SLO: <220.000µs 📉 -30.5%) vs baseline: -0.3% Memory: ✅ 36.864MB (SLO: <38.000MB -3.0%) vs baseline: +7.4% ✅ 1-distribution-metric-1-timesTime: ✅ 2.436µs (SLO: <20.000µs 📉 -87.8%) vs baseline: +1.7% Memory: ✅ 36.864MB (SLO: <38.000MB -3.0%) vs baseline: +7.4% ✅ 1-distribution-metrics-100-timesTime: ✅ 164.152µs (SLO: <230.000µs 📉 -28.6%) vs baseline: +1.2% Memory: ✅ 36.923MB (SLO: <38.000MB -2.8%) vs baseline: +7.5% ✅ 1-gauge-metric-1-timesTime: ✅ 2.013µs (SLO: <20.000µs 📉 -89.9%) vs baseline: +2.0% Memory: ✅ 36.844MB (SLO: <38.000MB -3.0%) vs baseline: +7.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.576µs (SLO: <150.000µs -8.9%) vs baseline: +0.3% Memory: ✅ 36.923MB (SLO: <38.000MB -2.8%) vs baseline: +7.7% ✅ 1-rate-metric-1-timesTime: ✅ 2.319µs (SLO: <20.000µs 📉 -88.4%) vs baseline: +1.9% Memory: ✅ 36.805MB (SLO: <38.000MB -3.1%) vs baseline: +7.1% ✅ 1-rate-metrics-100-timesTime: ✅ 166.926µs (SLO: <250.000µs 📉 -33.2%) vs baseline: -0.4% Memory: ✅ 36.844MB (SLO: <38.000MB -3.0%) vs baseline: +7.4% ✅ 100-count-metrics-100-timesTime: ✅ 15.250ms (SLO: <22.000ms 📉 -30.7%) vs baseline: -1.8% Memory: ✅ 36.766MB (SLO: <38.000MB -3.2%) vs baseline: +6.9% ✅ 100-distribution-metrics-100-timesTime: ✅ 1.737ms (SLO: <2.550ms 📉 -31.9%) vs baseline: -1.0% Memory: ✅ 36.844MB (SLO: <38.000MB -3.0%) vs baseline: +7.3% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.400ms (SLO: <1.550ms -9.7%) vs baseline: -0.3% Memory: ✅ 36.825MB (SLO: <38.000MB -3.1%) vs baseline: +7.3% ✅ 100-rate-metrics-100-timesTime: ✅ 1.740ms (SLO: <2.550ms 📉 -31.8%) vs baseline: -0.2% Memory: ✅ 36.825MB (SLO: <38.000MB -3.1%) vs baseline: +7.1% ✅ flush-1-metricTime: ✅ 3.832µs (SLO: <20.000µs 📉 -80.8%) vs baseline: +7.0% Memory: ✅ 36.766MB (SLO: <38.000MB -3.2%) vs baseline: +7.2% ✅ flush-100-metricsTime: ✅ 182.287µs (SLO: <250.000µs 📉 -27.1%) vs baseline: +4.6% Memory: ✅ 36.903MB (SLO: <38.000MB -2.9%) vs baseline: +6.2% ✅ flush-1000-metricsTime: ✅ 2.265ms (SLO: <2.500ms -9.4%) vs baseline: +2.4% Memory: ✅ 37.670MB (SLO: <38.750MB -2.8%) vs baseline: +7.0% 🟡 Near SLO Breach (3 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 19.740ms (SLO: <22.300ms 📉 -11.5%) vs baseline: -0.2% Memory: ✅ 69.521MB (SLO: <73.500MB -5.4%) vs baseline: +5.9% ✅ exception-replay-enabledTime: ✅ 1.324ms (SLO: <1.450ms -8.7%) vs baseline: -0.3% Memory: ✅ 67.667MB (SLO: <71.500MB -5.4%) vs baseline: +5.3% ✅ iastTime: ✅ 19.774ms (SLO: <22.250ms 📉 -11.1%) vs baseline: ~same Memory: ✅ 69.594MB (SLO: <75.000MB -7.2%) vs baseline: +6.0% ✅ profilerTime: ✅ 15.210ms (SLO: <16.550ms -8.1%) vs baseline: +0.2% Memory: ✅ 60.628MB (SLO: <61.000MB 🟡 -0.6%) vs baseline: +5.8% ✅ resource-renamingTime: ✅ 19.617ms (SLO: <21.750ms -9.8%) vs baseline: -0.4% Memory: ✅ 69.534MB (SLO: <73.500MB -5.4%) vs baseline: +5.9% ✅ span-code-originTime: ✅ 20.188ms (SLO: <28.200ms 📉 -28.4%) vs baseline: +0.9% Memory: ✅ 69.564MB (SLO: <75.000MB -7.2%) vs baseline: +5.5% ✅ tracerTime: ✅ 19.769ms (SLO: <21.750ms -9.1%) vs baseline: ~same Memory: ✅ 69.531MB (SLO: <75.000MB -7.3%) vs baseline: +6.0% ✅ tracer-and-profilerTime: ✅ 21.156ms (SLO: <23.500ms -10.0%) vs baseline: +0.2% Memory: ✅ 71.600MB (SLO: <75.000MB -4.5%) vs baseline: +5.8% ✅ tracer-dont-create-db-spansTime: ✅ 19.853ms (SLO: <21.500ms -7.7%) vs baseline: ~same Memory: ✅ 69.511MB (SLO: <75.000MB -7.3%) vs baseline: +6.0% ✅ tracer-minimalTime: ✅ 16.907ms (SLO: <17.500ms -3.4%) vs baseline: +0.2% Memory: ✅ 69.550MB (SLO: <75.000MB -7.3%) ✅ tracer-nativeTime: ✅ 19.695ms (SLO: <21.750ms -9.5%) vs baseline: +0.4% Memory: ✅ 69.537MB (SLO: <72.500MB -4.1%) ✅ tracer-no-cachesTime: ✅ 17.684ms (SLO: <19.650ms 📉 -10.0%) vs baseline: +0.4% Memory: ✅ 69.590MB (SLO: <75.000MB -7.2%) vs baseline: +6.0% ✅ tracer-no-databasesTime: ✅ 19.356ms (SLO: <20.100ms -3.7%) vs baseline: +0.1% Memory: ✅ 69.505MB (SLO: <75.000MB -7.3%) ✅ tracer-no-middlewareTime: ✅ 19.456ms (SLO: <21.500ms -9.5%) vs baseline: -0.1% Memory: ✅ 69.558MB (SLO: <75.000MB -7.3%) ✅ tracer-no-templatesTime: ✅ 19.578ms (SLO: <22.000ms 📉 -11.0%) vs baseline: +0.2% Memory: ✅ 69.581MB (SLO: <73.500MB -5.3%) 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 3.381ms (SLO: <4.750ms 📉 -28.8%) vs baseline: +0.5% Memory: ✅ 56.735MB (SLO: <66.500MB 📉 -14.7%) vs baseline: +5.8% ✅ appsec-postTime: ✅ 2.865ms (SLO: <6.750ms 📉 -57.5%) vs baseline: ~same Memory: ✅ 56.756MB (SLO: <66.500MB 📉 -14.7%) vs baseline: +5.8% ✅ appsec-telemetryTime: ✅ 3.388ms (SLO: <4.750ms 📉 -28.7%) vs baseline: +1.1% Memory: ✅ 56.732MB (SLO: <66.500MB 📉 -14.7%) vs baseline: +6.1% ✅ debuggerTime: ✅ 1.880ms (SLO: <2.000ms -6.0%) vs baseline: +0.1% Memory: ✅ 49.442MB (SLO: <51.500MB -4.0%) vs baseline: +6.1% ✅ iast-getTime: ✅ 1.868ms (SLO: <2.000ms -6.6%) vs baseline: ~same Memory: ✅ 46.205MB (SLO: <49.000MB -5.7%) vs baseline: +6.0% ✅ profilerTime: ✅ 1.910ms (SLO: <2.100ms -9.0%) vs baseline: -0.7% Memory: ✅ 52.864MB (SLO: <53.500MB 🟡 -1.2%) vs baseline: +6.3% ✅ resource-renamingTime: ✅ 3.346ms (SLO: <3.650ms -8.3%) vs baseline: -0.1% Memory: ✅ 56.769MB (SLO: <60.000MB -5.4%) vs baseline: +6.0% ✅ tracerTime: ✅ 3.363ms (SLO: <3.650ms -7.9%) vs baseline: +0.3% Memory: ✅ 56.676MB (SLO: <60.000MB -5.5%) vs baseline: +5.8% ✅ tracer-nativeTime: ✅ 3.359ms (SLO: <3.650ms -8.0%) vs baseline: +0.2% Memory: ✅ 56.770MB (SLO: <60.000MB -5.4%) vs baseline: +6.0% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 311.860ms (SLO: <320.950ms -2.8%) vs baseline: +0.2% Memory: ✅ 37.729MB (SLO: <38.750MB -2.6%) vs baseline: +6.8% ✅ deep-profiledTime: ✅ 332.668ms (SLO: <359.150ms -7.4%) vs baseline: -0.3% Memory: ✅ 44.080MB (SLO: <46.000MB -4.2%) vs baseline: +5.9% ✅ mediumTime: ✅ 7.316ms (SLO: <7.400ms 🟡 -1.1%) vs baseline: +0.1% Memory: ✅ 36.943MB (SLO: <38.000MB -2.8%) vs baseline: +7.7% ✅ shallowTime: ✅ 1.018ms (SLO: <1.050ms -3.1%) vs baseline: +1.6% Memory: ✅ 36.903MB (SLO: <38.000MB -2.9%) vs baseline: +7.3%
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 17467fece2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Remove OtelParentBasedAlwaysOnSampler and the conditional sampler injection. DatadogSampler already satisfies the spec: user rules take precedence, agent rate table is never populated in OTLP mode, and the fallback is 1.0. Using a separate sampler silently ignored DD_TRACE_SAMPLING_RULES and DD_TRACE_SAMPLE_RATE. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mabdinur
left a comment
There was a problem hiding this comment.
Overall looks good.
This PR will need a release note and maybe one end to end test that sends an otlp trace to the testagent (we should avoid duplicating all the test cases covered by system tests). We will also need to document this feature somewhere. Ideally leave a small note in ddtrace.opentelemetry that links to https://docs.datadoghq.com/opentelemetry/instrument/dd_sdks/api_support/?platform=traces&prog_lang=python.
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: b1b60b1 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
mabdinur
left a comment
There was a problem hiding this comment.
Left some comments about tests but the implementation looks good to me
…ation _inferred_base_service.py had one leftover os.environ.get call, and _opentelemetry.py (added by #17031) was not covered by the original migration. Fixes ast-grep-rules CI failure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ation _inferred_base_service.py had one leftover os.environ.get call, and _opentelemetry.py (added by #17031) was not covered by the original migration. Fixes ast-grep-rules CI failure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
Adds native OTLP trace export support to dd-trace-py using libdatadog's TraceExporter. When
OTEL_TRACES_EXPORTER=otlp, traces are sent directly to an OTLP collector instead of the Datadog agent.Testing
Risks
Additional Notes