Skip to content

Conversation

@vandonr
Copy link
Contributor

@vandonr vandonr commented Nov 18, 2025

Summary of changes

adding process tags next to the service name in remote config requests

equivalent Java PR: DataDog/dd-trace-java#8705
related change on the agent side: DataDog/datadog-agent#36049

Reason for change

AIDM-195

Implementation details

Test coverage

I didn't see any existing tests on the content of the requests, didn't really feel like adding some.

Other details

@vandonr vandonr requested a review from a team as a code owner November 18, 2025 15:27
@datadog-datadog-prod-us1

This comment has been minimized.

@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Nov 18, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7840) 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
duration74.99 ± (74.96 - 75.69) ms74.90 ± (75.17 - 75.96) ms-0.1%
.NET Framework 4.8 - Bailout
duration79.50 ± (79.08 - 79.63) ms79.92 ± (79.54 - 80.37) ms+0.5%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1054.21 ± (1054.88 - 1064.33) ms1047.93 ± (1052.64 - 1063.76) ms-0.6%
.NET Core 3.1 - Baseline
process.internal_duration_ms22.98 ± (22.90 - 23.06) ms22.94 ± (22.86 - 23.02) ms-0.2%
process.time_to_main_ms86.72 ± (86.39 - 87.04) ms87.03 ± (86.68 - 87.39) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.92 ± (10.92 - 10.93) MB10.91 ± (10.91 - 10.91) MB-0.1%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.88 ± (22.82 - 22.94) ms22.60 ± (22.54 - 22.67) ms-1.2%
process.time_to_main_ms89.60 ± (89.25 - 89.94) ms87.68 ± (87.32 - 88.05) ms-2.1%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.96 ± (10.96 - 10.97) MB10.95 ± (10.95 - 10.96) MB-0.1%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms219.28 ± (218.00 - 220.56) ms219.32 ± (217.90 - 220.74) ms+0.0%✅⬆️
process.time_to_main_ms497.57 ± (496.51 - 498.63) ms498.76 ± (497.63 - 499.90) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.73 ± (47.70 - 47.75) MB47.74 ± (47.72 - 47.76) MB+0.0%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.4%
.NET 6 - Baseline
process.internal_duration_ms21.93 ± (21.85 - 22.00) ms21.75 ± (21.69 - 21.81) ms-0.8%
process.time_to_main_ms77.47 ± (77.12 - 77.82) ms76.17 ± (75.86 - 76.48) ms-1.7%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.60 ± (10.59 - 10.60) MB10.63 ± (10.63 - 10.64) MB+0.3%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.67 ± (21.61 - 21.73) ms21.70 ± (21.63 - 21.77) ms+0.1%✅⬆️
process.time_to_main_ms76.84 ± (76.51 - 77.18) ms77.86 ± (77.52 - 78.19) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.64 ± (10.64 - 10.65) MB10.67 ± (10.67 - 10.67) MB+0.2%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms210.56 ± (209.19 - 211.93) ms210.64 ± (209.33 - 211.96) ms+0.0%✅⬆️
process.time_to_main_ms465.15 ± (464.20 - 466.09) ms466.30 ± (465.21 - 467.39) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.04 ± (48.02 - 48.07) MB48.02 ± (47.99 - 48.05) MB-0.1%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 8 - Baseline
process.internal_duration_ms20.00 ± (19.92 - 20.07) ms19.84 ± (19.77 - 19.91) ms-0.8%
process.time_to_main_ms75.42 ± (75.06 - 75.78) ms75.02 ± (74.71 - 75.33) ms-0.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.65 ± (7.65 - 7.66) MB7.65 ± (7.64 - 7.65) MB-0.1%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.90 ± (19.84 - 19.95) ms19.78 ± (19.71 - 19.84) ms-0.6%
process.time_to_main_ms76.06 ± (75.78 - 76.33) ms76.32 ± (76.04 - 76.61) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.70 ± (7.70 - 7.71) MB7.71 ± (7.70 - 7.72) MB+0.1%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms191.06 ± (190.13 - 191.98) ms193.56 ± (192.80 - 194.32) ms+1.3%✅⬆️
process.time_to_main_ms453.35 ± (452.57 - 454.14) ms456.38 ± (455.34 - 457.42) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.36 ± (36.31 - 36.40) MB36.45 ± (36.41 - 36.49) MB+0.3%✅⬆️
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.1%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration191.33 ± (191.17 - 191.92) ms192.27 ± (192.39 - 193.34) ms+0.5%✅⬆️
.NET Framework 4.8 - Bailout
duration195.81 ± (195.54 - 196.39) ms194.49 ± (194.31 - 194.87) ms-0.7%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1102.50 ± (1107.10 - 1116.52) ms1104.09 ± (1110.18 - 1120.80) ms+0.1%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms186.75 ± (186.46 - 187.04) ms187.94 ± (187.55 - 188.33) ms+0.6%✅⬆️
process.time_to_main_ms80.21 ± (80.01 - 80.41) ms80.53 ± (80.31 - 80.75) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.11 ± (16.08 - 16.13) MB16.11 ± (16.08 - 16.14) MB+0.0%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (19 - 20)-0.1%
.NET Core 3.1 - Bailout
process.internal_duration_ms186.61 ± (186.31 - 186.90) ms186.24 ± (185.92 - 186.56) ms-0.2%
process.time_to_main_ms81.47 ± (81.34 - 81.60) ms81.44 ± (81.33 - 81.55) ms-0.0%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.17 ± (16.14 - 16.20) MB16.14 ± (16.06 - 16.23) MB-0.2%
runtime.dotnet.threads.count20 ± (20 - 21)21 ± (20 - 21)+0.1%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms399.27 ± (396.73 - 401.82) ms402.98 ± (400.02 - 405.95) ms+0.9%✅⬆️
process.time_to_main_ms468.60 ± (467.86 - 469.34) ms470.30 ± (469.61 - 470.98) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.59 ± (58.47 - 58.71) MB58.45 ± (58.31 - 58.60) MB-0.2%
runtime.dotnet.threads.count30 ± (29 - 30)29 ± (29 - 30)-0.1%
.NET 6 - Baseline
process.internal_duration_ms191.50 ± (191.19 - 191.80) ms190.51 ± (190.18 - 190.84) ms-0.5%
process.time_to_main_ms69.85 ± (69.68 - 70.02) ms69.51 ± (69.35 - 69.66) ms-0.5%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed15.89 ± (15.72 - 16.06) MB15.88 ± (15.72 - 16.03) MB-0.1%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.5%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms190.10 ± (189.89 - 190.32) ms189.60 ± (189.34 - 189.86) ms-0.3%
process.time_to_main_ms70.42 ± (70.35 - 70.49) ms70.32 ± (70.24 - 70.40) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.24 ± (16.10 - 16.38) MB15.76 ± (15.59 - 15.93) MB-3.0%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (18 - 19)-3.2%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms415.11 ± (411.93 - 418.28) ms405.67 ± (403.30 - 408.05) ms-2.3%
process.time_to_main_ms439.76 ± (439.25 - 440.27) ms440.07 ± (439.43 - 440.71) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed58.68 ± (58.53 - 58.83) MB58.78 ± (58.63 - 58.92) MB+0.2%✅⬆️
runtime.dotnet.threads.count30 ± (30 - 30)30 ± (29 - 30)-0.1%
.NET 8 - Baseline
process.internal_duration_ms189.85 ± (189.48 - 190.22) ms188.64 ± (188.39 - 188.88) ms-0.6%
process.time_to_main_ms69.41 ± (69.22 - 69.60) ms68.87 ± (68.72 - 69.01) ms-0.8%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.79 ± (11.77 - 11.81) MB11.74 ± (11.70 - 11.79) MB-0.4%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.1%
.NET 8 - Bailout
process.internal_duration_ms188.25 ± (188.02 - 188.49) ms188.28 ± (187.94 - 188.62) ms+0.0%✅⬆️
process.time_to_main_ms70.20 ± (70.09 - 70.31) ms70.03 ± (69.90 - 70.16) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.85 ± (11.78 - 11.91) MB11.80 ± (11.73 - 11.86) MB-0.4%
runtime.dotnet.threads.count19 ± (18 - 19)19 ± (18 - 19)+0.2%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms363.66 ± (362.36 - 364.96) ms361.86 ± (360.20 - 363.52) ms-0.5%
process.time_to_main_ms427.55 ± (427.04 - 428.07) ms426.26 ± (425.60 - 426.92) ms-0.3%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.87 ± (47.83 - 47.90) MB47.83 ± (47.80 - 47.87) MB-0.1%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.2%
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 (7840) - mean (76ms)  : 70, 82
    master - mean (75ms)  : 70, 81

    section Bailout
    This PR (7840) - mean (80ms)  : 73, 86
    master - mean (79ms)  : 75, 83

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (1,058ms)  : 978, 1138
    master - mean (1,060ms)  : 992, 1127

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 (7840) - mean (118ms)  : 111, 124
    master - mean (117ms)  : 111, 123

    section Bailout
    This PR (7840) - mean (117ms)  : 111, 124
    master - mean (120ms)  : 114, 125

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (753ms)  : 696, 811
    master - mean (753ms)  : 720, 786

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7840) - mean (105ms)  : 99, 111
    master - mean (106ms)  : 100, 113

    section Bailout
    This PR (7840) - mean (107ms)  : 101, 113
    master - mean (106ms)  : 100, 111

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (707ms)  : 677, 738
    master - mean (704ms)  : 670, 738

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7840) - mean (103ms)  : 97, 110
    master - mean (104ms)  : 97, 111

    section Bailout
    This PR (7840) - mean (105ms)  : 98, 111
    master - mean (105ms)  : 99, 110

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (682ms)  : 652, 713
    master - mean (681ms)  : 649, 714

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 (7840) - mean (193ms)  : 187, 198
    master - mean (192ms)  : 188, 195

    section Bailout
    This PR (7840) - mean (195ms)  : 192, 197
    master - mean (196ms)  : 192, 200

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (1,115ms)  : 1032, 1199
    master - mean (1,112ms)  : 1040, 1184

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 (7840) - mean (277ms)  : 270, 283
    master - mean (275ms)  : 270, 280

    section Bailout
    This PR (7840) - mean (276ms)  : 272, 280
    master - mean (276ms)  : 272, 280

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (908ms)  : 856, 959
    master - mean (901ms)  : 854, 947

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7840) - mean (268ms)  : 263, 273
    master - mean (270ms)  : 265, 274

    section Bailout
    This PR (7840) - mean (268ms)  : 265, 271
    master - mean (268ms)  : 266, 270

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (881ms)  : 826, 936
    master - mean (888ms)  : 830, 946

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7840) - mean (267ms)  : 263, 271
    master - mean (269ms)  : 264, 274

    section Bailout
    This PR (7840) - mean (267ms)  : 263, 271
    master - mean (268ms)  : 265, 271

    section CallTarget+Inlining+NGEN
    This PR (7840) - mean (819ms)  : 802, 837
    master - mean (821ms)  : 798, 844

Loading

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

I didn't see any existing tests on the content of the requests, didn't really feel like adding some.

Will this be covered by system-tests? Historically we've broken RCM and not known about it, so I'm hesitant to just ok this as-is.

At the very least, we should manually test this against a real agent, to ensure the generated JSON is valid. And ideally then add some snapshots for the response to make sure it doesn't drift accidentally

@vandonr
Copy link
Contributor Author

vandonr commented Nov 18, 2025

Will this be covered by system-tests? Historically we've broken RCM and not known about it, so I'm hesitant to just ok this as-is.

yes it should be, though I have not enabled them yet because it's made as all-or-nothing for process tags. I'll double check.

add some snapshots for the response

We do have some tests with sample responses, in https://github.com/DataDog/dd-trace-dotnet/blob/20246d2febfbbc43aad6598e9ddebfbb36d89aa2/tracer/test/Datadog.Trace.Tests/RemoteConfigurationManagement/RcmResponses.cs, but here I modify the request, so I can create snapshots of requests, but it'd be kinda self-asserting

@vandonr vandonr changed the title add process tags to remote config Add process tags to remote config Nov 19, 2025
@pr-commenter
Copy link

pr-commenter bot commented Nov 24, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7840 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.971
  • 3 benchmarks are slower, with geometric mean 1.452
  • 6 benchmarks have fewer allocations
  • 3 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.6μs 57ns 302ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 13.7μs 71.7ns 336ns 0 0 0 5.7 KB
master StartStopWithChild net472 22.4μs 126ns 829ns 0.994 0.331 0.11 6.06 KB
#7840 StartStopWithChild net6.0 11.1μs 57.2ns 269ns 0 0 0 5.52 KB
#7840 StartStopWithChild netcoreapp3.1 14.2μs 54.2ns 210ns 0 0 0 5.69 KB
#7840 StartStopWithChild net472 21.7μs 115ns 619ns 0.989 0.33 0.11 6.05 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7840

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.35 KB 3.31 KB -46 B -1.37%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 944μs 322ns 1.25μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 270ns 1.04μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.21ms 61ns 236ns 0 0 0 3.35 KB
#7840 WriteAndFlushEnrichedTraces net6.0 930μs 88.5ns 331ns 0 0 0 2.7 KB
#7840 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 103ns 373ns 0 0 0 2.7 KB
#7840 WriteAndFlushEnrichedTraces net472 1.2ms 74.3ns 288ns 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.05μs 5.98ns 43.1ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.39μs 7.22ns 36.8ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.02μs 0.294ns 1.1ns 0.192 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.06μs 37.2ns 200ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 9.07μs 49ns 273ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.71μs 4ns 15.5ns 0.735 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 322ns 1.72ns 8.94ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.03ns 8.13ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 299ns 0.0547ns 0.212ns 0.0442 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.22μs 31ns 142ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.98μs 40.1ns 175ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.7μs 2.24ns 8.39ns 0.57 0 0 3.8 KB
#7840 AllCycleSimpleBody net6.0 1.06μs 5.55ns 27.2ns 0 0 0 1.22 KB
#7840 AllCycleSimpleBody netcoreapp3.1 1.38μs 7.66ns 49.1ns 0 0 0 1.2 KB
#7840 AllCycleSimpleBody net472 1.01μs 0.287ns 1.08ns 0.192 0 0 1.23 KB
#7840 AllCycleMoreComplexBody net6.0 7.08μs 37.7ns 199ns 0 0 0 4.72 KB
#7840 AllCycleMoreComplexBody netcoreapp3.1 8.98μs 4.26ns 16.5ns 0 0 0 4.62 KB
#7840 AllCycleMoreComplexBody net472 7.6μs 4.18ns 16.2ns 0.723 0 0 4.74 KB
#7840 ObjectExtractorSimpleBody net6.0 319ns 0.149ns 0.577ns 0 0 0 280 B
#7840 ObjectExtractorSimpleBody netcoreapp3.1 405ns 0.132ns 0.513ns 0 0 0 272 B
#7840 ObjectExtractorSimpleBody net472 296ns 0.167ns 0.647ns 0.0445 0 0 281 B
#7840 ObjectExtractorMoreComplexBody net6.0 6.26μs 27.3ns 106ns 0 0 0 3.78 KB
#7840 ObjectExtractorMoreComplexBody netcoreapp3.1 7.86μs 29.6ns 114ns 0 0 0 3.69 KB
#7840 ObjectExtractorMoreComplexBody net472 6.63μs 1.59ns 6.15ns 0.598 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 77.9μs 242ns 939ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97.9μs 284ns 1.1μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 19.8ns 76.8ns 4.93 0 0 32.5 KB
master EncodeLegacyArgs net6.0 145μs 201ns 778ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 200μs 178ns 665ns 0 0 0 2.15 KB
master EncodeLegacyArgs net472 261μs 87.9ns 340ns 0 0 0 2.16 KB
#7840 EncodeArgs net6.0 76.8μs 101ns 379ns 0 0 0 32.4 KB
#7840 EncodeArgs netcoreapp3.1 97.5μs 144ns 556ns 0 0 0 32.4 KB
#7840 EncodeArgs net472 110μs 15.8ns 61.1ns 4.94 0 0 32.51 KB
#7840 EncodeLegacyArgs net6.0 144μs 18.5ns 69.3ns 0 0 0 2.15 KB
#7840 EncodeLegacyArgs netcoreapp3.1 197μs 262ns 1.02μs 0 0 0 2.14 KB
#7840 EncodeLegacyArgs net472 262μs 31.4ns 122ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7840

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.412 297,405.64 717,370.27

Faster 🎉 in #7840

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 1.971 858,209.90 435,371.88

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 390μs 45.3ns 175ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 852μs 5.43μs 54.1μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 431μs 56.4ns 218ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 284μs 34ns 127ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 298μs 200ns 775ns 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 308μs 39.8ns 154ns 0 0 0 2.29 KB
#7840 RunWafRealisticBenchmark net6.0 399μs 32.1ns 116ns 0 0 0 4.55 KB
#7840 RunWafRealisticBenchmark netcoreapp3.1 434μs 1.08μs 3.9μs 0 0 0 4.48 KB
#7840 RunWafRealisticBenchmark net472 427μs 47ns 182ns 0 0 0 4.66 KB
#7840 RunWafRealisticBenchmarkWithAttack net6.0 284μs 38ns 142ns 0 0 0 2.24 KB
#7840 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 676μs 12.1μs 121μs 0 0 0 2.22 KB
#7840 RunWafRealisticBenchmarkWithAttack net472 312μs 25ns 96.7ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 62.2μs 305ns 1.22μs 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.4μs 94.4ns 353ns 0 0 0 17.42 KB
master SendRequest net472 0.0093ns 0.00283ns 0.011ns 0 0 0 0 b
#7840 SendRequest net6.0 60.7μs 78.1ns 292ns 0 0 0 14.52 KB
#7840 SendRequest netcoreapp3.1 70.4μs 91.2ns 341ns 0 0 0 17.42 KB
#7840 SendRequest net472 0.0031ns 0.00123ns 0.00475ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7840

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 1 B 0 b -1 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.89ms 3.22μs 12.5μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.1ms 1.4μs 5.41μs 0 0 0 640 KB
master OriginalCharSlice net472 2.6ms 107ns 415ns 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.43ms 286ns 1.11μs 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.73ms 492ns 1.91μs 0 0 0 1 B
master OptimizedCharSlice net472 1.97ms 298ns 1.07μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 820μs 46.5ns 180ns 0 0 0 4 B
master OptimizedCharSliceWithPool netcoreapp3.1 814μs 171ns 660ns 0 0 0 1 B
master OptimizedCharSliceWithPool net472 1.18ms 136ns 526ns 0 0 0 47 B
#7840 OriginalCharSlice net6.0 1.93ms 7.65μs 28.6μs 0 0 0 640.01 KB
#7840 OriginalCharSlice netcoreapp3.1 2.24ms 6.02μs 20.9μs 0 0 0 640 KB
#7840 OriginalCharSlice net472 2.67ms 278ns 1μs 100 0 0 641.95 KB
#7840 OptimizedCharSlice net6.0 1.39ms 146ns 546ns 0 0 0 4 B
#7840 OptimizedCharSlice netcoreapp3.1 1.68ms 290ns 1.12μs 0 0 0 1 B
#7840 OptimizedCharSlice net472 1.98ms 405ns 1.51μs 0 0 0 73 B
#7840 OptimizedCharSliceWithPool net6.0 849μs 39.7ns 154ns 0 0 0 4 B
#7840 OptimizedCharSliceWithPool netcoreapp3.1 885μs 127ns 490ns 0 0 0 0 b
#7840 OptimizedCharSliceWithPool net472 1.15ms 137ns 513ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ Fewer allocations 🎉

Slower ⚠️ in #7840

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 1.134 636,464.76 721,623.75
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 1.120 862,026.67 965,592.41

Fewer allocations 🎉 in #7840

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.42 KB 55.91 KB -516 B -0.91%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 648μs 3.63μs 23.2μs 0 0 0 41.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 740μs 4.1μs 26.6μs 0 0 0 42.76 KB
master WriteAndFlushEnrichedTraces net472 861μs 1.45μs 5.03μs 8.33 0 0 56.42 KB
#7840 WriteAndFlushEnrichedTraces net6.0 723μs 2.09μs 8.11μs 0 0 0 41.74 KB
#7840 WriteAndFlushEnrichedTraces netcoreapp3.1 788μs 4.52μs 35.6μs 0 0 0 42.7 KB
#7840 WriteAndFlushEnrichedTraces net472 965μs 2.31μs 8.35μs 4.46 0 0 55.91 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.91μs 0.398ns 1.49ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.54μs 9.26ns 34.7ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.86μs 4.12ns 15.9ns 0.144 0.0144 0 987 B
#7840 ExecuteNonQuery net6.0 1.92μs 7.13ns 26.7ns 0 0 0 1.02 KB
#7840 ExecuteNonQuery netcoreapp3.1 2.56μs 8.35ns 32.3ns 0 0 0 1.02 KB
#7840 ExecuteNonQuery net472 2.9μs 1.82ns 6.82ns 0.143 0.0143 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.74μs 9.05ns 47ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.21μs 8.09ns 30.3ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.62μs 3.06ns 11.8ns 0.162 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.85μs 9.22ns 39.1ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.32μs 11.5ns 51.2ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.78μs 5.84ns 22.6ns 0.17 0 0 1.1 KB
#7840 CallElasticsearch net6.0 1.79μs 1.74ns 6.5ns 0 0 0 1.03 KB
#7840 CallElasticsearch netcoreapp3.1 2.29μs 11.2ns 44.8ns 0 0 0 1.03 KB
#7840 CallElasticsearch net472 3.59μs 6.84ns 26.5ns 0.162 0 0 1.04 KB
#7840 CallElasticsearchAsync net6.0 1.79μs 5.71ns 22.1ns 0 0 0 1.01 KB
#7840 CallElasticsearchAsync netcoreapp3.1 2.33μs 10.6ns 42.5ns 0 0 0 1.08 KB
#7840 CallElasticsearchAsync net472 3.84μs 8.17ns 31.6ns 0.172 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.88μs 8.7ns 33.7ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.49μs 8.26ns 32ns 0 0 0 952 B
master ExecuteAsync net472 2.55μs 0.614ns 2.38ns 0.14 0 0 915 B
#7840 ExecuteAsync net6.0 1.88μs 9.52ns 44.7ns 0 0 0 952 B
#7840 ExecuteAsync netcoreapp3.1 2.52μs 8.7ns 32.6ns 0 0 0 952 B
#7840 ExecuteAsync net472 2.48μs 2.65ns 10.3ns 0.137 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 6.86μs 5.86ns 21.1ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.71μs 22.3ns 86.2ns 0 0 0 2.9 KB
master SendAsync net472 12.1μs 6.59ns 25.5ns 0.484 0 0 3.18 KB
#7840 SendAsync net6.0 7.33μs 12.3ns 47.7ns 0 0 0 2.36 KB
#7840 SendAsync netcoreapp3.1 8.73μs 21.1ns 81.7ns 0 0 0 2.9 KB
#7840 SendAsync net472 12.3μs 11.6ns 45ns 0.491 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7840

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 260.02 KB 262.31 KB 2.29 KB 0.88%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.64 KB 42.94 KB 304 B 0.71%

Fewer allocations 🎉 in #7840

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 257.86 KB 255.64 KB -2.22 KB -0.86%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 44.14 KB 43.44 KB -704 B -1.59%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 286.72 KB 278.53 KB -8.19 KB -2.86%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 46.9μs 283ns 2.71μs 0 0 0 44.14 KB
master StringConcatBenchmark netcoreapp3.1 50.5μs 266ns 1.46μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 55.8μs 260ns 972ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 483μs 2.01μs 6.95μs 0 0 0 260.02 KB
master StringConcatAspectBenchmark netcoreapp3.1 503μs 2.48μs 10.2μs 0 0 0 257.86 KB
master StringConcatAspectBenchmark net472 406μs 2.02μs 8.55μs 0 0 0 286.72 KB
#7840 StringConcatBenchmark net6.0 47.1μs 234ns 934ns 0 0 0 43.44 KB
#7840 StringConcatBenchmark netcoreapp3.1 51.2μs 281ns 2.06μs 0 0 0 42.94 KB
#7840 StringConcatBenchmark net472 56.8μs 275ns 1.1μs 0 0 0 65.54 KB
#7840 StringConcatAspectBenchmark net6.0 484μs 1.91μs 9.16μs 0 0 0 262.31 KB
#7840 StringConcatAspectBenchmark netcoreapp3.1 512μs 1.94μs 7μs 0 0 0 255.64 KB
#7840 StringConcatAspectBenchmark net472 405μs 2.18μs 11.9μs 0 0 0 278.53 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.65μs 2.59ns 10ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.61μs 17.4ns 73.8ns 0 0 0 1.71 KB
master EnrichedLog net472 3.91μs 3.8ns 14.2ns 0.253 0 0 1.64 KB
#7840 EnrichedLog net6.0 2.68μs 7.93ns 30.7ns 0 0 0 1.7 KB
#7840 EnrichedLog netcoreapp3.1 3.67μs 12.9ns 50ns 0 0 0 1.7 KB
#7840 EnrichedLog net472 3.79μs 2.05ns 7.96ns 0.248 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 125μs 267ns 1.03μs 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 127μs 128ns 480ns 0 0 0 4.31 KB
master EnrichedLog net472 167μs 72.9ns 283ns 0 0 0 4.52 KB
#7840 EnrichedLog net6.0 124μs 311ns 1.16μs 0 0 0 4.31 KB
#7840 EnrichedLog netcoreapp3.1 128μs 205ns 795ns 0 0 0 4.31 KB
#7840 EnrichedLog net472 167μs 133ns 514ns 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.06μs 18.4ns 71.4ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.84μs 21.1ns 81.8ns 0 0 0 2.26 KB
master EnrichedLog net472 7.57μs 9.61ns 37.2ns 0.305 0 0 2.08 KB
#7840 EnrichedLog net6.0 4.89μs 6.5ns 25.2ns 0 0 0 2.26 KB
#7840 EnrichedLog netcoreapp3.1 6.93μs 8.64ns 33.5ns 0 0 0 2.26 KB
#7840 EnrichedLog net472 7.55μs 7.99ns 30.9ns 0.302 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.93μs 8.24ns 31.9ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.65μs 6.74ns 26.1ns 0 0 0 1.2 KB
master SendReceive net472 3.18μs 1.74ns 6.26ns 0.177 0 0 1.2 KB
#7840 SendReceive net6.0 1.98μs 0.586ns 2.11ns 0 0 0 1.2 KB
#7840 SendReceive netcoreapp3.1 2.66μs 12.4ns 49.7ns 0 0 0 1.2 KB
#7840 SendReceive net472 3.01μs 5.45ns 21.1ns 0.18 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.35μs 10.8ns 41.8ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.73μs 12.1ns 46.8ns 0 0 0 1.63 KB
master EnrichedLog net472 6.74μs 14ns 54.2ns 0.303 0 0 2.03 KB
#7840 EnrichedLog net6.0 4.37μs 4.79ns 17.9ns 0 0 0 1.58 KB
#7840 EnrichedLog netcoreapp3.1 5.58μs 15.3ns 59.2ns 0 0 0 1.63 KB
#7840 EnrichedLog net472 6.66μs 5.22ns 20.2ns 0.3 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 770ns 3.51ns 13.6ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 954ns 5.02ns 26.6ns 0 0 0 576 B
master StartFinishSpan net472 948ns 0.081ns 0.303ns 0.0907 0 0 578 B
master StartFinishScope net6.0 918ns 4.76ns 22.3ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.18μs 6.14ns 30.1ns 0 0 0 696 B
master StartFinishScope net472 1.18μs 0.511ns 1.91ns 0.1 0 0 658 B
#7840 StartFinishSpan net6.0 776ns 3.74ns 15.9ns 0 0 0 576 B
#7840 StartFinishSpan netcoreapp3.1 982ns 3.99ns 15.5ns 0 0 0 576 B
#7840 StartFinishSpan net472 955ns 0.14ns 0.523ns 0.0884 0 0 578 B
#7840 StartFinishScope net6.0 939ns 0.574ns 2.15ns 0 0 0 696 B
#7840 StartFinishScope netcoreapp3.1 1.22μs 1.6ns 5.75ns 0 0 0 696 B
#7840 StartFinishScope net472 1.19μs 0.514ns 1.99ns 0.102 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.11μs 5.16ns 20ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.42μs 7.57ns 38.6ns 0 0 0 696 B
master RunOnMethodBegin net472 1.47μs 3.72ns 14.4ns 0.103 0 0 658 B
#7840 RunOnMethodBegin net6.0 1.08μs 5.27ns 23ns 0 0 0 696 B
#7840 RunOnMethodBegin netcoreapp3.1 1.5μs 7.82ns 36.7ns 0 0 0 696 B
#7840 RunOnMethodBegin net472 1.44μs 0.599ns 2.32ns 0.101 0 0 658 B

@vandonr
Copy link
Contributor Author

vandonr commented Nov 24, 2025

ran the system test
and realized the format was incorrect 😅, this is the only place where we don't want the serialized list in string form, but in list form in the json. I rearranged the code in ProcessTags to expose both, in a way that is cleaner in the end I think :)

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

LGTM in general, one question and one suggestion

@vandonr vandonr merged commit 3697fd6 into master Nov 25, 2025
151 checks passed
@vandonr vandonr deleted the vandonr/process3 branch November 25, 2025 15:33
@github-actions github-actions bot added this to the vNext-v3 milestone Nov 25, 2025
@bouwkast bouwkast added type:enhancement Improvement to an existing feature area:remote-config labels Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:remote-config type:enhancement Improvement to an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants