-
Notifications
You must be signed in to change notification settings - Fork 467
feat(otel): support context_api.detach #15202
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
base: main
Are you sure you want to change the base?
Conversation
|
|
…e value, get rid of if statement
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 240 ± 4 ms. The average import time from base is: 246 ± 5 ms. The import time difference between this PR and base is: -6.1 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate munir/fix-otel-span-context (14fabd8) with baseline main (1f1ac6a) 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.404µs (SLO: <10.000µs 📉 -96.0%) vs baseline: +0.1% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.6% ✅ add_inplace_aspectTime: ✅ 0.406µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +0.6% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ add_inplace_noaspectTime: ✅ 0.321µs (SLO: <10.000µs 📉 -96.8%) vs baseline: +1.3% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.9% ✅ add_noaspectTime: ✅ 0.275µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +0.3% Memory: ✅ 37.100MB (SLO: <39.000MB -4.9%) vs baseline: +4.3% ✅ bytearray_aspectTime: ✅ 1.315µs (SLO: <10.000µs 📉 -86.9%) vs baseline: ~same Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ bytearray_extend_aspectTime: ✅ 1.523µs (SLO: <10.000µs 📉 -84.8%) vs baseline: +3.0% Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ bytearray_extend_noaspectTime: ✅ 0.615µs (SLO: <10.000µs 📉 -93.8%) vs baseline: +0.5% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.9% ✅ bytearray_noaspectTime: ✅ 0.485µs (SLO: <10.000µs 📉 -95.2%) vs baseline: +1.2% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.8% ✅ bytes_aspectTime: ✅ 1.460µs (SLO: <10.000µs 📉 -85.4%) vs baseline: 📈 +13.5% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.2% ✅ bytes_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.2% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.8% ✅ bytesio_aspectTime: ✅ 1.301µs (SLO: <10.000µs 📉 -87.0%) vs baseline: -1.7% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ bytesio_noaspectTime: ✅ 0.497µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -1.0% Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%) vs baseline: +5.2% ✅ capitalize_aspectTime: ✅ 0.736µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +0.5% Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ capitalize_noaspectTime: ✅ 0.438µs (SLO: <10.000µs 📉 -95.6%) vs baseline: +1.0% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.6% ✅ casefold_aspectTime: ✅ 0.735µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +0.6% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ casefold_noaspectTime: ✅ 0.366µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.3% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ decode_aspectTime: ✅ 0.740µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +2.3% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ decode_noaspectTime: ✅ 0.417µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +0.1% Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%) vs baseline: +4.7% ✅ encode_aspectTime: ✅ 0.712µs (SLO: <10.000µs 📉 -92.9%) vs baseline: +0.5% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ encode_noaspectTime: ✅ 0.399µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.7% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ format_aspectTime: ✅ 3.362µs (SLO: <10.000µs 📉 -66.4%) vs baseline: +0.6% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.1% ✅ format_map_aspectTime: ✅ 3.616µs (SLO: <10.000µs 📉 -63.8%) vs baseline: +0.4% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 0.773µs (SLO: <10.000µs 📉 -92.3%) vs baseline: -0.2% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +4.8% ✅ format_noaspectTime: ✅ 0.594µs (SLO: <10.000µs 📉 -94.1%) vs baseline: -0.3% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ index_aspectTime: ✅ 0.355µs (SLO: <10.000µs 📉 -96.5%) vs baseline: -0.9% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ index_noaspectTime: ✅ 0.277µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -1.6% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.6% ✅ join_aspectTime: ✅ 1.357µs (SLO: <10.000µs 📉 -86.4%) vs baseline: ~same Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ join_noaspectTime: ✅ 0.490µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.5% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ ljust_aspectTime: ✅ 2.812µs (SLO: <20.000µs 📉 -85.9%) vs baseline: +6.7% Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%) vs baseline: +5.1% ✅ ljust_noaspectTime: ✅ 0.405µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +0.6% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ lower_aspectTime: ✅ 2.349µs (SLO: <10.000µs 📉 -76.5%) vs baseline: +6.9% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ lower_noaspectTime: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.2% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ lstrip_aspectTime: ✅ 2.506µs (SLO: <20.000µs 📉 -87.5%) vs baseline: 📈 +10.8% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.8% ✅ lstrip_noaspectTime: ✅ 0.385µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.3% Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%) vs baseline: +5.0% ✅ modulo_aspectTime: ✅ 1.002µs (SLO: <10.000µs 📉 -90.0%) vs baseline: +0.4% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.542µs (SLO: <10.000µs 📉 -84.6%) vs baseline: +0.7% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ modulo_aspect_for_bytesTime: ✅ 0.975µs (SLO: <10.000µs 📉 -90.3%) vs baseline: ~same Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.3% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.194µs (SLO: <10.000µs 📉 -88.1%) vs baseline: +0.2% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ modulo_noaspectTime: ✅ 0.631µs (SLO: <10.000µs 📉 -93.7%) vs baseline: -0.1% Memory: ✅ 37.080MB (SLO: <39.000MB -4.9%) vs baseline: +4.5% ✅ replace_aspectTime: ✅ 4.912µs (SLO: <10.000µs 📉 -50.9%) vs baseline: +1.6% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ replace_noaspectTime: ✅ 0.463µs (SLO: <10.000µs 📉 -95.4%) vs baseline: +0.8% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.1% ✅ repr_aspectTime: ✅ 0.905µs (SLO: <10.000µs 📉 -90.9%) vs baseline: +0.1% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ repr_noaspectTime: ✅ 0.412µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -3.0% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ rstrip_aspectTime: ✅ 1.917µs (SLO: <20.000µs 📉 -90.4%) vs baseline: +0.7% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ rstrip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.2% Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ slice_aspectTime: ✅ 0.494µs (SLO: <10.000µs 📉 -95.1%) vs baseline: +0.5% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.9% ✅ slice_noaspectTime: ✅ 0.450µs (SLO: <10.000µs 📉 -95.5%) vs baseline: +1.0% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ stringio_aspectTime: ✅ 1.550µs (SLO: <10.000µs 📉 -84.5%) vs baseline: -0.5% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ stringio_noaspectTime: ✅ 0.720µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +0.3% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ strip_aspectTime: ✅ 2.247µs (SLO: <20.000µs 📉 -88.8%) vs baseline: +0.6% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ strip_noaspectTime: ✅ 0.387µs (SLO: <10.000µs 📉 -96.1%) vs baseline: -0.9% Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%) vs baseline: +5.1% ✅ swapcase_aspectTime: ✅ 2.399µs (SLO: <10.000µs 📉 -76.0%) vs baseline: ~same Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ swapcase_noaspectTime: ✅ 0.535µs (SLO: <10.000µs 📉 -94.6%) vs baseline: -0.7% Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%) vs baseline: +5.2% ✅ title_aspectTime: ✅ 2.347µs (SLO: <10.000µs 📉 -76.5%) vs baseline: +0.2% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 0.503µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.2% Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%) vs baseline: +4.9% ✅ translate_aspectTime: ✅ 3.236µs (SLO: <10.000µs 📉 -67.6%) vs baseline: ~same Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%) vs baseline: +4.5% ✅ translate_noaspectTime: ✅ 1.040µs (SLO: <10.000µs 📉 -89.6%) vs baseline: ~same Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.6% ✅ upper_aspectTime: ✅ 2.276µs (SLO: <10.000µs 📉 -77.2%) vs baseline: +3.6% Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%) vs baseline: +5.0% ✅ upper_noaspectTime: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -1.3% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.228µs (SLO: <10.000µs 📉 -57.7%) vs baseline: -0.7% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ ospathbasename_noaspectTime: ✅ 1.085µs (SLO: <10.000µs 📉 -89.2%) vs baseline: +1.0% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +4.9% ✅ ospathjoin_aspectTime: ✅ 6.135µs (SLO: <10.000µs 📉 -38.7%) vs baseline: ~same Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +4.7% ✅ ospathjoin_noaspectTime: ✅ 2.291µs (SLO: <10.000µs 📉 -77.1%) vs baseline: -0.4% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.7% ✅ ospathnormcase_aspectTime: ✅ 3.405µs (SLO: <10.000µs 📉 -66.0%) vs baseline: -1.7% Memory: ✅ 37.120MB (SLO: <39.000MB -4.8%) vs baseline: +4.9% ✅ ospathnormcase_noaspectTime: ✅ 0.573µs (SLO: <10.000µs 📉 -94.3%) vs baseline: +0.4% Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 4.814µs (SLO: <10.000µs 📉 -51.9%) vs baseline: +0.9% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +4.8% ✅ ospathsplit_noaspectTime: ✅ 1.600µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +0.2% Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%) vs baseline: +5.2% ✅ ospathsplitdrive_aspectTime: ✅ 3.639µs (SLO: <10.000µs 📉 -63.6%) vs baseline: -0.5% Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%) vs baseline: +5.0% ✅ ospathsplitdrive_noaspectTime: ✅ 0.703µs (SLO: <10.000µs 📉 -93.0%) vs baseline: ~same Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%) vs baseline: +4.8% ✅ ospathsplitext_aspectTime: ✅ 5.086µs (SLO: <10.000µs 📉 -49.1%) vs baseline: 📈 +12.7% Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%) vs baseline: +5.0% ✅ ospathsplitext_noaspectTime: ✅ 1.387µs (SLO: <10.000µs 📉 -86.1%) vs baseline: ~same Memory: ✅ 37.100MB (SLO: <39.000MB -4.9%) vs baseline: +4.6% 🟡 Near SLO Breach (5 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.529ms (SLO: <22.300ms -7.9%) vs baseline: +0.7% Memory: ✅ 66.082MB (SLO: <67.000MB 🟡 -1.4%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.339ms (SLO: <1.450ms -7.7%) vs baseline: -0.7% Memory: ✅ 64.220MB (SLO: <67.000MB -4.1%) vs baseline: +4.9% ✅ iastTime: ✅ 20.559ms (SLO: <22.250ms -7.6%) vs baseline: +0.5% Memory: ✅ 66.077MB (SLO: <67.000MB 🟡 -1.4%) vs baseline: +4.8% ✅ profilerTime: ✅ 15.434ms (SLO: <16.550ms -6.7%) vs baseline: -0.7% Memory: ✅ 54.047MB (SLO: <54.500MB 🟡 -0.8%) vs baseline: +5.0% ✅ resource-renamingTime: ✅ 20.566ms (SLO: <21.750ms -5.4%) vs baseline: +0.4% Memory: ✅ 66.028MB (SLO: <67.000MB 🟡 -1.5%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 25.462ms (SLO: <28.200ms -9.7%) vs baseline: +0.2% Memory: ✅ 67.271MB (SLO: <69.500MB -3.2%) vs baseline: +5.1% ✅ tracerTime: ✅ 20.510ms (SLO: <21.750ms -5.7%) vs baseline: ~same Memory: ✅ 65.985MB (SLO: <67.000MB 🟡 -1.5%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 22.687ms (SLO: <23.500ms -3.5%) vs baseline: ~same Memory: ✅ 67.896MB (SLO: <68.000MB 🟡 -0.2%) vs baseline: +5.1% ✅ tracer-dont-create-db-spansTime: ✅ 19.359ms (SLO: <21.500ms -10.0%) vs baseline: ~same Memory: ✅ 66.150MB (SLO: <67.000MB 🟡 -1.3%) vs baseline: +5.0% ✅ tracer-minimalTime: ✅ 16.617ms (SLO: <17.500ms -5.0%) vs baseline: ~same Memory: ✅ 65.923MB (SLO: <67.000MB 🟡 -1.6%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.488ms (SLO: <21.750ms -5.8%) vs baseline: +0.3% Memory: ✅ 68.026MB (SLO: <72.500MB -6.2%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 18.484ms (SLO: <19.650ms -5.9%) vs baseline: ~same Memory: ✅ 66.054MB (SLO: <67.000MB 🟡 -1.4%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.830ms (SLO: <20.100ms -6.3%) vs baseline: +0.4% Memory: ✅ 65.957MB (SLO: <67.000MB 🟡 -1.6%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 20.174ms (SLO: <21.500ms -6.2%) vs baseline: +0.2% Memory: ✅ 65.978MB (SLO: <67.000MB 🟡 -1.5%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.282ms (SLO: <22.000ms -7.8%) vs baseline: -0.3% Memory: ✅ 66.037MB (SLO: <67.000MB 🟡 -1.4%) vs baseline: +5.0% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.051ms (SLO: <19.850ms -9.1%) vs baseline: +0.3% Memory: ✅ 66.119MB (SLO: <66.500MB 🟡 -0.6%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 18.078ms (SLO: <19.400ms -6.8%) vs baseline: +0.2% Memory: ✅ 66.139MB (SLO: <66.500MB 🟡 -0.5%) vs baseline: +4.8% ✅ tracer-enabledTime: ✅ 18.088ms (SLO: <19.450ms -7.0%) vs baseline: -0.4% Memory: ✅ 65.874MB (SLO: <66.500MB 🟡 -0.9%) vs baseline: +4.9% 🟡 errortrackingflasksqli - 6/6✅ errortracking-enabled-allTime: ✅ 2.077ms (SLO: <2.300ms -9.7%) vs baseline: +0.4% Memory: ✅ 52.435MB (SLO: <53.500MB 🟡 -2.0%) vs baseline: +4.5% ✅ errortracking-enabled-userTime: ✅ 2.066ms (SLO: <2.250ms -8.2%) vs baseline: -0.3% Memory: ✅ 52.435MB (SLO: <53.500MB 🟡 -2.0%) vs baseline: +4.7% ✅ tracer-enabledTime: ✅ 2.074ms (SLO: <2.300ms -9.8%) vs baseline: +0.3% Memory: ✅ 52.376MB (SLO: <53.500MB -2.1%) vs baseline: +4.5% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.597ms (SLO: <4.750ms -3.2%) vs baseline: ~same Memory: ✅ 62.383MB (SLO: <65.000MB -4.0%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.631ms (SLO: <6.750ms 🟡 -1.8%) vs baseline: ~same Memory: ✅ 62.329MB (SLO: <65.000MB -4.1%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 4.599ms (SLO: <4.750ms -3.2%) vs baseline: +0.3% Memory: ✅ 62.368MB (SLO: <65.000MB -4.0%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.859ms (SLO: <2.000ms -7.1%) vs baseline: -0.3% Memory: ✅ 45.067MB (SLO: <47.000MB -4.1%) vs baseline: +4.5% ✅ iast-getTime: ✅ 1.859ms (SLO: <2.000ms -7.0%) vs baseline: +0.2% Memory: ✅ 42.054MB (SLO: <49.000MB 📉 -14.2%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.915ms (SLO: <2.100ms -8.8%) vs baseline: -0.2% Memory: ✅ 46.632MB (SLO: <47.000MB 🟡 -0.8%) vs baseline: +5.1% ✅ resource-renamingTime: ✅ 3.369ms (SLO: <3.650ms -7.7%) vs baseline: -0.5% Memory: ✅ 52.580MB (SLO: <53.500MB 🟡 -1.7%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.357ms (SLO: <3.650ms -8.0%) vs baseline: +0.2% Memory: ✅ 52.475MB (SLO: <53.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 3.354ms (SLO: <3.650ms -8.1%) vs baseline: +0.1% Memory: ✅ 54.381MB (SLO: <60.000MB -9.4%) vs baseline: +4.9% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 309.341ms (SLO: <320.950ms -3.6%) vs baseline: -0.1% Memory: ✅ 32.676MB (SLO: <34.500MB -5.3%) vs baseline: +5.0% ✅ deep-profiledTime: ✅ 327.740ms (SLO: <359.150ms -8.7%) vs baseline: ~same Memory: ✅ 38.358MB (SLO: <39.000MB 🟡 -1.6%) vs baseline: +4.5% ✅ mediumTime: ✅ 7.024ms (SLO: <7.400ms -5.1%) vs baseline: +0.3% Memory: ✅ 31.890MB (SLO: <34.000MB -6.2%) vs baseline: +4.7% ✅ shallowTime: ✅ 0.944ms (SLO: <1.050ms 📉 -10.1%) vs baseline: +0.4% Memory: ✅ 31.870MB (SLO: <34.000MB -6.3%) vs baseline: +4.7%
|
cc7d4a1 to
14fabd8
Compare
Description
Added support for OpenTelemetry context API's
attach()anddetach()methods with proper LIFO context restoration. This ensuresddtraceis compatible with OpenTelemetry instrumentations that manage their own active spans (e.g.,concurrent.futures).Previously, spans were only deactivated when finished or manually replaced. This broke OpenTelemetry instrumentations expecting standard context management. This change fully implements the OpenTelemetry Context API, giving users complete control over span lifecycle.
Note:
detach()only restores trace and baggage. Other context signals (metrics, logs) are not restored.Testing
Added tests validating LIFO context restoration for both OpenTelemetry and ddtrace context APIs with nested spans.
Risks
Low. Adds functionality without changing existing behavior.
Additional Notes
Improves compatibility with native OpenTelemetry instrumentations requiring manual context management.