Skip to content

Conversation

@dudikeleti
Copy link
Contributor

@dudikeleti dudikeleti commented Oct 17, 2025

Summary of changes

Improves Code Origin performance through assembly filter caching, and fixes incorrect filter configuration usage.

Implementation details

Added ConcurrentDictionary<Assembly, bool> to cache assembly filter decisions.

Changed entry span filtering to use correct ThirdPartyDetectionExcludes/Includes settings instead of SymDbThirdPartyDetectionExcludes/Includes (which are specific to Symbol Database).

Test coverage

All existing tests

Other details

@dudikeleti dudikeleti requested a review from a team as a code owner October 17, 2025 08:28
@github-actions github-actions bot added area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) area:debugger labels Oct 17, 2025
@dd-trace-dotnet-ci-bot
Copy link

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (72ms)  : 71, 73
     .   : milestone, 72,
    master - mean (72ms)  : 70, 73
     .   : milestone, 72,

    section Baseline
    This PR (7667) - mean (68ms)  : 67, 69
     .   : milestone, 68,
    master - mean (68ms)  : 66, 69
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (1,050ms)  : 999, 1101
     .   : milestone, 1050,
    master - mean (1,048ms)  : 998, 1099
     .   : milestone, 1048,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (106ms)  : 105, 107
     .   : milestone, 106,
    master - mean (107ms)  : 105, 108
     .   : milestone, 107,

    section Baseline
    This PR (7667) - mean (105ms)  : 103, 108
     .   : milestone, 105,
    master - mean (106ms)  : 104, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (743ms)  : 723, 763
     .   : milestone, 743,
    master - mean (746ms)  : 724, 768
     .   : milestone, 746,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (94ms)  : 93, 95
     .   : milestone, 94,
    master - mean (94ms)  : 93, 95
     .   : milestone, 94,

    section Baseline
    This PR (7667) - mean (94ms)  : 92, 96
     .   : milestone, 94,
    master - mean (94ms)  : 92, 96
     .   : milestone, 94,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (709ms)  : 675, 743
     .   : milestone, 709,
    master - mean (706ms)  : 676, 735
     .   : milestone, 706,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (93ms)  : 91, 95
     .   : milestone, 93,
    master - mean (92ms)  : 91, 94
     .   : milestone, 92,

    section Baseline
    This PR (7667) - mean (92ms)  : 90, 94
     .   : milestone, 92,
    master - mean (92ms)  : 90, 94
     .   : milestone, 92,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (660ms)  : 645, 675
     .   : milestone, 660,
    master - mean (661ms)  : 647, 676
     .   : milestone, 661,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (203ms)  : 200, 206
     .   : milestone, 203,
    master - mean (196ms)  : 192, 199
     .   : milestone, 196,

    section Baseline
    This PR (7667) - mean (200ms)  : 197, 204
     .   : milestone, 200,
    master - mean (192ms)  : 189, 196
     .   : milestone, 192,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (1,196ms)  : 1136, 1257
     .   : milestone, 1196,
    master - mean (1,176ms)  : 1098, 1255
     .   : milestone, 1176,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (288ms)  : 283, 293
     .   : milestone, 288,
    master - mean (276ms)  : 273, 280
     .   : milestone, 276,

    section Baseline
    This PR (7667) - mean (286ms)  : 281, 291
     .   : milestone, 286,
    master - mean (276ms)  : 272, 280
     .   : milestone, 276,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (976ms)  : 940, 1012
     .   : milestone, 976,
    master - mean (947ms)  : 902, 991
     .   : milestone, 947,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (281ms)  : 276, 286
     .   : milestone, 281,
    master - mean (269ms)  : 265, 273
     .   : milestone, 269,

    section Baseline
    This PR (7667) - mean (280ms)  : 276, 284
     .   : milestone, 280,
    master - mean (269ms)  : 265, 273
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (954ms)  : 907, 1002
     .   : milestone, 954,
    master - mean (926ms)  : 882, 971
     .   : milestone, 926,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7667) - mean (281ms)  : 276, 287
     .   : milestone, 281,
    master - mean (270ms)  : 266, 274
     .   : milestone, 270,

    section Baseline
    This PR (7667) - mean (280ms)  : 275, 284
     .   : milestone, 280,
    master - mean (268ms)  : 263, 273
     .   : milestone, 268,

    section CallTarget+Inlining+NGEN
    This PR (7667) - mean (884ms)  : 859, 909
     .   : milestone, 884,
    master - mean (858ms)  : 839, 877
     .   : milestone, 858,

Loading

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Oct 17, 2025

⚠️ Tests

⚠️ Warnings

❄️ 1 New flaky test detected

SubmitsOtlpMetrics from Datadog.Trace.ClrProfiler.IntegrationTests.OpenTelemetrySdkTests (Datadog)

+               "attributes": [",metryMetricsMeter",otnet"N_TEMPORALITY_CUMULATIVE"

ℹ️ Info

🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 82408f9 | Docs | Was this helpful? Give us feedback!

Copy link
Collaborator

@OmerRaviv OmerRaviv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dudikeleti dudikeleti merged commit 8b0e147 into master Oct 17, 2025
158 checks passed
@dudikeleti dudikeleti deleted the dudik/co/save-assembly-filter-result branch October 17, 2025 11:54
@github-actions github-actions bot added this to the vNext-v3 milestone Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:debugger area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants