Skip to content

Comments

refactor(rc): decouple enablement from registration#16539

Open
P403n1x87 wants to merge 3 commits intomainfrom
gab/refactor/rc-split-registration-enablement
Open

refactor(rc): decouple enablement from registration#16539
P403n1x87 wants to merge 3 commits intomainfrom
gab/refactor/rc-split-registration-enablement

Conversation

@P403n1x87
Copy link
Contributor

@P403n1x87 P403n1x87 commented Feb 17, 2026

Description

We refactor the RC implementation to separate callback registration from product enablement. Generally, callbacks should be registered on product initialisation, while enablement can be deferred to the moment when the product is enabled. We can look into follow-up work on extending the product plugin interface to automatically discover RC callbacks from products and register them automatically (opt-in).

Additional Notes

Changes mostly contributed by Claude Code

@P403n1x87 P403n1x87 added changelog/no-changelog A changelog entry is not required for this PR. AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos labels Feb 17, 2026
@datadog-official

This comment has been minimized.

@pr-commenter
Copy link

pr-commenter bot commented Feb 17, 2026

Performance SLOs

Comparing candidate gab/refactor/rc-split-registration-enablement (13edac7) with baseline main (bf95f7c)

📈 Performance Regressions (1 suite)
📈 iastaspectsospath - 24/24

✅ ospathbasename_aspect

Time: ✅ 511.236µs (SLO: <700.000µs 📉 -27.0%) vs baseline: 📈 +19.6%

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +4.5%


✅ ospathbasename_noaspect

Time: ✅ 431.585µs (SLO: <700.000µs 📉 -38.3%) vs baseline: -0.9%

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.5%


✅ ospathjoin_aspect

Time: ✅ 628.267µs (SLO: <700.000µs 📉 -10.2%) vs baseline: +1.0%

Memory: ✅ 42.684MB (SLO: <46.000MB -7.2%) vs baseline: +5.0%


✅ ospathjoin_noaspect

Time: ✅ 630.923µs (SLO: <700.000µs -9.9%) vs baseline: ~same

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.5%


✅ ospathnormcase_aspect

Time: ✅ 347.376µs (SLO: <700.000µs 📉 -50.4%) vs baseline: -1.0%

Memory: ✅ 42.703MB (SLO: <46.000MB -7.2%) vs baseline: +4.6%


✅ ospathnormcase_noaspect

Time: ✅ 358.850µs (SLO: <700.000µs 📉 -48.7%) vs baseline: +0.2%

Memory: ✅ 42.585MB (SLO: <46.000MB -7.4%) vs baseline: +4.4%


✅ ospathsplit_aspect

Time: ✅ 489.932µs (SLO: <700.000µs 📉 -30.0%) vs baseline: -0.8%

Memory: ✅ 42.802MB (SLO: <46.000MB -7.0%) vs baseline: +4.6%


✅ ospathsplit_noaspect

Time: ✅ 497.747µs (SLO: <700.000µs 📉 -28.9%) vs baseline: -0.6%

Memory: ✅ 42.703MB (SLO: <46.000MB -7.2%) vs baseline: +4.3%


✅ ospathsplitdrive_aspect

Time: ✅ 378.086µs (SLO: <700.000µs 📉 -46.0%) vs baseline: +1.8%

Memory: ✅ 42.566MB (SLO: <46.000MB -7.5%) vs baseline: +4.1%


✅ ospathsplitdrive_noaspect

Time: ✅ 73.554µs (SLO: <700.000µs 📉 -89.5%) vs baseline: +1.5%

Memory: ✅ 42.507MB (SLO: <46.000MB -7.6%) vs baseline: +4.6%


✅ ospathsplitext_aspect

Time: ✅ 458.059µs (SLO: <700.000µs 📉 -34.6%) vs baseline: -0.6%

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.8%


✅ ospathsplitext_noaspect

Time: ✅ 467.228µs (SLO: <700.000µs 📉 -33.3%) vs baseline: +0.5%

Memory: ✅ 42.507MB (SLO: <46.000MB -7.6%) vs baseline: +4.2%

✅ All Tests Passing (2 suites)
iastaspectssplit - 12/12

✅ rsplit_aspect

Time: ✅ 156.546µs (SLO: <250.000µs 📉 -37.4%) vs baseline: +0.9%

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +4.7%


✅ rsplit_noaspect

Time: ✅ 157.024µs (SLO: <250.000µs 📉 -37.2%) vs baseline: -6.0%

Memory: ✅ 42.684MB (SLO: <46.000MB -7.2%) vs baseline: +4.8%


✅ split_aspect

Time: ✅ 149.250µs (SLO: <250.000µs 📉 -40.3%) vs baseline: -3.2%

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.5%


✅ split_noaspect

Time: ✅ 153.853µs (SLO: <250.000µs 📉 -38.5%) vs baseline: -6.7%

Memory: ✅ 42.566MB (SLO: <46.000MB -7.5%) vs baseline: +4.7%


✅ splitlines_aspect

Time: ✅ 145.590µs (SLO: <250.000µs 📉 -41.8%) vs baseline: -4.4%

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +4.4%


✅ splitlines_noaspect

Time: ✅ 150.507µs (SLO: <250.000µs 📉 -39.8%) vs baseline: -6.3%

Memory: ✅ 42.566MB (SLO: <46.000MB -7.5%) vs baseline: +4.5%


iastpropagation - 8/8

✅ no-propagation

Time: ✅ 48.378µs (SLO: <60.000µs 📉 -19.4%) vs baseline: +0.4%

Memory: ✅ 39.027MB (SLO: <42.000MB -7.1%) vs baseline: +4.6%


✅ propagation_enabled

Time: ✅ 136.035µs (SLO: <190.000µs 📉 -28.4%) vs baseline: +0.6%

Memory: ✅ 39.007MB (SLO: <42.000MB -7.1%) vs baseline: +4.6%


✅ propagation_enabled_100

Time: ✅ 1.582ms (SLO: <2.300ms 📉 -31.2%) vs baseline: +1.8%

Memory: ✅ 39.066MB (SLO: <42.000MB -7.0%) vs baseline: +4.5%


✅ propagation_enabled_1000

Time: ✅ 29.147ms (SLO: <34.550ms 📉 -15.6%) vs baseline: +1.1%

Memory: ✅ 39.046MB (SLO: <42.000MB -7.0%) vs baseline: +4.5%

ℹ️ Scenarios Missing SLO Configuration (20 scenarios)

The following scenarios exist in candidate data but have no SLO thresholds configured:

  • iast_aspects-re_expand_aspect
  • iast_aspects-re_expand_noaspect
  • iast_aspects-re_findall_aspect
  • iast_aspects-re_findall_noaspect
  • iast_aspects-re_finditer_aspect
  • iast_aspects-re_finditer_noaspect
  • iast_aspects-re_fullmatch_aspect
  • iast_aspects-re_fullmatch_noaspect
  • iast_aspects-re_group_aspect
  • iast_aspects-re_group_noaspect
  • iast_aspects-re_groups_aspect
  • iast_aspects-re_groups_noaspect
  • iast_aspects-re_match_aspect
  • iast_aspects-re_match_noaspect
  • iast_aspects-re_search_aspect
  • iast_aspects-re_search_noaspect
  • iast_aspects-re_sub_aspect
  • iast_aspects-re_sub_noaspect
  • iast_aspects-re_subn_aspect
  • iast_aspects-re_subn_noaspect

We refactor the RC implementation to separate callback registration from
product enablement.
@P403n1x87 P403n1x87 force-pushed the gab/refactor/rc-split-registration-enablement branch from 43d523f to ef7b2ed Compare February 18, 2026 10:44
@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 18, 2026

Codeowners resolved as

ddtrace/internal/README.md                                              @DataDog/python-guild @DataDog/apm-core-python

@P403n1x87 P403n1x87 marked this pull request as ready for review February 18, 2026 16:16
@P403n1x87 P403n1x87 requested review from a team as code owners February 18, 2026 16:16
@P403n1x87 P403n1x87 requested a review from a team as a code owner February 19, 2026 14:02
@P403n1x87 P403n1x87 requested a review from gnufede February 19, 2026 14:02
@P403n1x87 P403n1x87 requested a review from tylfin February 19, 2026 14:43
@emmettbutler emmettbutler self-requested a review February 19, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos 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.

4 participants