Eight prof-correctness scenarios exercise the profiling stack on 3.14 (baseline) and 3.15 (candidate) for the same workloads. They are the default set when dd-trace-py triggers downstream CI on profiling changes.
| Family | 3.14 (baseline) | 3.15 (candidate) |
|---|---|---|
| cpu (stack) | python_cpu_3.14 |
python_cpu_3.15 |
| exceptions | python_exceptions_3.14 |
python_exceptions_3.15 |
| async-gen | python_async_gen_3.14 |
python_async_gen_3.15 |
| lock | python_lock_3.14 |
python_lock_3.15 |
| Family | Profile type asserted | Collectors / setup |
|---|---|---|
| cpu (stack) | cpu-time + thread name |
Stack via ddtrace-run; memory off; CPU-bound loops |
| exceptions | exception-samples + exception type |
Exception profiler |
| async-gen | wall-time |
Full profiler via ddtrace-run; asyncio async-generator workload |
| lock | lock-acquire + lock-release + lock name |
Lock profiler; threaded lock churn |
Feature-specific pairs (mem_domain, live_heap) and extended coverage (alloc, asyncio, …) land in follow-up PRs.
python_(cpu|exceptions|async_gen|lock)_3\.(14|15)
Override via workflow_dispatch → test_scenarios, or when triggering
downstream-python.yml manually.
- All
*_3.15folders useDDTRACE_INSTALL_URL(excluded frommainCI). - 3.14 folders run on prof-correctness
mainCI against PyPI ddtrace.
export DDTRACE_INSTALL_URL="https://dd-trace-py-builds.s3.amazonaws.com/<commit-sha>/install.sh"
TEST_SCENARIOS='python_(cpu|exceptions|async_gen|lock)_3\.(14|15)' go test -v -run TestScenarios- Gate infra: PR stacking from
vlad/gate-infra - prof-correctness downstream wiring: README