Skip to content

chore(profiling-315): install 3.15 gtest in test/py315 - #19947

Closed
vlad-scherbich wants to merge 8 commits into
vlad/ddtracepy-315-profiling-asyncio-monitoringfrom
vlad/315-profiling-test-install-subdir
Closed

chore(profiling-315): install 3.15 gtest in test/py315#19947
vlad-scherbich wants to merge 8 commits into
vlad/ddtracepy-315-profiling-asyncio-monitoringfrom
vlad/315-profiling-test-install-subdir

Conversation

@vlad-scherbich

@vlad-scherbich vlad-scherbich commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

prev: #19272 | next: #19273

Description

Delta vs #19272.

dd_wrapper_add_test gains optional INSTALL_SUBDIR. Only caller: test_frame_state_315 with INSTALL_SUBDIR py315, so that gtest installs to test/py315/ instead of the shared test/ directory.

build_base_venvs artifact paths include test/test_* and test/py315/test_* so the isolated binary is published for downstream jobs.

The gtest itself stays in #19269. This PR is the keyword, dest, and artifact glob.

Layer Meaning Which PR
Compiled INSTALL_SUBDIR keyword + test/py315 dest this PR
Armed cmake install path + artifact publish this PR
Observable

Testing

Risks

Additional Notes

changelog/no-changelog.

Contributes to #17817

Pre-review checklist

  • The changes have been tested in real services in staging
  • The PR does not result in new crashes

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 30, 2026

Copy link
Copy Markdown

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 16 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-py | core/internal 1/9 — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

DataDog/apm-reliability/dd-trace-py | core/internal 9/9 — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

DataDog/apm-reliability/dd-trace-py | profiling/profile 10/23 — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

View all 16 failed jobs.

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 1dbd9e8 | Docs | View more details | Give us feedback!

vlad-scherbich added a commit that referenced this pull request Aug 30, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from b195640 to 8429205 Compare August 30, 2026 17:38
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 0c96a8f to 203555d Compare August 30, 2026 17:38
vlad-scherbich added a commit that referenced this pull request Aug 30, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch 3 times, most recently from 3ef064a to 9599718 Compare August 30, 2026 18:26
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 203555d to 5448d87 Compare August 30, 2026 18:26
vlad-scherbich added a commit that referenced this pull request Aug 30, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from 9599718 to 62e8b26 Compare August 31, 2026 18:40
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 5448d87 to 8e5a387 Compare August 31, 2026 18:40
vlad-scherbich added a commit that referenced this pull request Aug 31, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from 62e8b26 to adff0bd Compare September 1, 2026 02:33
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 8e5a387 to 54e85d2 Compare September 1, 2026 02:33
vlad-scherbich added a commit that referenced this pull request Sep 1, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from adff0bd to 27d9d25 Compare September 1, 2026 21:29
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 54e85d2 to 7b1598e Compare September 1, 2026 21:29
vlad-scherbich added a commit that referenced this pull request Sep 1, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@pr-commenter

pr-commenter Bot commented Sep 1, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-09-02 19:39:33

Comparing candidate commit 1dbd9e8 in PR branch vlad/315-profiling-test-install-subdir with baseline commit 1fc47d8 in branch main.

📊 Benchmarking dashboard

Found 0 performance improvements and 4 performance regressions! Performance is the same for 579 metrics, 10 unstable metrics, 3 known flaky benchmarks, 15 flaky benchmarks without significant changes.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:httppropagationinject-ids_only

  • 🟥 execution_time [+1.867µs; +2.035µs] or [+11.286%; +12.301%]

scenario:iastaspectsospath-ospathbasename_aspect

  • 🟥 execution_time [+107.906µs; +116.581µs] or [+25.739%; +27.808%]

scenario:telemetryaddmetric-1-count-metric-1-times

  • 🟥 execution_time [+370.702ns; +422.170ns] or [+13.798%; +15.714%]

scenario:tracer-small

  • 🟥 execution_time [+39.158µs; +41.111µs] or [+11.748%; +12.334%]

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:coreapiscenario-context_with_data_listeners

  • unstable execution_time [-761.482ns; +715.860ns] or [-6.837%; +6.428%]

scenario:coreapiscenario-core_dispatch_1_listener

  • unstable execution_time [-37.533ns; +30.562ns] or [-6.016%; +4.899%]

scenario:coreapiscenario-core_dispatch_50_listeners

  • unstable execution_time [-1701.262ns; +1635.652ns] or [-9.867%; +9.486%]

scenario:coreapiscenario-core_dispatch_exception_listeners

  • unstable execution_time [-1342.752ns; +1120.842ns] or [-10.369%; +8.655%]

scenario:coreapiscenario-core_dispatch_listeners

  • unstable execution_time [-326.419ns; +335.208ns] or [-8.795%; +9.031%]

scenario:coreapiscenario-core_dispatch_no_args_listeners

  • unstable execution_time [-263.853ns; +253.794ns] or [-8.934%; +8.593%]

scenario:coreapiscenario-core_dispatch_with_results_1_listener

  • unstable execution_time [-88.000ns; +62.033ns] or [-7.424%; +5.233%]

scenario:coreapiscenario-core_dispatch_with_results_50_listeners

  • unstable execution_time [-3911.536ns; +4154.865ns] or [-9.542%; +10.136%]

scenario:coreapiscenario-core_dispatch_with_results_listeners

  • unstable execution_time [-771.733ns; +769.826ns] or [-9.458%; +9.435%]

scenario:packagesupdateimporteddependencies-import_many_stdlib_cached

  • unstable execution_time [-53.035µs; +57.097µs] or [-9.225%; +9.932%]

Known flaky benchmarks

These benchmarks are marked as flaky and will not trigger a failure. Modify FLAKY_BENCHMARKS_REGEX to control which benchmarks are marked as flaky.

scenario:iastaspects-casefold_noaspect

  • 🟥 execution_time [+44.336µs; +49.705µs] or [+17.888%; +20.054%]

scenario:iastaspects-swapcase_aspect

  • 🟥 execution_time [+32.352µs; +41.732µs] or [+11.300%; +14.576%]

scenario:span-start

  • 🟥 execution_time [+1.721ms; +1.856ms] or [+12.711%; +13.716%]

Known flaky benchmarks without significant changes:

  • scenario:errortrackingflasksqli-baseline
  • scenario:flasksimple-iast-get
  • scenario:iastaspects-casefold_aspect
  • scenario:iastaspects-index_aspect
  • scenario:iastaspects-ljust_noaspect
  • scenario:iastaspects-lower_aspect
  • scenario:iastaspects-replace_aspect
  • scenario:iastaspects-title_noaspect
  • scenario:iastaspects-translate_aspect
  • scenario:iastaspects-translate_noaspect
  • scenario:iastaspects-upper_noaspect
  • scenario:packagespackageforrootmodulemapping-cache_off
  • scenario:packagespackageforrootmodulemapping-cache_on
  • scenario:sethttpmeta-all-enabled
  • scenario:telemetryaddmetric-record-100-metrics

@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from 27d9d25 to a60ce81 Compare September 2, 2026 16:09
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 7b1598e to 3032546 Compare September 2, 2026 16:09
vlad-scherbich added a commit that referenced this pull request Sep 2, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
vlad-scherbich and others added 3 commits September 2, 2026 15:08
…direct patching in _asyncio.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…5+ only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

# Conflicts:
#	ddtrace/profiling/collector/_memalloc_tb.cpp
Keep the >= (3, 15) gate because wrapping is unavailable; reword comments
and the docstring so they cite wrapping-unavailability and PEP 669 (3.12)
instead of API novelty. current_task() RuntimeError is not a 3.15 change.
sys.monitoring is only needed where wrap() cannot run. Restore bytecode
wrap on 3.9–3.14; use PY_RETURN for task creation on 3.15+ only.
Add optional INSTALL_SUBDIR to dd_wrapper_add_test and use it for
test_frame_state_315 so the 3.15-linked binary does not land in the
shared test/ directory after GitLab artifact merge.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from a60ce81 to 71f5eb4 Compare September 2, 2026 19:10
@vlad-scherbich
vlad-scherbich force-pushed the vlad/315-profiling-test-install-subdir branch from 3032546 to 1dbd9e8 Compare September 2, 2026 19:10
vlad-scherbich added a commit that referenced this pull request Sep 2, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/ddtracepy-315-profiling-asyncio-monitoring branch from 71f5eb4 to 3afb092 Compare September 2, 2026 19:34
vlad-scherbich added a commit that referenced this pull request Sep 2, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
@vlad-scherbich

Copy link
Copy Markdown
Contributor Author

Folded into #19269 (df5e2f72de). The only INSTALL_SUBDIR caller is test_frame_state_315, which already lives on #19269; sitting after #19272 implied an asyncio dependency that does not exist. #19273 restacked onto #19272. Not merged.

@vlad-scherbich

Copy link
Copy Markdown
Contributor Author

Closed: folded into #19269, not merged.

vlad-scherbich added a commit that referenced this pull request Sep 2, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
vlad-scherbich added a commit that referenced this pull request Sep 3, 2026
… the live chain

The analysis checklist and stack helpers still encoded a 14-PR official-support tip. Packaging is not done (requires-python stays <3.15), and the live chain is now #19861#19267#19272#19947#19273.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog A changelog entry is not required for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant