Skip to content

chore(ai_guard): add event tag to root spans#17566

Open
manuel-alvarez-alvarez wants to merge 2 commits intomainfrom
malvarez/ai-guard-event-tag
Open

chore(ai_guard): add event tag to root spans#17566
manuel-alvarez-alvarez wants to merge 2 commits intomainfrom
malvarez/ai-guard-event-tag

Conversation

@manuel-alvarez-alvarez
Copy link
Copy Markdown
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez commented Apr 16, 2026

Description

Adds a new ai_guard.event: true tag to the root span of traces containing AI Guard evaluations.

Testing

Risks

Additional Notes

APPSEC-62216

@manuel-alvarez-alvarez manuel-alvarez-alvarez added ASM Application Security Monitoring changelog/no-changelog A changelog entry is not required for this PR. labels Apr 16, 2026
@cit-pr-commenter-54b7da
Copy link
Copy Markdown

Codeowners resolved as

ddtrace/appsec/_constants.py                                            @DataDog/asm-python
ddtrace/appsec/ai_guard/_api_client.py                                  @DataDog/asm-python
tests/appsec/ai_guard/api/test_api_client.py                            @DataDog/asm-python

@manuel-alvarez-alvarez manuel-alvarez-alvarez marked this pull request as ready for review April 16, 2026 08:54
@manuel-alvarez-alvarez manuel-alvarez-alvarez requested a review from a team as a code owner April 16, 2026 08:54
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Apr 16, 2026

Performance SLOs

Comparing candidate malvarez/ai-guard-event-tag (e16637e) with baseline main (976be4e)

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

✅ ospathbasename_aspect

Time: ✅ 528.529µs (SLO: <700.000µs 📉 -24.5%) vs baseline: 📈 +22.0%

Memory: ✅ 43.803MB (SLO: <46.000MB -4.8%) vs baseline: +5.8%


✅ ospathbasename_noaspect

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

Memory: ✅ 43.870MB (SLO: <46.000MB -4.6%) vs baseline: +5.7%


✅ ospathjoin_aspect

Time: ✅ 628.856µs (SLO: <700.000µs 📉 -10.2%) vs baseline: -1.5%

Memory: ✅ 43.820MB (SLO: <46.000MB -4.7%) vs baseline: +5.7%


✅ ospathjoin_noaspect

Time: ✅ 640.387µs (SLO: <700.000µs -8.5%) vs baseline: -1.2%

Memory: ✅ 43.807MB (SLO: <46.000MB -4.8%) vs baseline: +5.4%


✅ ospathnormcase_aspect

Time: ✅ 351.422µs (SLO: <700.000µs 📉 -49.8%) vs baseline: -1.2%

Memory: ✅ 43.910MB (SLO: <46.000MB -4.5%) vs baseline: +5.7%


✅ ospathnormcase_noaspect

Time: ✅ 360.408µs (SLO: <700.000µs 📉 -48.5%) vs baseline: -2.1%

Memory: ✅ 43.828MB (SLO: <46.000MB -4.7%) vs baseline: +5.7%


✅ ospathsplit_aspect

Time: ✅ 485.599µs (SLO: <700.000µs 📉 -30.6%) vs baseline: -3.2%

Memory: ✅ 43.802MB (SLO: <46.000MB -4.8%) vs baseline: +5.7%


✅ ospathsplit_noaspect

Time: ✅ 501.572µs (SLO: <700.000µs 📉 -28.3%) vs baseline: -1.7%

Memory: ✅ 43.916MB (SLO: <46.000MB -4.5%) vs baseline: +6.1%


✅ ospathsplitdrive_aspect

Time: ✅ 373.763µs (SLO: <700.000µs 📉 -46.6%) vs baseline: -1.7%

Memory: ✅ 43.831MB (SLO: <46.000MB -4.7%) vs baseline: +6.0%


✅ ospathsplitdrive_noaspect

Time: ✅ 73.316µs (SLO: <700.000µs 📉 -89.5%) vs baseline: ~same

Memory: ✅ 43.853MB (SLO: <46.000MB -4.7%) vs baseline: +5.7%


✅ ospathsplitext_aspect

Time: ✅ 467.449µs (SLO: <700.000µs 📉 -33.2%) vs baseline: +0.7%

Memory: ✅ 43.774MB (SLO: <46.000MB -4.8%) vs baseline: +5.3%


✅ ospathsplitext_noaspect

Time: ✅ 470.621µs (SLO: <700.000µs 📉 -32.8%) vs baseline: -1.9%

Memory: ✅ 43.953MB (SLO: <46.000MB -4.4%) vs baseline: +6.2%

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

✅ rsplit_aspect

Time: ✅ 164.845µs (SLO: <250.000µs 📉 -34.1%) vs baseline: +4.7%

Memory: ✅ 43.850MB (SLO: <46.000MB -4.7%) vs baseline: +5.3%


✅ rsplit_noaspect

Time: ✅ 159.054µs (SLO: <250.000µs 📉 -36.4%) vs baseline: -2.5%

Memory: ✅ 43.943MB (SLO: <46.000MB -4.5%) vs baseline: +5.7%


✅ split_aspect

Time: ✅ 150.819µs (SLO: <250.000µs 📉 -39.7%) vs baseline: +1.1%

Memory: ✅ 43.854MB (SLO: <46.000MB -4.7%) vs baseline: +5.1%


✅ split_noaspect

Time: ✅ 157.974µs (SLO: <250.000µs 📉 -36.8%) vs baseline: -0.5%

Memory: ✅ 43.765MB (SLO: <46.000MB -4.9%) vs baseline: +5.3%


✅ splitlines_aspect

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

Memory: ✅ 43.799MB (SLO: <46.000MB -4.8%) vs baseline: +5.2%


✅ splitlines_noaspect

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

Memory: ✅ 43.919MB (SLO: <46.000MB -4.5%) vs baseline: +5.3%


iastpropagation - 8/8

✅ no-propagation

Time: ✅ 48.733µs (SLO: <60.000µs 📉 -18.8%) vs baseline: +0.5%

Memory: ✅ 40.776MB (SLO: <42.000MB -2.9%) vs baseline: +4.9%


✅ propagation_enabled

Time: ✅ 135.438µs (SLO: <190.000µs 📉 -28.7%) vs baseline: +0.8%

Memory: ✅ 40.914MB (SLO: <42.000MB -2.6%) vs baseline: +5.2%


✅ propagation_enabled_100

Time: ✅ 1.553ms (SLO: <2.300ms 📉 -32.5%) vs baseline: -0.2%

Memory: ✅ 40.914MB (SLO: <42.000MB -2.6%) vs baseline: +5.4%


✅ propagation_enabled_1000

Time: ✅ 28.953ms (SLO: <34.550ms 📉 -16.2%) vs baseline: -0.6%

Memory: ✅ 40.855MB (SLO: <42.000MB -2.7%) vs baseline: +5.2%

ℹ️ 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

Comment thread ddtrace/appsec/ai_guard/_api_client.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ASM Application Security Monitoring 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.

2 participants