-
Notifications
You must be signed in to change notification settings - Fork 457
test: test more integrations and products under Python 3.14 #14720
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
Allow users to omit any traces they want by returning none in the user_span_processor method. Motivation: I am trying to prevent some auto traces from cluttering my Datadog observability dashboards. These traces create noise and make it harder to focus on the more critical traces. My LLM observability overview is filled with what is clustered as empty input which is incorrect. e.g. all embedding traces are are just a spammer. To do that, I am using the new span_processor, and the new way to omit specific spans, will be to return null by the relevant span processor. I have added a test for that. The only risk is that there is no indication that span was omitted but I was afraid that a debug log would be too spammy. But please let me know if that will help. Also there are some telemetric collected about sent span which might also need to be changed, will be great to hear your thoughts Co-authored-by: amirbenami <amir@linxsecurity.io>
Annotates LangGraph agents (compiled state graphs, even those created through `create_react_agent`) with the following agent metadata information: - name (always) - tools (always - best effort, depending on the presence of `ToolNode`s within the agent) - instructions (if done through `create_react_agent`) - model name, provider, & settings (if done through `create_react_agent`) - handoffs (always - assuming the agent is directly a part of a supergraph) - framework (always) - dependencies (since state should always be passed in, always) - max_iterations (always, defaulting to 25 if not provided explicitly) Additionally, to help accomplish this, we patch the `create_react_agent` function to record agent manifest data on agent instance creation, should it be invoked. The means of doing this is a bit strange, as it is in completely different submodule (`langgraph.prebuilt`), and it required me to do what I think are some pretty not normal things for patching 😅 so, happy to discuss/change as needed! MLOB-3102 ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Remove importlib_metadata dependency since it is no longer needed. Support for Python 3.7 has been dropped, and dd-trace-py now requires Python 3.8 or later, which includes importlib.metadata in the standard library. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) --------- Co-authored-by: Munir Abdinur <munir_abdinur@hotmail.com> Co-authored-by: Munir Abdinur <munir.abdinur@datadoghq.com>
This PR introduces: - remove of the `_appsec_processor` in the tracer. The appsec processor is now part of the list of regular processors. This fixes several problems. - change the logic order of how appsec is enabled and loaded This is removing 2 static import cycles, only 2 left (none with appsec). Context: Before that PR, the appsec product was loaded through the tracer, by creating an instance of AppSecSpanProcessor. After that PR, the appsec product or the remote config layer will register the AppSecSpanProcessor into the list of regular span processors of the tracer. **Bonus**: As the appsec processor is not reset anymore at fork time by the respawn of the tracer (because it does not depend on the tracer object anymore), it looks like it's also fixing the gap time we could have where appsec was back to factory setting at work respawn time. APPSEC-57505 ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
See builds here https://app.readthedocs.org/projects/ddtrace/builds/?version__slug=taegyunkim-native-cargo-home ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
…nGroup (#14250) ## Description When an Appsec `BlockingException` is raised within a fastapi middleware, it can be aggregated and nested in a `BaseExceptionGroup` multiple levels deep. The behaviour occurs when using http middlewares. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
fixing issue #14258 Also little change to the django app for threats tests to have a regression test. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) --------- Co-authored-by: Brett Langdon <brett.langdon@datadoghq.com>
Follows #14248 and DataDog/images#7477 Also adds parallelism to `azure_functions` tests since they were finishing right around the 20 minute timeout following the upgrade of `azure-functions-core-tools. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
CI Visibility: Fix for a bug introduced in #14115 where session tags would not have the proper count of tests skipped by ITR, counting the suite number instead when ITR is configured at suite level skipping. Regression tests added for both suite level skipping and test level skipping. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Update celery lockfiles and dependency package lockfiles. This performs the following updates: 1) Some celery lockfiles use celery `latest`. This will update celery and dependencies. 2) Some celery lockfiles use a pinned (non-latest) version of celery, but require the `latest` version of another package. This will update all such packages. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) Co-authored-by: quinna-h <175135214+quinna-h@users.noreply.github.com>
Broken out from #14361 `ddtrace.trace.Pin` is being deprecated ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Broken out from #14361 `ddtrace.trace.Pin` is being deprecated ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Following #14113, this PR adds endpoint discovery at startup for Flask. Also: - add blueprints in Flask testing app for threat tests (to make sure blueprints are properly supported) - Improve endpoint discovery test to ensure that we get the expected endpoint reported - Moved endpoint_collection away from asm settings to neutral file endpoints as this is a feature not directly related to security. - Kept flag enabling/disabling this feature inside asm settings as security team will maintain this feature. This was also tested on new endpoint discovery system tests. APPSEC-58374 ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
There isn't much need for the Pin API anymore, we generally encourage environment variable or backend controlled configuration. The big benefit of deprecating and removing this API is because of the performance impact it has on integrations, the operations to check for Pins is very slow, when generally it is expected people to use sane defaults or configure once via env variables. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [ ] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
## Description This PR fixes the tracer flare when `DD_TRACE_AGENT_URL` is not set. `ddtrace.config._trace_agent_url` is `None` when not set, which leads to `Failed to send tracer flare to Zendesk ticket XXXXXXXXX: Unsupported protocol 'b''' in intake URL 'None'. Must be one of: http, https, unix` when sending a flare. This PR makes sure to use the default. ## Motivation Making tracer flares for Python work again ## Testing strategy - Create a VM - Install the agent - Install the tracer with SSI - Create a sample Flask app - Start it with `DD_TRACE_DEBUG=true` - Go to the Datadog UI & trigger a flare for your host (no need to force debug logs) - After a few minutes a Zendesk ticket should be created and contain your tracer flare - You should see a log starting with `Successfully sent the flare to Zendesk ticket` ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) --------- Co-authored-by: Brett Langdon <brett.langdon@datadoghq.com>
This PR adds improved tracking of tool results and definitions to the LLMObs OpenAI integration ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) --------- Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com>
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 239 ± 3 ms. The average import time from base is: 243 ± 3 ms. The import time difference between this PR and base is: -3.8 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate emmett.butler/enable-more-3.14-suites (d03d3ba) with baseline main (bc47ed9) 📈 Performance Regressions (3 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.407µs (SLO: <10.000µs 📉 -95.9%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ add_inplace_aspectTime: ✅ 0.407µs (SLO: <10.000µs 📉 -95.9%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ add_inplace_noaspectTime: ✅ 0.314µs (SLO: <10.000µs 📉 -96.9%) vs baseline: -1.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ add_noaspectTime: ✅ 0.276µs (SLO: <10.000µs 📉 -97.2%) vs baseline: ~same Memory: ✅ 37.749MB (SLO: <39.000MB -3.2%) vs baseline: +5.1% ✅ bytearray_aspectTime: ✅ 1.485µs (SLO: <10.000µs 📉 -85.2%) vs baseline: 📈 +11.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ bytearray_extend_aspectTime: ✅ 1.574µs (SLO: <10.000µs 📉 -84.3%) vs baseline: +3.8% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ bytearray_extend_noaspectTime: ✅ 0.610µs (SLO: <10.000µs 📉 -93.9%) vs baseline: -0.6% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ bytearray_noaspectTime: ✅ 0.481µs (SLO: <10.000µs 📉 -95.2%) vs baseline: -0.5% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ bytes_aspectTime: ✅ 1.359µs (SLO: <10.000µs 📉 -86.4%) vs baseline: +4.4% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ bytes_noaspectTime: ✅ 0.495µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.9% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ bytesio_aspectTime: ✅ 1.364µs (SLO: <10.000µs 📉 -86.4%) vs baseline: -0.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ bytesio_noaspectTime: ✅ 0.495µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -1.0% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ capitalize_aspectTime: ✅ 0.741µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +0.8% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ capitalize_noaspectTime: ✅ 0.435µs (SLO: <10.000µs 📉 -95.6%) vs baseline: -0.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ casefold_aspectTime: ✅ 0.736µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ casefold_noaspectTime: ✅ 0.375µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +1.9% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ decode_aspectTime: ✅ 0.725µs (SLO: <10.000µs 📉 -92.7%) vs baseline: ~same Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ decode_noaspectTime: ✅ 0.419µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -1.2% Memory: ✅ 37.749MB (SLO: <39.000MB -3.2%) vs baseline: +5.0% ✅ encode_aspectTime: ✅ 0.710µs (SLO: <10.000µs 📉 -92.9%) vs baseline: -0.2% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ encode_noaspectTime: ✅ 0.404µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ format_aspectTime: ✅ 3.364µs (SLO: <10.000µs 📉 -66.4%) vs baseline: -0.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ format_map_aspectTime: ✅ 3.589µs (SLO: <10.000µs 📉 -64.1%) vs baseline: -1.5% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.8% ✅ format_map_noaspectTime: ✅ 0.776µs (SLO: <10.000µs 📉 -92.2%) vs baseline: -0.5% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ format_noaspectTime: ✅ 0.601µs (SLO: <10.000µs 📉 -94.0%) vs baseline: +1.3% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ index_aspectTime: ✅ 0.362µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +0.8% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ index_noaspectTime: ✅ 0.278µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -0.6% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ join_aspectTime: ✅ 1.365µs (SLO: <10.000µs 📉 -86.3%) vs baseline: ~same Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ join_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.5% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ ljust_aspectTime: ✅ 2.549µs (SLO: <20.000µs 📉 -87.3%) vs baseline: -0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ ljust_noaspectTime: ✅ 0.406µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +0.8% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.8% ✅ lower_aspectTime: ✅ 2.395µs (SLO: <10.000µs 📉 -76.1%) vs baseline: +8.7% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ lower_noaspectTime: ✅ 0.366µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.1% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ lstrip_aspectTime: ✅ 2.495µs (SLO: <20.000µs 📉 -87.5%) vs baseline: 📈 +12.3% Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +4.7% ✅ lstrip_noaspectTime: ✅ 0.380µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -1.0% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ modulo_aspectTime: ✅ 0.997µs (SLO: <10.000µs 📉 -90.0%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.543µs (SLO: <10.000µs 📉 -84.6%) vs baseline: -0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ modulo_aspect_for_bytesTime: ✅ 0.977µs (SLO: <10.000µs 📉 -90.2%) vs baseline: -0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.243µs (SLO: <10.000µs 📉 -87.6%) vs baseline: -0.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ modulo_noaspectTime: ✅ 0.633µs (SLO: <10.000µs 📉 -93.7%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.1% ✅ replace_aspectTime: ✅ 4.836µs (SLO: <10.000µs 📉 -51.6%) vs baseline: +0.3% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ replace_noaspectTime: ✅ 0.460µs (SLO: <10.000µs 📉 -95.4%) vs baseline: -0.7% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ repr_aspectTime: ✅ 0.910µs (SLO: <10.000µs 📉 -90.9%) vs baseline: ~same Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ repr_noaspectTime: ✅ 0.416µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -0.5% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ rstrip_aspectTime: ✅ 1.934µs (SLO: <20.000µs 📉 -90.3%) vs baseline: +0.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ rstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ slice_aspectTime: ✅ 0.490µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -1.3% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ slice_noaspectTime: ✅ 0.448µs (SLO: <10.000µs 📉 -95.5%) vs baseline: +0.1% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ stringio_aspectTime: ✅ 1.569µs (SLO: <10.000µs 📉 -84.3%) vs baseline: +0.6% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ stringio_noaspectTime: ✅ 0.716µs (SLO: <10.000µs 📉 -92.8%) vs baseline: -0.5% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ strip_aspectTime: ✅ 2.511µs (SLO: <20.000µs 📉 -87.4%) vs baseline: 📈 +13.7% Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +4.9% ✅ strip_noaspectTime: ✅ 0.388µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ swapcase_aspectTime: ✅ 2.571µs (SLO: <10.000µs 📉 -74.3%) vs baseline: +6.6% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ swapcase_noaspectTime: ✅ 0.536µs (SLO: <10.000µs 📉 -94.6%) vs baseline: -0.6% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.8% ✅ title_aspectTime: ✅ 2.419µs (SLO: <10.000µs 📉 -75.8%) vs baseline: +3.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 0.503µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ translate_aspectTime: ✅ 3.227µs (SLO: <10.000µs 📉 -67.7%) vs baseline: -0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ translate_noaspectTime: ✅ 1.048µs (SLO: <10.000µs 📉 -89.5%) vs baseline: +0.5% Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +4.4% ✅ upper_aspectTime: ✅ 2.218µs (SLO: <10.000µs 📉 -77.8%) vs baseline: +0.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 0.373µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +1.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.858µs (SLO: <10.000µs 📉 -51.4%) vs baseline: 📈 +16.7% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ ospathbasename_noaspectTime: ✅ 1.078µs (SLO: <10.000µs 📉 -89.2%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ ospathjoin_aspectTime: ✅ 6.168µs (SLO: <10.000µs 📉 -38.3%) vs baseline: +0.9% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathjoin_noaspectTime: ✅ 2.303µs (SLO: <10.000µs 📉 -77.0%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathnormcase_aspectTime: ✅ 3.959µs (SLO: <10.000µs 📉 -60.4%) vs baseline: 📈 +14.1% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ ospathnormcase_noaspectTime: ✅ 0.571µs (SLO: <10.000µs 📉 -94.3%) vs baseline: +0.4% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.6% ✅ ospathsplit_aspectTime: ✅ 4.723µs (SLO: <10.000µs 📉 -52.8%) vs baseline: -0.4% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ ospathsplit_noaspectTime: ✅ 1.593µs (SLO: <10.000µs 📉 -84.1%) vs baseline: -0.1% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathsplitdrive_aspectTime: ✅ 3.617µs (SLO: <10.000µs 📉 -63.8%) vs baseline: -0.5% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ ospathsplitdrive_noaspectTime: ✅ 0.700µs (SLO: <10.000µs 📉 -93.0%) vs baseline: +0.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ ospathsplitext_aspectTime: ✅ 4.516µs (SLO: <10.000µs 📉 -54.8%) vs baseline: +1.9% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathsplitext_noaspectTime: ✅ 1.397µs (SLO: <10.000µs 📉 -86.0%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.6% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.341µs (SLO: <20.000µs 📉 -83.3%) vs baseline: +8.1% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 1-count-metrics-100-timesTime: ✅ 210.672µs (SLO: <250.000µs 📉 -15.7%) vs baseline: -0.7% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.1% ✅ 1-distribution-metric-1-timesTime: ✅ 3.211µs (SLO: <20.000µs 📉 -83.9%) vs baseline: 📈 +10.9% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +5.1% ✅ 1-distribution-metrics-100-timesTime: ✅ 191.436µs (SLO: <220.000µs 📉 -13.0%) vs baseline: +0.6% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.1% ✅ 1-gauge-metric-1-timesTime: ✅ 2.072µs (SLO: <20.000µs 📉 -89.6%) vs baseline: +0.8% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.8% ✅ 1-gauge-metrics-100-timesTime: ✅ 125.141µs (SLO: <150.000µs 📉 -16.6%) vs baseline: +0.4% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 1-rate-metric-1-timesTime: ✅ 3.152µs (SLO: <20.000µs 📉 -84.2%) vs baseline: +0.7% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 1-rate-metrics-100-timesTime: ✅ 211.635µs (SLO: <250.000µs 📉 -15.3%) vs baseline: -0.3% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +5.1% ✅ 100-count-metrics-100-timesTime: ✅ 21.428ms (SLO: <23.500ms -8.8%) vs baseline: ~same Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.8% ✅ 100-distribution-metrics-100-timesTime: ✅ 1.994ms (SLO: <2.250ms 📉 -11.4%) vs baseline: +0.6% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.9% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.289ms (SLO: <1.550ms 📉 -16.8%) vs baseline: +0.3% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 100-rate-metrics-100-timesTime: ✅ 2.204ms (SLO: <2.550ms 📉 -13.5%) vs baseline: -0.3% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ flush-1-metricTime: ✅ 4.552µs (SLO: <20.000µs 📉 -77.2%) vs baseline: 📈 +10.0% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +5.1% ✅ flush-100-metricsTime: ✅ 180.890µs (SLO: <250.000µs 📉 -27.6%) vs baseline: -1.5% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ flush-1000-metricsTime: ✅ 2.201ms (SLO: <2.500ms 📉 -11.9%) vs baseline: +0.4% Memory: ✅ 32.873MB (SLO: <34.500MB -4.7%) vs baseline: +5.0% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.424ms (SLO: <22.300ms -8.4%) vs baseline: +0.1% Memory: ✅ 65.468MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.348ms (SLO: <1.450ms -7.0%) vs baseline: +0.3% Memory: ✅ 64.389MB (SLO: <67.000MB -3.9%) vs baseline: +4.6% ✅ iastTime: ✅ 20.503ms (SLO: <22.250ms -7.9%) vs baseline: +0.3% Memory: ✅ 65.517MB (SLO: <67.000MB -2.2%) vs baseline: +4.8% ✅ profilerTime: ✅ 15.217ms (SLO: <16.550ms -8.1%) vs baseline: -0.8% Memory: ✅ 53.703MB (SLO: <54.500MB 🟡 -1.5%) vs baseline: +4.7% ✅ resource-renamingTime: ✅ 20.580ms (SLO: <21.750ms -5.4%) vs baseline: ~same Memory: ✅ 65.493MB (SLO: <67.000MB -2.2%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 26.233ms (SLO: <28.200ms -7.0%) vs baseline: +0.2% Memory: ✅ 67.570MB (SLO: <69.500MB -2.8%) vs baseline: +4.8% ✅ tracerTime: ✅ 20.440ms (SLO: <21.750ms -6.0%) vs baseline: -0.2% Memory: ✅ 65.432MB (SLO: <67.000MB -2.3%) vs baseline: +4.7% ✅ tracer-and-profilerTime: ✅ 21.959ms (SLO: <23.500ms -6.6%) vs baseline: -0.2% Memory: ✅ 66.807MB (SLO: <67.500MB 🟡 -1.0%) vs baseline: +5.4% ✅ tracer-dont-create-db-spansTime: ✅ 19.324ms (SLO: <21.500ms 📉 -10.1%) vs baseline: -0.1% Memory: ✅ 65.495MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.571ms (SLO: <17.500ms -5.3%) vs baseline: -0.4% Memory: ✅ 65.185MB (SLO: <66.000MB 🟡 -1.2%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.449ms (SLO: <21.750ms -6.0%) vs baseline: -0.2% Memory: ✅ 71.498MB (SLO: <72.500MB 🟡 -1.4%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 18.397ms (SLO: <19.650ms -6.4%) vs baseline: +0.3% Memory: ✅ 65.232MB (SLO: <67.000MB -2.6%) vs baseline: +4.4% ✅ tracer-no-databasesTime: ✅ 18.790ms (SLO: <20.100ms -6.5%) vs baseline: ~same Memory: ✅ 65.168MB (SLO: <67.000MB -2.7%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 20.109ms (SLO: <21.500ms -6.5%) vs baseline: ~same Memory: ✅ 65.476MB (SLO: <67.000MB -2.3%) vs baseline: +4.7% ✅ tracer-no-templatesTime: ✅ 20.305ms (SLO: <22.000ms -7.7%) vs baseline: ~same Memory: ✅ 65.491MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.138ms (SLO: <19.850ms -8.6%) vs baseline: +0.5% Memory: ✅ 65.264MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.077ms (SLO: <19.400ms -6.8%) vs baseline: ~same Memory: ✅ 65.313MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.065ms (SLO: <19.450ms -7.1%) vs baseline: +0.1% Memory: ✅ 65.274MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.7% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.587ms (SLO: <4.750ms -3.4%) vs baseline: +0.6% Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.561ms (SLO: <6.750ms -2.8%) vs baseline: ~same Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +5.1% ✅ appsec-telemetryTime: ✅ 4.566ms (SLO: <4.750ms -3.9%) vs baseline: ~same Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.853ms (SLO: <2.000ms -7.4%) vs baseline: -0.2% Memory: ✅ 45.416MB (SLO: <47.000MB -3.4%) vs baseline: +4.8% ✅ iast-getTime: ✅ 1.885ms (SLO: <2.000ms -5.7%) vs baseline: +0.8% Memory: ✅ 42.349MB (SLO: <49.000MB 📉 -13.6%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.910ms (SLO: <2.100ms -9.1%) vs baseline: ~same Memory: ✅ 46.478MB (SLO: <47.000MB 🟡 -1.1%) vs baseline: +4.6% ✅ resource-renamingTime: ✅ 3.379ms (SLO: <3.650ms -7.4%) vs baseline: -0.3% Memory: ✅ 52.219MB (SLO: <53.500MB -2.4%) vs baseline: +4.7% ✅ tracerTime: ✅ 3.372ms (SLO: <3.650ms -7.6%) vs baseline: ~same Memory: ✅ 52.199MB (SLO: <53.500MB -2.4%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 3.366ms (SLO: <3.650ms -7.8%) vs baseline: ~same Memory: ✅ 58.026MB (SLO: <60.000MB -3.3%) vs baseline: +4.7% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 45.227ms (SLO: <47.150ms -4.1%) vs baseline: +0.2% Memory: ✅ 45.236MB (SLO: <47.000MB -3.8%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 320.076ms (SLO: <344.800ms -7.2%) vs baseline: -0.5% Memory: ✅ 554.074MB (SLO: <562.000MB 🟡 -1.4%) vs baseline: +5.0% ✅ add-tagsTime: ✅ 290.723ms (SLO: <314.000ms -7.4%) vs baseline: -0.3% Memory: ✅ 555.327MB (SLO: <563.500MB 🟡 -1.5%) vs baseline: +5.1% ✅ get-contextTime: ✅ 82.725ms (SLO: <92.350ms 📉 -10.4%) vs baseline: ~same Memory: ✅ 40.240MB (SLO: <46.500MB 📉 -13.5%) vs baseline: +4.8% ✅ is-recordingTime: ✅ 42.926ms (SLO: <44.500ms -3.5%) vs baseline: ~same Memory: ✅ 44.604MB (SLO: <47.500MB -6.1%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 61.549ms (SLO: <67.650ms -9.0%) vs baseline: ~same Memory: ✅ 40.576MB (SLO: <47.000MB 📉 -13.7%) vs baseline: +4.6% ✅ set-statusTime: ✅ 48.692ms (SLO: <50.400ms -3.4%) vs baseline: +0.4% Memory: ✅ 44.631MB (SLO: <47.000MB -5.0%) vs baseline: +4.8% ✅ startTime: ✅ 42.096ms (SLO: <43.450ms -3.1%) vs baseline: ~same Memory: ✅ 44.615MB (SLO: <47.000MB -5.1%) vs baseline: +4.8% ✅ start-finishTime: ✅ 83.183ms (SLO: <88.000ms -5.5%) vs baseline: ~same Memory: ✅ 34.623MB (SLO: <46.500MB 📉 -25.5%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 84.752ms (SLO: <89.000ms -4.8%) vs baseline: +0.5% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.7% ✅ update-nameTime: ✅ 44.120ms (SLO: <45.150ms -2.3%) vs baseline: +0.2% Memory: ✅ 44.886MB (SLO: <47.000MB -4.5%) vs baseline: +4.6%
|
for some reason there are two musllinux wheels available: cp314 and cp314t
for some reason there are two musllinux wheels available: cp314 and cp314t
This change runs most of the test suite against Python 3.14.0rc1. There are additional suites enabled in #14720 Exceptions: riot envs and products that are not tested under 3.14 for various reasons * Profiling - doesn't work with 3.14 * IAST - doesn't work with 3.14 * datastreams - integration incompatible * dd_coverage - doesn't work with 3.14 * lib_injection - #14729 * vertica - hasn't been supported by ddtracepy since Python 3.9 * bottle - hasn't been supported by ddtracepy since Python 3.10 * django - django version 6.1, which will be compatible with Python 3.14, is not yet released * django_hosts - django version 6.1, which will be compatible with Python 3.14, is not yet released * djangorestframework - django version 6.1, which will be compatible with Python 3.14, is not yet released * django:celery - django version 6.1, which will be compatible with Python 3.14, is not yet released * dramatiq - dramatiq doesn't yet have a release supporting 3.14 * pynamodb - tests aren't compatible with Python >= 3.12 * pytest - integration incompatible * pytest_plugin_v2 - doesn't work with Python >= 3.13 * asynctest - untested since Python 3.9 * grpc_aio - some tests in the suite don't work with pytest-asyncio >= 1.0 * rq - integration incompatible * rediscluster - untested since Python 3.11 * aredis - untested since Python 3.9 * yaaredis - untested since Python 3.10 * sqlite3 - pysqlite3-binary doesn't yet support python 3.14 * opentelemetry - opentelemetry-exporter-otlp doesn't yet work with Python 3.14 * openai - tiktoken doesn't yet work with Python 3.14 * openai_agents - integration incompatible * langchain - doesn't work with 3.14 * langgraph - tiktoken doesn't yet work with Python 3.14 * litellm - tiktoken doesn't yet work with Python 3.14 * google_generativeai - protobuf doesn't yet work with Python 3.14 * vertexai - integration incompatible * crewai - tiktoken doesn't yet work with Python 3.14 * ray - ray doesn't yet work with Python 3.14 * kafka - confluent-kafka doesn't yet work with Python 3.14 * aws_lambda - datadog-lambda doesn't yet work with Python 3.14 * azure_functions - untested since Python 3.11 * llmobs - ragas doesn't yet work with Python 3.14 * ai_guard_langchain - tiktoken doesn't yet work with Python 3.14 --------- Co-authored-by: kyle <kyle@verhoog.ca> Co-authored-by: amirbenami <amir@linxsecurity.io> Co-authored-by: Sam Brenner <106700075+sabrenner@users.noreply.github.com> Co-authored-by: Mohammad A Islam <73513662+chojomok@users.noreply.github.com> Co-authored-by: Munir Abdinur <munir_abdinur@hotmail.com> Co-authored-by: Munir Abdinur <munir.abdinur@datadoghq.com> Co-authored-by: Christophe Papazian <114495376+christophe-papazian@users.noreply.github.com> Co-authored-by: Taegyun Kim <taegyun.kim@datadoghq.com> Co-authored-by: Florentin Labelle <florentin.labelle@datadoghq.com> Co-authored-by: Brett Langdon <brett.langdon@datadoghq.com> Co-authored-by: Duncan Harvey <35278470+duncanpharvey@users.noreply.github.com> Co-authored-by: Federico Mon <federico.mon@datadoghq.com> Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com> Co-authored-by: quinna-h <175135214+quinna-h@users.noreply.github.com> Co-authored-by: Emmett Butler <emmett.butler321@gmail.com> Co-authored-by: Baptiste Foy <baptiste.foy@datadoghq.com> Co-authored-by: maxzhangdd <max.zhang@datadoghq.com> Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com> Co-authored-by: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Co-authored-by: Taegyun Kim <k.taegyun@gmail.com> Co-authored-by: Gabriele N. Tornetta <P403n1x87@users.noreply.github.com>
This change updates the riotfile to run 3.14 tests for all suites that i was able to get working that were not already enabled in #14264.