Skip to content

Check for labels in PRs.#8107

Merged
NachoEchevarria merged 8 commits intomasterfrom
nacho/ValidatePRLabels
Feb 2, 2026
Merged

Check for labels in PRs.#8107
NachoEchevarria merged 8 commits intomasterfrom
nacho/ValidatePRLabels

Conversation

@NachoEchevarria
Copy link
Collaborator

@NachoEchevarria NachoEchevarria commented Jan 27, 2026

Summary of changes

This PR adds automated validation to ensure all pull requests have at least one label before merging. This eliminates the manual step of checking for unlabeled PRs during the release process.

Reason for change

During releases, we currently need to manually:

  1. Check if there are any PRs without labels in the release milestone
  2. Add appropriate labels to any unlabeled PRs
  3. Ensure proper categorization for release notes generation

This PR implements automated label validation that runs on every pull request:

  1. Auto-labeling: Existing workflow automatically adds labels based on PR title and changed files
  2. Validation: New validation step immediately checks that at least one label was applied
  3. Enforcement: PRs without labels fail the GitHub Actions check, blocking merge

Implementation details

Test coverage

Other details

@github-actions github-actions bot added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Jan 27, 2026
@NachoEchevarria NachoEchevarria removed the area:builds project files, build scripts, pipelines, versioning, releases, packages label Jan 27, 2026
@github-actions github-actions bot added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Jan 27, 2026
@NachoEchevarria NachoEchevarria marked this pull request as ready for review January 27, 2026 17:06
@NachoEchevarria NachoEchevarria requested a review from a team as a code owner January 27, 2026 17:06
@NachoEchevarria NachoEchevarria changed the title Check for labels in PR. Check for labels in PRs. Jan 27, 2026
@dd-trace-dotnet-ci-bot
Copy link

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (8107) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration68.23 ± (68.26 - 68.58) ms68.74 ± (68.91 - 69.21) ms+0.8%✅⬆️
.NET Framework 4.8 - Bailout
duration72.14 ± (72.05 - 72.29) ms72.59 ± (72.60 - 72.85) ms+0.6%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1015.80 ± (1017.16 - 1023.60) ms1028.12 ± (1036.91 - 1048.21) ms+1.2%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms21.78 ± (21.75 - 21.81) ms22.02 ± (21.99 - 22.06) ms+1.1%✅⬆️
process.time_to_main_ms78.80 ± (78.62 - 78.98) ms79.43 ± (79.27 - 79.60) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.90 ± (10.89 - 10.90) MB10.91 ± (10.91 - 10.92) MB+0.1%✅⬆️
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms21.78 ± (21.76 - 21.81) ms21.90 ± (21.88 - 21.92) ms+0.5%✅⬆️
process.time_to_main_ms79.79 ± (79.70 - 79.87) ms80.56 ± (80.44 - 80.69) ms+1.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.93 ± (10.93 - 10.93) MB10.95 ± (10.95 - 10.95) MB+0.2%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms239.21 ± (235.54 - 242.87) ms240.89 ± (237.48 - 244.30) ms+0.7%✅⬆️
process.time_to_main_ms474.58 ± (474.10 - 475.07) ms476.30 ± (475.71 - 476.89) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.58 ± (48.56 - 48.60) MB48.63 ± (48.60 - 48.66) MB+0.1%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.1%
.NET 6 - Baseline
process.internal_duration_ms20.65 ± (20.62 - 20.67) ms20.75 ± (20.72 - 20.77) ms+0.5%✅⬆️
process.time_to_main_ms68.36 ± (68.22 - 68.50) ms68.81 ± (68.70 - 68.92) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.60 - 10.61) MB10.63 ± (10.63 - 10.63) MB+0.3%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms20.58 ± (20.55 - 20.60) ms20.62 ± (20.60 - 20.64) ms+0.2%✅⬆️
process.time_to_main_ms69.19 ± (69.12 - 69.25) ms69.59 ± (69.51 - 69.68) ms+0.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.66 ± (10.65 - 10.66) MB10.72 ± (10.72 - 10.73) MB+0.6%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms250.11 ± (248.99 - 251.23) ms249.71 ± (248.26 - 251.16) ms-0.2%
process.time_to_main_ms452.99 ± (452.48 - 453.49) ms453.02 ± (452.57 - 453.47) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed49.39 ± (49.36 - 49.42) MB49.39 ± (49.37 - 49.42) MB+0.0%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.1%
.NET 8 - Baseline
process.internal_duration_ms18.72 ± (18.70 - 18.75) ms18.95 ± (18.93 - 18.97) ms+1.2%✅⬆️
process.time_to_main_ms67.35 ± (67.25 - 67.44) ms67.85 ± (67.74 - 67.96) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.67 ± (7.67 - 7.68) MB7.68 ± (7.67 - 7.68) MB+0.1%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms18.79 ± (18.76 - 18.81) ms18.92 ± (18.89 - 18.95) ms+0.7%✅⬆️
process.time_to_main_ms68.42 ± (68.36 - 68.48) ms68.95 ± (68.87 - 69.02) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.76 ± (7.75 - 7.77) MB7.73 ± (7.72 - 7.74) MB-0.4%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms177.17 ± (176.30 - 178.04) ms177.82 ± (176.91 - 178.72) ms+0.4%✅⬆️
process.time_to_main_ms434.46 ± (433.89 - 435.02) ms436.39 ± (435.79 - 437.00) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.65 ± (36.62 - 36.67) MB36.69 ± (36.66 - 36.72) MB+0.1%✅⬆️
runtime.dotnet.threads.count26 ± (26 - 26)26 ± (26 - 26)+0.0%

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration195.34 ± (195.95 - 196.95) ms195.78 ± (195.93 - 196.81) ms+0.2%✅⬆️
.NET Framework 4.8 - Bailout
duration203.12 ± (202.51 - 203.97) ms199.56 ± (199.27 - 200.11) ms-1.8%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1153.57 ± (1155.32 - 1165.18) ms1147.04 ± (1150.63 - 1159.46) ms-0.6%
.NET Core 3.1 - Baseline
process.internal_duration_ms188.70 ± (188.37 - 189.02) ms189.00 ± (188.62 - 189.38) ms+0.2%✅⬆️
process.time_to_main_ms81.80 ± (81.55 - 82.05) ms81.99 ± (81.70 - 82.27) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.11 ± (16.08 - 16.13) MB16.09 ± (16.06 - 16.12) MB-0.1%
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (19 - 20)-0.2%
.NET Core 3.1 - Bailout
process.internal_duration_ms187.91 ± (187.59 - 188.22) ms189.04 ± (188.70 - 189.38) ms+0.6%✅⬆️
process.time_to_main_ms82.62 ± (82.44 - 82.79) ms83.49 ± (83.31 - 83.66) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.17 ± (16.15 - 16.20) MB16.13 ± (16.11 - 16.15) MB-0.3%
runtime.dotnet.threads.count21 ± (20 - 21)21 ± (21 - 21)+0.3%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms422.67 ± (419.31 - 426.03) ms435.77 ± (432.83 - 438.70) ms+3.1%✅⬆️
process.time_to_main_ms480.43 ± (479.68 - 481.18) ms483.05 ± (482.34 - 483.76) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed59.12 ± (59.00 - 59.24) MB58.83 ± (58.71 - 58.96) MB-0.5%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms192.98 ± (192.62 - 193.34) ms193.91 ± (193.55 - 194.26) ms+0.5%✅⬆️
process.time_to_main_ms70.83 ± (70.60 - 71.06) ms71.40 ± (71.21 - 71.58) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.04 ± (15.90 - 16.19) MB16.33 ± (16.28 - 16.38) MB+1.8%✅⬆️
runtime.dotnet.threads.count19 ± (18 - 19)19 ± (19 - 19)+1.5%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms193.02 ± (192.60 - 193.44) ms193.17 ± (192.81 - 193.52) ms+0.1%✅⬆️
process.time_to_main_ms71.91 ± (71.76 - 72.06) ms72.25 ± (72.09 - 72.41) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.13 ± (16.00 - 16.27) MB16.47 ± (16.43 - 16.50) MB+2.1%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+2.6%✅⬆️
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms443.41 ± (439.98 - 446.83) ms442.31 ± (438.73 - 445.89) ms-0.2%
process.time_to_main_ms460.59 ± (459.90 - 461.28) ms460.53 ± (459.93 - 461.13) ms-0.0%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed59.13 ± (59.00 - 59.26) MB59.20 ± (59.07 - 59.33) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms192.52 ± (192.11 - 192.93) ms191.44 ± (191.15 - 191.74) ms-0.6%
process.time_to_main_ms70.57 ± (70.37 - 70.77) ms70.57 ± (70.37 - 70.77) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.77 ± (11.74 - 11.79) MB11.78 ± (11.74 - 11.81) MB+0.1%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.1%
.NET 8 - Bailout
process.internal_duration_ms192.55 ± (192.07 - 193.02) ms190.89 ± (190.57 - 191.20) ms-0.9%
process.time_to_main_ms71.90 ± (71.72 - 72.08) ms71.70 ± (71.56 - 71.83) ms-0.3%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.76 ± (11.74 - 11.78) MB11.80 ± (11.78 - 11.82) MB+0.3%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.3%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms371.25 ± (369.87 - 372.62) ms367.41 ± (365.98 - 368.85) ms-1.0%
process.time_to_main_ms446.99 ± (446.05 - 447.93) ms443.08 ± (442.25 - 443.91) ms-0.9%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed48.45 ± (48.42 - 48.48) MB48.43 ± (48.39 - 48.47) MB-0.0%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.4%✅⬆️
Comparison explanation

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 highlighted 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).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (69ms)  : 67, 71
    master - mean (68ms)  : 66, 70

    section Bailout
    This PR (8107) - mean (73ms)  : 71, 74
    master - mean (72ms)  : 71, 73

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (1,043ms)  : 959, 1127
    master - mean (1,020ms)  : 975, 1066

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (107ms)  : 104, 110
    master - mean (106ms)  : 104, 108

    section Bailout
    This PR (8107) - mean (108ms)  : 106, 109
    master - mean (107ms)  : 106, 108

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (743ms)  : 692, 794
    master - mean (741ms)  : 684, 797

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (94ms)  : 92, 96
    master - mean (94ms)  : 92, 96

    section Bailout
    This PR (8107) - mean (95ms)  : 94, 96
    master - mean (94ms)  : 94, 95

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (728ms)  : 695, 761
    master - mean (728ms)  : 700, 756

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (93ms)  : 91, 95
    master - mean (92ms)  : 90, 94

    section Bailout
    This PR (8107) - mean (94ms)  : 92, 96
    master - mean (93ms)  : 92, 94

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (642ms)  : 628, 656
    master - mean (640ms)  : 625, 655

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (196ms)  : 191, 202
    master - mean (196ms)  : 189, 204

    section Bailout
    This PR (8107) - mean (200ms)  : 195, 204
    master - mean (203ms)  : 193, 213

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (1,155ms)  : 1089, 1221
    master - mean (1,160ms)  : 1086, 1234

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (280ms)  : 275, 284
    master - mean (279ms)  : 273, 284

    section Bailout
    This PR (8107) - mean (281ms)  : 274, 288
    master - mean (279ms)  : 275, 283

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (949ms)  : 904, 994
    master - mean (933ms)  : 878, 989

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (274ms)  : 268, 280
    master - mean (272ms)  : 266, 279

    section Bailout
    This PR (8107) - mean (273ms)  : 269, 277
    master - mean (273ms)  : 268, 279

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (934ms)  : 877, 991
    master - mean (936ms)  : 888, 984

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8107) - mean (272ms)  : 267, 276
    master - mean (273ms)  : 264, 283

    section Bailout
    This PR (8107) - mean (272ms)  : 268, 276
    master - mean (275ms)  : 260, 290

    section CallTarget+Inlining+NGEN
    This PR (8107) - mean (843ms)  : 826, 861
    master - mean (849ms)  : 823, 874

Loading

Copy link
Collaborator

@bouwkast bouwkast left a comment

Choose a reason for hiding this comment

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

I think we should put this in it's own workflow with a [labeled] trigger. Thoughts?

But this would be very nice 👍

Comment on lines +28 to +29

- name: "Validate PR has labels"
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think it may be better if this lives in its own workflow (that is required) with a trigger such as

on:
    pull_request:
      types: [labeled]

That way whenever someone changes a label it will run this automatically and then update.

Separate workflow would get us around having to run AssignLabelsToPullRequest which seems a bit heavy

And [labeled] from what I see here would correctly run the workflow when labels are added/removed

But this would be a great help when doing the release!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Initially, I set it in a separate workflow. The main problem is about racing conditions with auto_label_prs.yml. This one can automatically add some tags after we fail the validation. For instance, if this check runs before auto_label_prs.yml, it could fail even if later auto_label_prs.yml adds a label. If we make it secuential, we have no racing issues.

About using types: [labeled], the labeled trigger would only fire when a label is added to a PR, right? If we have no labels, would it run (and fail)?

Copy link
Collaborator

Choose a reason for hiding this comment

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

That makes sense for the race condition

So if we keep it in this workflow we could do something like

on:
    pull_request:
      types: [opened, synchronize, reopened, labeled]

Then we can filter like so

 - name: "Add labels"
          if: github.event.action != 'labeled'

And I think that this would get us there so that they work and don't have a race condition

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, that would make sense. Thanks!

Copy link
Collaborator

@bouwkast bouwkast left a comment

Choose a reason for hiding this comment

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

Nice LGTM!

@pr-commenter
Copy link

pr-commenter bot commented Jan 30, 2026

Benchmarks

Benchmark execution time: 2026-01-30 17:09:10

Comparing candidate commit e3e5be7 in PR branch nacho/ValidatePRLabels with baseline commit 9534060 in branch master.

Found 9 performance improvements and 4 performance regressions! Performance is the same for 165 metrics, 14 unstable metrics.

scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0

  • 🟥 execution_time [+77.188ms; +77.441ms] or [+60.934%; +61.134%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody net472

  • 🟩 throughput [+7037.452op/s; +7450.912op/s] or [+5.813%; +6.154%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody net472

  • 🟩 throughput [+9462.795op/s; +10146.385op/s] or [+6.834%; +7.328%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net472

  • 🟩 throughput [+168368.403op/s; +171103.380op/s] or [+5.318%; +5.404%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net6.0

  • 🟥 execution_time [+22.058ms; +28.391ms] or [+11.167%; +14.374%]

scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0

  • 🟩 execution_time [-102.317ms; -101.277ms] or [-51.706%; -51.180%]

scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1

  • 🟩 execution_time [-14.409ms; -9.067ms] or [-8.591%; -5.406%]

scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net6.0

  • 🟩 execution_time [-130.862µs; -124.178µs] or [-11.279%; -10.703%]
  • 🟩 throughput [+103.450op/s; +109.448op/s] or [+12.003%; +12.699%]

scenario:Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark net6.0

  • 🟥 throughput [-3424.758op/s; -1639.491op/s] or [-14.319%; -6.855%]

scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore net6.0

  • 🟥 execution_time [+100.006ms; +106.577ms] or [+107.127%; +114.165%]

scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan netcoreapp3.1

  • 🟩 execution_time [-16.379ms; -10.697ms] or [-7.766%; -5.072%]

scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes net6.0

  • 🟩 throughput [+32678.608op/s; +33998.972op/s] or [+6.152%; +6.401%]

@NachoEchevarria
Copy link
Collaborator Author

Thanks for the feedback!

@NachoEchevarria NachoEchevarria merged commit 67be212 into master Feb 2, 2026
140 checks passed
@NachoEchevarria NachoEchevarria deleted the nacho/ValidatePRLabels branch February 2, 2026 10:05
@github-actions github-actions bot added this to the vNext-v3 milestone Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:builds project files, build scripts, pipelines, versioning, releases, packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants