chore(internal): migrate remaining products to the product plugin interface#17173
chore(internal): migrate remaining products to the product plugin interface#17173
Conversation
Codeowners resolved as |
…erface Move crashtracking, runtime metrics, OpenTelemetry signals, and LLMObs out of the preload bootstrap and into dedicated product.py modules that integrate with the product plugin interface (ddtrace.products entry points). Profiling will be migrated in follow-up work. Key changes: - Convert ddtrace/internal/core/crashtracking.py into a package and add a product.py alongside it. The forksafe registration is removed from crashtracking.start(); the product's restart() now calls crashtracker_on_fork() directly, consistent with how other products delegate post-fork work to the product manager. - Add ddtrace/internal/runtime/product.py for runtime metrics. - Add ddtrace/internal/opentelemetry/product.py for OTel signals; the ModuleWatchdog hook is registered lazily inside start(). - Add ddtrace/llmobs/product.py for LLMObs. The forksafe registration is removed from LLMObs.__init__/_stop; the product's restart() calls _child_after_fork() instead. - Simplify _child_after_fork(): instead of recreating writer/runner objects and restarting their threads (which PeriodicThread already does automatically via __autorestart__), just reset their buffers and recreate the EvaluatorRunner's ThreadPoolExecutor (not fork-safe). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5ec2d2f to
773101b
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: 773101b | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
Performance SLOsComparing candidate chore/migrate-products-to-plugin-interface (773101b) with baseline main (e2ab999) ❌ Test Failures (1 suite)❌ djangosimple - 29/30✅ appsecTime: ✅ 20.991ms (SLO: <22.300ms -5.9%) vs baseline: +6.3% Memory: ✅ 70.978MB (SLO: <73.500MB -3.4%) vs baseline: +8.2% ✅ exception-replay-enabledTime: ✅ 1.324ms (SLO: <1.450ms -8.7%) vs baseline: -0.4% Memory: ✅ 69.152MB (SLO: <71.500MB -3.3%) vs baseline: +7.6% ✅ iastTime: ✅ 20.991ms (SLO: <22.250ms -5.7%) vs baseline: +6.5% Memory: ✅ 70.932MB (SLO: <75.000MB -5.4%) vs baseline: +8.1% ✅ profilerTime: ✅ 15.082ms (SLO: <16.550ms -8.9%) vs baseline: -0.4% Memory: ✅ 60.352MB (SLO: <61.000MB 🟡 -1.1%) vs baseline: +5.4% ✅ resource-renamingTime: ✅ 20.753ms (SLO: <21.750ms -4.6%) vs baseline: +5.0% Memory: ✅ 70.934MB (SLO: <73.500MB -3.5%) vs baseline: +8.1% ✅ span-code-originTime: ✅ 21.339ms (SLO: <28.200ms 📉 -24.3%) vs baseline: +7.3% Memory: ✅ 70.920MB (SLO: <75.000MB -5.4%) vs baseline: +7.6% ✅ tracerTime: ✅ 21.218ms (SLO: <21.750ms -2.4%) vs baseline: +7.5% Memory: ✅ 70.919MB (SLO: <75.000MB -5.4%) vs baseline: +8.0% ✅ tracer-and-profilerTime: ✅ 22.369ms (SLO: <23.500ms -4.8%) vs baseline: +6.2% Memory: ✅ 72.759MB (SLO: <75.000MB -3.0%) vs baseline: +7.4% ✅ tracer-dont-create-db-spansTime: ✅ 21.271ms (SLO: <21.500ms 🟡 -1.1%) vs baseline: +7.4% Memory: ✅ 70.906MB (SLO: <75.000MB -5.5%) vs baseline: +8.0% ✅ tracer-minimalTime: ✅ 16.718ms (SLO: <17.500ms -4.5%) vs baseline: -1.0% Memory: ✅ 70.984MB (SLO: <75.000MB -5.4%) vs baseline: +8.2% ✅ tracer-nativeTime: ✅ 20.928ms (SLO: <21.750ms -3.8%) vs baseline: +6.5% Memory: ✅ 70.873MB (SLO: <72.500MB -2.2%) vs baseline: +7.9% ✅ tracer-no-cachesTime: ✅ 17.633ms (SLO: <19.650ms 📉 -10.3%) vs baseline: -0.2% Memory: ✅ 70.944MB (SLO: <75.000MB -5.4%) vs baseline: +8.1% ❌ tracer-no-databasesTime: ❌ 20.702ms (SLO: <20.100ms +3.0%) vs baseline: +7.1% Memory: ✅ 70.909MB (SLO: <75.000MB -5.5%) vs baseline: +8.1% ✅ tracer-no-middlewareTime: ✅ 20.646ms (SLO: <21.500ms -4.0%) vs baseline: +6.6% Memory: ✅ 70.844MB (SLO: <75.000MB -5.5%) vs baseline: +8.0% ✅ tracer-no-templatesTime: ✅ 20.973ms (SLO: <22.000ms -4.7%) vs baseline: +7.5% Memory: ✅ 70.939MB (SLO: <73.500MB -3.5%) vs baseline: +8.1% 📈 Performance Regressions (7 suites)📈 errortrackingflasksqli - 6/6✅ errortracking-enabled-allTime: ✅ 2.079ms (SLO: <2.300ms -9.6%) vs baseline: -0.2% Memory: ✅ 59.749MB (SLO: <60.000MB 🟡 -0.4%) vs baseline: 📈 +11.5% ✅ errortracking-enabled-userTime: ✅ 2.088ms (SLO: <2.250ms -7.2%) vs baseline: ~same Memory: ✅ 59.592MB (SLO: <60.000MB 🟡 -0.7%) vs baseline: 📈 +11.6% ✅ tracer-enabledTime: ✅ 2.076ms (SLO: <2.300ms -9.7%) vs baseline: -0.3% Memory: ✅ 59.592MB (SLO: <60.000MB 🟡 -0.7%) vs baseline: 📈 +12.3% 📈 flasksimple - 18/18✅ appsec-getTime: ✅ 3.357ms (SLO: <4.750ms 📉 -29.3%) vs baseline: -0.3% Memory: ✅ 59.899MB (SLO: <66.500MB -9.9%) vs baseline: 📈 +11.7% ✅ appsec-postTime: ✅ 2.872ms (SLO: <6.750ms 📉 -57.4%) vs baseline: +0.2% Memory: ✅ 59.798MB (SLO: <66.500MB 📉 -10.1%) vs baseline: 📈 +11.6% ✅ appsec-telemetryTime: ✅ 3.369ms (SLO: <4.750ms 📉 -29.1%) vs baseline: +0.6% Memory: ✅ 59.687MB (SLO: <66.500MB 📉 -10.2%) vs baseline: 📈 +11.3% ✅ debuggerTime: ✅ 1.876ms (SLO: <2.000ms -6.2%) vs baseline: -0.1% Memory: ✅ 49.267MB (SLO: <51.500MB -4.3%) vs baseline: +5.5% ✅ iast-getTime: ✅ 1.867ms (SLO: <2.000ms -6.6%) vs baseline: ~same Memory: ✅ 46.061MB (SLO: <49.000MB -6.0%) vs baseline: +5.8% ✅ profilerTime: ✅ 1.914ms (SLO: <2.100ms -8.9%) vs baseline: -0.3% Memory: ✅ 52.391MB (SLO: <53.500MB -2.1%) vs baseline: +5.5% ✅ resource-renamingTime: ✅ 3.331ms (SLO: <3.650ms -8.7%) vs baseline: -0.3% Memory: ✅ 59.780MB (SLO: <60.000MB 🟡 -0.4%) vs baseline: 📈 +11.4% ✅ tracerTime: ✅ 3.342ms (SLO: <3.650ms -8.4%) vs baseline: -0.4% Memory: ✅ 59.735MB (SLO: <60.000MB 🟡 -0.4%) vs baseline: 📈 +11.4% ✅ tracer-nativeTime: ✅ 3.338ms (SLO: <3.650ms -8.5%) vs baseline: -0.1% Memory: ✅ 59.776MB (SLO: <60.000MB 🟡 -0.4%) vs baseline: 📈 +11.4% 📈 flasksqli - 6/6✅ appsec-enabledTime: ✅ 2.074ms (SLO: <4.200ms 📉 -50.6%) vs baseline: -0.5% Memory: ✅ 59.651MB (SLO: <66.000MB -9.6%) vs baseline: 📈 +11.8% ✅ iast-enabledTime: ✅ 2.084ms (SLO: <2.800ms 📉 -25.6%) vs baseline: ~same Memory: ✅ 59.769MB (SLO: <62.500MB -4.4%) vs baseline: 📈 +11.9% ✅ tracer-enabledTime: ✅ 2.071ms (SLO: <2.250ms -8.0%) vs baseline: -0.1% Memory: ✅ 59.730MB (SLO: <60.000MB 🟡 -0.5%) vs baseline: 📈 +11.9% 📈 forktime - 4/4✅ baselineTime: ✅ 1.940ms (SLO: <3.000ms 📉 -35.3%) vs baseline: +3.9% Memory: ✅ 29.295MB (SLO: <33.000MB 📉 -11.2%) vs baseline: +5.1% ✅ configuredTime: ✅ 8.578ms (SLO: <13.000ms 📉 -34.0%) vs baseline: +1.1% Memory: ✅ 59.809MB (SLO: <60.000MB 🟡 -0.3%) vs baseline: 📈 +11.7% 📈 iastaspects - 118/118✅ add_aspectTime: ✅ 104.290µs (SLO: <130.000µs 📉 -19.8%) vs baseline: +1.5% Memory: ✅ 43.875MB (SLO: <46.000MB -4.6%) vs baseline: +5.5% ✅ add_inplace_aspectTime: ✅ 100.267µs (SLO: <130.000µs 📉 -22.9%) vs baseline: -2.9% Memory: ✅ 43.964MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ add_inplace_noaspectTime: ✅ 27.946µs (SLO: <40.000µs 📉 -30.1%) vs baseline: -0.6% Memory: ✅ 43.924MB (SLO: <46.000MB -4.5%) vs baseline: +5.7% ✅ add_noaspectTime: ✅ 48.663µs (SLO: <70.000µs 📉 -30.5%) vs baseline: -0.9% Memory: ✅ 43.844MB (SLO: <46.000MB -4.7%) vs baseline: +5.4% ✅ bytearray_aspectTime: ✅ 248.027µs (SLO: <400.000µs 📉 -38.0%) vs baseline: -3.0% Memory: ✅ 43.885MB (SLO: <46.000MB -4.6%) vs baseline: +5.7% ✅ bytearray_extend_aspectTime: ✅ 648.452µs (SLO: <800.000µs 📉 -18.9%) vs baseline: -3.5% Memory: ✅ 43.808MB (SLO: <46.000MB -4.8%) vs baseline: +5.4% ✅ bytearray_extend_noaspectTime: ✅ 263.672µs (SLO: <400.000µs 📉 -34.1%) vs baseline: -2.2% Memory: ✅ 43.902MB (SLO: <46.000MB -4.6%) vs baseline: +5.5% ✅ bytearray_noaspectTime: ✅ 138.098µs (SLO: <300.000µs 📉 -54.0%) vs baseline: -2.0% Memory: ✅ 43.879MB (SLO: <46.000MB -4.6%) vs baseline: +5.4% ✅ bytes_aspectTime: ✅ 218.492µs (SLO: <300.000µs 📉 -27.2%) vs baseline: -0.2% Memory: ✅ 43.898MB (SLO: <46.000MB -4.6%) vs baseline: +5.7% ✅ bytes_noaspectTime: ✅ 133.282µs (SLO: <200.000µs 📉 -33.4%) vs baseline: -0.8% Memory: ✅ 43.849MB (SLO: <46.000MB -4.7%) vs baseline: +5.5% ✅ bytesio_aspectTime: ✅ 3.764ms (SLO: <5.000ms 📉 -24.7%) vs baseline: ~same Memory: ✅ 43.861MB (SLO: <46.000MB -4.7%) vs baseline: +5.5% ✅ bytesio_noaspectTime: ✅ 316.130µs (SLO: <420.000µs 📉 -24.7%) vs baseline: -1.0% Memory: ✅ 43.878MB (SLO: <46.000MB -4.6%) vs baseline: +5.7% ✅ capitalize_aspectTime: ✅ 88.474µs (SLO: <300.000µs 📉 -70.5%) vs baseline: -0.3% Memory: ✅ 43.885MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ capitalize_noaspectTime: ✅ 248.804µs (SLO: <300.000µs 📉 -17.1%) vs baseline: -0.9% Memory: ✅ 43.964MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ casefold_aspectTime: ✅ 88.413µs (SLO: <500.000µs 📉 -82.3%) vs baseline: -0.5% Memory: ✅ 43.944MB (SLO: <46.000MB -4.5%) vs baseline: +5.9% ✅ casefold_noaspectTime: ✅ 302.154µs (SLO: <500.000µs 📉 -39.6%) vs baseline: -0.9% Memory: ✅ 43.939MB (SLO: <46.000MB -4.5%) vs baseline: +5.7% ✅ decode_aspectTime: ✅ 86.780µs (SLO: <100.000µs 📉 -13.2%) vs baseline: +0.6% Memory: ✅ 43.874MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ decode_noaspectTime: ✅ 153.893µs (SLO: <210.000µs 📉 -26.7%) vs baseline: -0.3% Memory: ✅ 43.922MB (SLO: <46.000MB -4.5%) vs baseline: +5.7% ✅ encode_aspectTime: ✅ 84.055µs (SLO: <200.000µs 📉 -58.0%) vs baseline: -0.2% Memory: ✅ 43.901MB (SLO: <46.000MB -4.6%) vs baseline: +5.8% ✅ encode_noaspectTime: ✅ 141.832µs (SLO: <200.000µs 📉 -29.1%) vs baseline: +0.4% Memory: ✅ 43.867MB (SLO: <46.000MB -4.6%) vs baseline: +5.7% ✅ format_aspectTime: ✅ 14.588ms (SLO: <19.200ms 📉 -24.0%) vs baseline: -0.4% Memory: ✅ 44.117MB (SLO: <46.000MB -4.1%) vs baseline: +5.9% ✅ format_map_aspectTime: ✅ 16.335ms (SLO: <21.500ms 📉 -24.0%) vs baseline: -1.1% Memory: ✅ 44.061MB (SLO: <46.000MB -4.2%) vs baseline: +5.7% ✅ format_map_noaspectTime: ✅ 373.698µs (SLO: <500.000µs 📉 -25.3%) vs baseline: -0.6% Memory: ✅ 43.884MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ format_noaspectTime: ✅ 305.363µs (SLO: <500.000µs 📉 -38.9%) vs baseline: -3.2% Memory: ✅ 43.870MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ index_aspectTime: ✅ 138.114µs (SLO: <300.000µs 📉 -54.0%) vs baseline: 📈 +12.3% Memory: ✅ 43.840MB (SLO: <46.000MB -4.7%) vs baseline: +5.6% ✅ index_noaspectTime: ✅ 40.812µs (SLO: <300.000µs 📉 -86.4%) vs baseline: +1.3% Memory: ✅ 43.983MB (SLO: <46.000MB -4.4%) vs baseline: +5.9% ✅ join_aspectTime: ✅ 211.124µs (SLO: <300.000µs 📉 -29.6%) vs baseline: +0.5% Memory: ✅ 43.896MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ join_noaspectTime: ✅ 142.912µs (SLO: <300.000µs 📉 -52.4%) vs baseline: -2.1% Memory: ✅ 43.938MB (SLO: <46.000MB -4.5%) vs baseline: +5.7% ✅ ljust_aspectTime: ✅ 501.906µs (SLO: <700.000µs 📉 -28.3%) vs baseline: -1.2% Memory: ✅ 43.839MB (SLO: <46.000MB -4.7%) vs baseline: +5.5% ✅ ljust_noaspectTime: ✅ 268.944µs (SLO: <300.000µs 📉 -10.4%) vs baseline: +5.0% Memory: ✅ 43.927MB (SLO: <46.000MB -4.5%) vs baseline: +5.7% ✅ lower_aspectTime: ✅ 297.793µs (SLO: <500.000µs 📉 -40.4%) vs baseline: +0.5% Memory: ✅ 43.937MB (SLO: <46.000MB -4.5%) vs baseline: +5.8% ✅ lower_noaspectTime: ✅ 230.845µs (SLO: <300.000µs 📉 -23.1%) vs baseline: -2.1% Memory: ✅ 43.960MB (SLO: <46.000MB -4.4%) vs baseline: +5.7% ✅ lstrip_aspectTime: ✅ 0.274ms (SLO: <3.000ms 📉 -90.9%) vs baseline: ~same Memory: ✅ 43.914MB (SLO: <46.000MB -4.5%) vs baseline: +5.6% ✅ lstrip_noaspectTime: ✅ 0.177ms (SLO: <3.000ms 📉 -94.1%) vs baseline: -0.8% Memory: ✅ 43.869MB (SLO: <46.000MB -4.6%) vs baseline: +5.3% ✅ modulo_aspectTime: ✅ 14.272ms (SLO: <18.750ms 📉 -23.9%) vs baseline: -0.4% Memory: ✅ 43.997MB (SLO: <46.000MB -4.4%) vs baseline: +5.4% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.784ms (SLO: <19.350ms 📉 -23.6%) vs baseline: ~same Memory: ✅ 43.994MB (SLO: <46.000MB -4.4%) vs baseline: +5.7% ✅ modulo_aspect_for_bytesTime: ✅ 14.400ms (SLO: <18.900ms 📉 -23.8%) vs baseline: +0.1% Memory: ✅ 44.104MB (SLO: <46.000MB -4.1%) vs baseline: +5.7% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.730ms (SLO: <19.150ms 📉 -23.1%) vs baseline: +1.0% Memory: ✅ 44.035MB (SLO: <46.000MB -4.3%) vs baseline: +5.4% ✅ modulo_noaspectTime: ✅ 0.357ms (SLO: <3.000ms 📉 -88.1%) vs baseline: -2.4% Memory: ✅ 43.865MB (SLO: <46.000MB -4.6%) vs baseline: +5.7% ✅ replace_aspectTime: ✅ 18.382ms (SLO: <24.000ms 📉 -23.4%) vs baseline: -0.1% Memory: ✅ 44.059MB (SLO: <46.000MB -4.2%) vs baseline: +5.7% ✅ replace_noaspectTime: ✅ 279.590µs (SLO: <400.000µs 📉 -30.1%) vs baseline: -1.0% Memory: ✅ 44.005MB (SLO: <46.000MB -4.3%) vs baseline: +6.0% ✅ repr_aspectTime: ✅ 318.215µs (SLO: <420.000µs 📉 -24.2%) vs baseline: -0.3% Memory: ✅ 43.934MB (SLO: <46.000MB -4.5%) vs baseline: +5.6% ✅ repr_noaspectTime: ✅ 47.247µs (SLO: <90.000µs 📉 -47.5%) vs baseline: +1.1% Memory: ✅ 43.878MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ rstrip_aspectTime: ✅ 385.169µs (SLO: <500.000µs 📉 -23.0%) vs baseline: -0.4% Memory: ✅ 43.935MB (SLO: <46.000MB -4.5%) vs baseline: +5.5% ✅ rstrip_noaspectTime: ✅ 180.933µs (SLO: <300.000µs 📉 -39.7%) vs baseline: -1.0% Memory: ✅ 43.970MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ slice_aspectTime: ✅ 185.394µs (SLO: <300.000µs 📉 -38.2%) vs baseline: +1.5% Memory: ✅ 43.919MB (SLO: <46.000MB -4.5%) vs baseline: +5.6% ✅ slice_noaspectTime: ✅ 54.828µs (SLO: <90.000µs 📉 -39.1%) vs baseline: +1.9% Memory: ✅ 43.862MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ stringio_aspectTime: ✅ 4.391ms (SLO: <5.000ms 📉 -12.2%) vs baseline: 📈 +14.8% Memory: ✅ 43.941MB (SLO: <46.000MB -4.5%) vs baseline: +5.8% ✅ stringio_noaspectTime: ✅ 348.567µs (SLO: <500.000µs 📉 -30.3%) vs baseline: -0.9% Memory: ✅ 43.766MB (SLO: <46.000MB -4.9%) vs baseline: +5.4% ✅ strip_aspectTime: ✅ 276.856µs (SLO: <350.000µs 📉 -20.9%) vs baseline: +1.2% Memory: ✅ 43.917MB (SLO: <46.000MB -4.5%) vs baseline: +5.9% ✅ strip_noaspectTime: ✅ 177.477µs (SLO: <240.000µs 📉 -26.1%) vs baseline: +0.8% Memory: ✅ 43.980MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ swapcase_aspectTime: ✅ 329.241µs (SLO: <500.000µs 📉 -34.2%) vs baseline: -2.7% Memory: ✅ 43.902MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ swapcase_noaspectTime: ✅ 266.738µs (SLO: <400.000µs 📉 -33.3%) vs baseline: -1.9% Memory: ✅ 43.848MB (SLO: <46.000MB -4.7%) vs baseline: +5.6% ✅ title_aspectTime: ✅ 322.118µs (SLO: <500.000µs 📉 -35.6%) vs baseline: -1.3% Memory: ✅ 44.073MB (SLO: <46.000MB -4.2%) vs baseline: +6.0% ✅ title_noaspectTime: ✅ 256.061µs (SLO: <400.000µs 📉 -36.0%) vs baseline: -2.7% Memory: ✅ 43.920MB (SLO: <46.000MB -4.5%) vs baseline: +5.6% ✅ translate_aspectTime: ✅ 490.930µs (SLO: <700.000µs 📉 -29.9%) vs baseline: -1.5% Memory: ✅ 43.862MB (SLO: <46.000MB -4.6%) vs baseline: +5.6% ✅ translate_noaspectTime: ✅ 420.049µs (SLO: <500.000µs 📉 -16.0%) vs baseline: -2.4% Memory: ✅ 43.981MB (SLO: <46.000MB -4.4%) vs baseline: +5.8% ✅ upper_aspectTime: ✅ 294.589µs (SLO: <500.000µs 📉 -41.1%) vs baseline: -1.4% Memory: ✅ 43.960MB (SLO: <46.000MB -4.4%) vs baseline: +5.7% ✅ upper_noaspectTime: ✅ 231.010µs (SLO: <400.000µs 📉 -42.2%) vs baseline: -3.3% Memory: ✅ 43.924MB (SLO: <46.000MB -4.5%) vs baseline: +5.8% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 502.278µs (SLO: <700.000µs 📉 -28.2%) vs baseline: 📈 +18.4% Memory: ✅ 43.686MB (SLO: <46.000MB -5.0%) vs baseline: +5.8% ✅ ospathbasename_noaspectTime: ✅ 428.291µs (SLO: <700.000µs 📉 -38.8%) vs baseline: -1.6% Memory: ✅ 43.651MB (SLO: <46.000MB -5.1%) vs baseline: +5.4% ✅ ospathjoin_aspectTime: ✅ 621.052µs (SLO: <700.000µs 📉 -11.3%) vs baseline: -1.4% Memory: ✅ 43.915MB (SLO: <46.000MB -4.5%) vs baseline: +5.9% ✅ ospathjoin_noaspectTime: ✅ 630.356µs (SLO: <700.000µs -9.9%) vs baseline: -2.0% Memory: ✅ 43.667MB (SLO: <46.000MB -5.1%) vs baseline: +4.9% ✅ ospathnormcase_aspectTime: ✅ 348.999µs (SLO: <700.000µs 📉 -50.1%) vs baseline: -0.7% Memory: ✅ 43.706MB (SLO: <46.000MB -5.0%) vs baseline: +5.5% ✅ ospathnormcase_noaspectTime: ✅ 357.657µs (SLO: <700.000µs 📉 -48.9%) vs baseline: +0.5% Memory: ✅ 43.553MB (SLO: <46.000MB -5.3%) vs baseline: +5.3% ✅ ospathsplit_aspectTime: ✅ 484.883µs (SLO: <700.000µs 📉 -30.7%) vs baseline: -1.3% Memory: ✅ 43.699MB (SLO: <46.000MB -5.0%) ✅ ospathsplit_noaspectTime: ✅ 492.373µs (SLO: <700.000µs 📉 -29.7%) vs baseline: -1.9% Memory: ✅ 43.568MB (SLO: <46.000MB -5.3%) vs baseline: +5.0% ✅ ospathsplitdrive_aspectTime: ✅ 370.725µs (SLO: <700.000µs 📉 -47.0%) vs baseline: -1.6% Memory: ✅ 43.667MB (SLO: <46.000MB -5.1%) vs baseline: +5.4% ✅ ospathsplitdrive_noaspectTime: ✅ 72.929µs (SLO: <700.000µs 📉 -89.6%) vs baseline: -1.3% Memory: ✅ 43.679MB (SLO: <46.000MB -5.0%) vs baseline: +5.3% ✅ ospathsplitext_aspectTime: ✅ 455.936µs (SLO: <700.000µs 📉 -34.9%) vs baseline: -0.5% Memory: ✅ 43.667MB (SLO: <46.000MB -5.1%) vs baseline: +5.6% ✅ ospathsplitext_noaspectTime: ✅ 466.160µs (SLO: <700.000µs 📉 -33.4%) vs baseline: -0.5% Memory: ✅ 43.651MB (SLO: <46.000MB -5.1%) vs baseline: +5.5% 📈 iastaspectssplit - 12/12✅ rsplit_aspectTime: ✅ 160.425µs (SLO: <250.000µs 📉 -35.8%) vs baseline: 📈 +10.1% Memory: ✅ 43.963MB (SLO: <46.000MB -4.4%) vs baseline: +5.7% ✅ rsplit_noaspectTime: ✅ 156.517µs (SLO: <250.000µs 📉 -37.4%) vs baseline: +2.5% Memory: ✅ 43.686MB (SLO: <46.000MB -5.0%) vs baseline: +5.6% ✅ split_aspectTime: ✅ 150.020µs (SLO: <250.000µs 📉 -40.0%) vs baseline: +2.6% Memory: ✅ 43.815MB (SLO: <46.000MB -4.8%) vs baseline: +5.9% ✅ split_noaspectTime: ✅ 156.151µs (SLO: <250.000µs 📉 -37.5%) vs baseline: +1.6% Memory: ✅ 43.631MB (SLO: <46.000MB -5.1%) vs baseline: +5.3% ✅ splitlines_aspectTime: ✅ 148.814µs (SLO: <250.000µs 📉 -40.5%) vs baseline: +1.9% Memory: ✅ 43.865MB (SLO: <46.000MB -4.6%) vs baseline: +6.0% ✅ splitlines_noaspectTime: ✅ 157.634µs (SLO: <250.000µs 📉 -36.9%) vs baseline: +4.6% Memory: ✅ 43.622MB (SLO: <46.000MB -5.2%) vs baseline: +5.2% 🟡 Near SLO Breach (1 suite)🟡 recursivecomputation - 8/8✅ deepTime: ✅ 311.239ms (SLO: <320.950ms -3.0%) vs baseline: -0.1% Memory: ✅ 37.454MB (SLO: <38.750MB -3.3%) vs baseline: +5.6% ✅ deep-profiledTime: ✅ 328.561ms (SLO: <359.150ms -8.5%) vs baseline: -0.3% Memory: ✅ 43.785MB (SLO: <46.000MB -4.8%) vs baseline: +5.5% ✅ mediumTime: ✅ 7.270ms (SLO: <7.400ms 🟡 -1.8%) vs baseline: -0.3% Memory: ✅ 36.392MB (SLO: <38.000MB -4.2%) vs baseline: +6.1% ✅ shallowTime: ✅ 1.013ms (SLO: <1.050ms -3.5%) vs baseline: +1.7% Memory: ✅ 36.274MB (SLO: <38.000MB -4.5%) vs baseline: +5.7%
|
Description
Move crashtracking, runtime metrics, OpenTelemetry signals, and LLMObs out of the preload bootstrap and into dedicated product.py modules that integrate with the product plugin interface (ddtrace.products entry points). Profiling will be migrated in follow-up work.
Key changes:
Additional Notes
Changes generated by Claude Code.