Skip to content

Conversation

@rithikanarayan
Copy link
Contributor

@rithikanarayan rithikanarayan commented Nov 20, 2025

Summary of changes

Fixes the Serverless Service Representation (SSR) for Dotnet.
In serverless environments, sets peer.service tag for outbound AWS managed service spans to {service type}.{region}.amazonaws.com:

SQS: sqs.us-east-1.amazonaws.com
SNS: sns.us-east-1.amazonaws.com
Kinesis: kinesis.us-east-1.amazonaws.com
Eventbridge: events.us-east-1.amazonaws.com
s3: bucket-name.s3.us-east-1.amazonaws.com
Dynamodb: dynamodb.us-east-1.amazonaws.com

Sets peer.service.source to peer.service for these serverless cases.

In non-serverless cases we assign the peer.service tag to the values of the following tags:

SQS: AwsSqsTags.QueueName
SNS: AwsSnsTags.TopicName
Kinesis: AwsKinesisTags.StreamName
Eventbridge: AwsEventBridgeTags.RuleName
S3: AwsS3Tags.BucketName
Dynamodb: AwsDynamoDbTags.TableName
StepFunctions: AwsStepFunctionsTags.StateMachineName

Sets peer.service source to the respective tag itself. (Ex. for an SQS queue with the name "MyQueue", peer.service = "MyQueue" and peer.service.source = "queuename").

Adds DerivePeerService function in Util/PeerServiceHelpers to do the above assignments.

Reason for change

Before SSR implementation:
Screenshot 2025-11-18 at 5 38 00 PM

After SSR implementation:
Screenshot 2025-11-24 at 1 38 17 PM

Implementation details

See summary of changes.

Test coverage

Covered by AWS integration tests in non-serverless case. Tested functionality in AWS Lambda by using custom dd-trace-dotnet layer with arn:arn:aws:lambda:us-east-1:425362996713:layer:ssr-dotnet-rithika:14 on a sample app that had an API Gateway trigger a producer lambda, which sent data through Kinesis, SQS, SNS, and EventBridge to consumer lambdas, which wrote to S3 and DynamoDB. Visually inspected the service map (see images in Reason for change section) to check for correct labelling of the inferred spans for these services. Also checked tags in the trace overview to confirm the correct values of the peer.service and peer.service.source tags.

Other details

@rithikanarayan rithikanarayan changed the title SSR Implement Serverless Service Representation (SSR) in AWS Lambda Nov 20, 2025
@datadog-official
Copy link

datadog-official bot commented Nov 20, 2025

⚠️ Tests

⚠️ Warnings

❄️ 6 New flaky tests detected

TestGet from Datadog.Trace.Security.IntegrationTests.AspNetCore5BlockingTemplatesJson (Datadog)
Unable to determine port application is listening on
TestIastJsonTagSizeExceeded from Datadog.Trace.Security.IntegrationTests.Iast.AspNetCore5IastTestsSpanTelemetryIastEnabled (Datadog)
Unable to determine port application is listening on
TestBlockingAction from Datadog.Trace.Security.IntegrationTests.Rcm.AspNetCore5AsmActionsConfiguration (Datadog)
Unable to determine port application is listening on
View all

ℹ️ Info

🧪 All tests passed

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

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

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

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7850) 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) ms75.88 ± (75.71 - 76.57) ms+1.2%✅⬆️
.NET Framework 4.8 - Bailout
duration79.50 ± (79.08 - 79.63) ms79.43 ± (79.18 - 79.90) ms-0.1%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1054.21 ± (1054.88 - 1064.33) ms1067.92 ± (1067.94 - 1079.83) ms+1.3%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms22.98 ± (22.90 - 23.06) ms23.07 ± (23.00 - 23.14) ms+0.4%✅⬆️
process.time_to_main_ms86.72 ± (86.39 - 87.04) ms88.74 ± (88.37 - 89.11) ms+2.3%✅⬆️
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) ms23.06 ± (23.00 - 23.13) ms+0.8%✅⬆️
process.time_to_main_ms89.60 ± (89.25 - 89.94) ms90.73 ± (90.37 - 91.09) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.96 ± (10.96 - 10.97) MB10.95 ± (10.94 - 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_ms219.28 ± (218.00 - 220.56) ms223.13 ± (221.43 - 224.82) ms+1.8%✅⬆️
process.time_to_main_ms497.57 ± (496.51 - 498.63) ms504.22 ± (502.96 - 505.48) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.73 ± (47.70 - 47.75) MB47.80 ± (47.78 - 47.82) MB+0.1%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 6 - Baseline
process.internal_duration_ms21.93 ± (21.85 - 22.00) ms22.11 ± (22.05 - 22.17) ms+0.8%✅⬆️
process.time_to_main_ms77.47 ± (77.12 - 77.82) ms77.70 ± (77.40 - 78.01) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.60 ± (10.59 - 10.60) MB10.62 ± (10.62 - 10.63) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.67 ± (21.61 - 21.73) ms22.00 ± (21.94 - 22.07) ms+1.5%✅⬆️
process.time_to_main_ms76.84 ± (76.51 - 77.18) ms78.72 ± (78.38 - 79.05) ms+2.4%✅⬆️
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) ms209.77 ± (208.39 - 211.15) ms-0.4%
process.time_to_main_ms465.15 ± (464.20 - 466.09) ms467.02 ± (466.02 - 468.02) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.04 ± (48.02 - 48.07) MB48.07 ± (48.05 - 48.10) 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) ms20.09 ± (20.03 - 20.15) ms+0.5%✅⬆️
process.time_to_main_ms75.42 ± (75.06 - 75.78) ms76.51 ± (76.18 - 76.84) ms+1.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.65 ± (7.65 - 7.66) MB7.67 ± (7.66 - 7.67) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.90 ± (19.84 - 19.95) ms20.01 ± (19.95 - 20.06) ms+0.6%✅⬆️
process.time_to_main_ms76.06 ± (75.78 - 76.33) ms78.06 ± (77.75 - 78.36) ms+2.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.70 ± (7.70 - 7.71) MB7.70 ± (7.70 - 7.71) MB+0.0%✅⬆️
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) ms192.42 ± (191.42 - 193.41) ms+0.7%✅⬆️
process.time_to_main_ms453.35 ± (452.57 - 454.14) ms456.89 ± (455.87 - 457.91) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.36 ± (36.31 - 36.40) MB36.40 ± (36.37 - 36.44) MB+0.1%✅⬆️
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.70 ± (192.65 - 193.40) ms+0.7%✅⬆️
.NET Framework 4.8 - Bailout
duration195.81 ± (195.54 - 196.39) ms196.93 ± (196.95 - 197.69) ms+0.6%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1102.50 ± (1107.10 - 1116.52) ms1107.63 ± (1109.50 - 1117.69) ms+0.5%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms186.75 ± (186.46 - 187.04) ms192.41 ± (191.58 - 193.25) ms+3.0%✅⬆️
process.time_to_main_ms80.21 ± (80.01 - 80.41) ms82.97 ± (82.55 - 83.39) ms+3.4%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.11 ± (16.08 - 16.13) MB16.04 ± (16.02 - 16.07) MB-0.4%
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.2%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms186.61 ± (186.31 - 186.90) ms188.15 ± (187.82 - 188.48) ms+0.8%✅⬆️
process.time_to_main_ms81.47 ± (81.34 - 81.60) ms82.35 ± (82.18 - 82.52) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.17 ± (16.14 - 16.20) MB16.15 ± (16.12 - 16.18) MB-0.1%
runtime.dotnet.threads.count20 ± (20 - 21)21 ± (21 - 21)+0.5%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms399.27 ± (396.73 - 401.82) ms405.75 ± (402.82 - 408.69) ms+1.6%✅⬆️
process.time_to_main_ms468.60 ± (467.86 - 469.34) ms475.66 ± (474.65 - 476.67) ms+1.5%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.59 ± (58.47 - 58.71) MB58.62 ± (58.50 - 58.75) MB+0.1%✅⬆️
runtime.dotnet.threads.count30 ± (29 - 30)29 ± (29 - 30)-0.1%
.NET 6 - Baseline
process.internal_duration_ms191.50 ± (191.19 - 191.80) ms195.50 ± (195.03 - 195.96) ms+2.1%✅⬆️
process.time_to_main_ms69.85 ± (69.68 - 70.02) ms71.07 ± (70.89 - 71.25) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed15.89 ± (15.72 - 16.06) MB16.32 ± (16.29 - 16.36) MB+2.7%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)19 ± (19 - 19)+6.0%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms190.10 ± (189.89 - 190.32) ms193.85 ± (193.45 - 194.25) ms+2.0%✅⬆️
process.time_to_main_ms70.42 ± (70.35 - 70.49) ms71.55 ± (71.39 - 71.71) ms+1.6%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.24 ± (16.10 - 16.38) MB16.32 ± (16.22 - 16.42) MB+0.5%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)20 ± (20 - 20)+4.2%✅⬆️
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms415.11 ± (411.93 - 418.28) ms416.23 ± (413.38 - 419.08) ms+0.3%✅⬆️
process.time_to_main_ms439.76 ± (439.25 - 440.27) ms445.33 ± (444.61 - 446.05) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed58.68 ± (58.53 - 58.83) MB58.92 ± (58.80 - 59.05) MB+0.4%✅⬆️
runtime.dotnet.threads.count30 ± (30 - 30)30 ± (30 - 30)+0.2%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms189.85 ± (189.48 - 190.22) ms192.40 ± (191.95 - 192.85) ms+1.3%✅⬆️
process.time_to_main_ms69.41 ± (69.22 - 69.60) ms70.07 ± (69.87 - 70.26) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.79 ± (11.77 - 11.81) MB11.67 ± (11.64 - 11.69) MB-1.0%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.5%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms188.25 ± (188.02 - 188.49) ms191.75 ± (191.41 - 192.08) ms+1.9%✅⬆️
process.time_to_main_ms70.20 ± (70.09 - 70.31) ms71.19 ± (71.00 - 71.38) ms+1.4%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.85 ± (11.78 - 11.91) MB11.72 ± (11.69 - 11.74) MB-1.1%
runtime.dotnet.threads.count19 ± (18 - 19)19 ± (19 - 19)+2.7%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms363.66 ± (362.36 - 364.96) ms369.21 ± (367.85 - 370.57) ms+1.5%✅⬆️
process.time_to_main_ms427.55 ± (427.04 - 428.07) ms432.74 ± (432.17 - 433.31) ms+1.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.87 ± (47.83 - 47.90) MB47.93 ± (47.91 - 47.96) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.3%
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 (7850) - mean (76ms)  : 70, 83
    master - mean (75ms)  : 70, 81

    section Bailout
    This PR (7850) - mean (80ms)  : 74, 85
    master - mean (79ms)  : 75, 83

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (1,074ms)  : 988, 1160
    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 (7850) - mean (120ms)  : 113, 126
    master - mean (117ms)  : 111, 123

    section Bailout
    This PR (7850) - mean (121ms)  : 114, 129
    master - mean (120ms)  : 114, 125

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (762ms)  : 718, 806
    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 (7850) - mean (107ms)  : 101, 113
    master - mean (106ms)  : 100, 113

    section Bailout
    This PR (7850) - mean (108ms)  : 100, 115
    master - mean (106ms)  : 100, 111

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (712ms)  : 667, 757
    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 (7850) - mean (105ms)  : 99, 111
    master - mean (104ms)  : 97, 111

    section Bailout
    This PR (7850) - mean (106ms)  : 101, 112
    master - mean (105ms)  : 99, 110

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (683ms)  : 655, 710
    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 (7850) - mean (193ms)  : 189, 197
    master - mean (192ms)  : 188, 195

    section Bailout
    This PR (7850) - mean (197ms)  : 193, 201
    master - mean (196ms)  : 192, 200

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (1,114ms)  : 1055, 1172
    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 (7850) - mean (284ms)  : 271, 297
    master - mean (275ms)  : 270, 280

    section Bailout
    This PR (7850) - mean (279ms)  : 275, 283
    master - mean (276ms)  : 272, 280

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (917ms)  : 870, 964
    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 (7850) - mean (274ms)  : 265, 284
    master - mean (270ms)  : 265, 274

    section Bailout
    This PR (7850) - mean (274ms)  : 268, 279
    master - mean (268ms)  : 266, 270

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (893ms)  : 845, 940
    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 (7850) - mean (273ms)  : 267, 278
    master - mean (269ms)  : 264, 274

    section Bailout
    This PR (7850) - mean (273ms)  : 267, 278
    master - mean (268ms)  : 265, 271

    section CallTarget+Inlining+NGEN
    This PR (7850) - mean (832ms)  : 801, 864
    master - mean (821ms)  : 798, 844

Loading

@pr-commenter
Copy link

pr-commenter bot commented Nov 20, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7850 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.219
  • 4 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 ✔️ More allocations ⚠️

More allocations ⚠️ in #7850

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.06 KB 6.11 KB 56 B 0.92%

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
#7850 StartStopWithChild net6.0 11.3μs 59.7ns 310ns 0 0 0 5.52 KB
#7850 StartStopWithChild netcoreapp3.1 14.3μs 67.8ns 280ns 0 0 0 5.72 KB
#7850 StartStopWithChild net472 21.7μs 95.5ns 416ns 0.868 0.326 0 6.11 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

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
#7850 WriteAndFlushEnrichedTraces net6.0 938μs 63.7ns 230ns 0 0 0 2.7 KB
#7850 WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 203ns 788ns 0 0 0 2.7 KB
#7850 WriteAndFlushEnrichedTraces net472 1.24ms 1.53μs 5.91μs 0 0 0 3.35 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
#7850 AllCycleSimpleBody net6.0 1.07μs 5.93ns 37.1ns 0 0 0 1.22 KB
#7850 AllCycleSimpleBody netcoreapp3.1 1.45μs 8.02ns 52.6ns 0 0 0 1.2 KB
#7850 AllCycleSimpleBody net472 1.05μs 0.247ns 0.926ns 0.191 0 0 1.23 KB
#7850 AllCycleMoreComplexBody net6.0 7.16μs 5.61ns 21.7ns 0 0 0 4.72 KB
#7850 AllCycleMoreComplexBody netcoreapp3.1 9.07μs 42.9ns 166ns 0 0 0 4.62 KB
#7850 AllCycleMoreComplexBody net472 7.85μs 1.68ns 6.28ns 0.744 0 0 4.74 KB
#7850 ObjectExtractorSimpleBody net6.0 317ns 1.51ns 6.03ns 0 0 0 280 B
#7850 ObjectExtractorSimpleBody netcoreapp3.1 399ns 2.16ns 12.6ns 0 0 0 272 B
#7850 ObjectExtractorSimpleBody net472 309ns 0.0219ns 0.076ns 0.0446 0 0 281 B
#7850 ObjectExtractorMoreComplexBody net6.0 6.23μs 32.7ns 167ns 0 0 0 3.78 KB
#7850 ObjectExtractorMoreComplexBody netcoreapp3.1 7.83μs 36.7ns 142ns 0 0 0 3.69 KB
#7850 ObjectExtractorMoreComplexBody net472 6.85μs 3.07ns 11.9ns 0.583 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
#7850 EncodeArgs net6.0 77.3μs 73.6ns 285ns 0 0 0 32.4 KB
#7850 EncodeArgs netcoreapp3.1 98.7μs 127ns 493ns 0 0 0 32.4 KB
#7850 EncodeArgs net472 109μs 14ns 52.3ns 4.89 0 0 32.51 KB
#7850 EncodeLegacyArgs net6.0 143μs 126ns 490ns 0 0 0 2.15 KB
#7850 EncodeLegacyArgs netcoreapp3.1 200μs 223ns 865ns 0 0 0 2.15 KB
#7850 EncodeLegacyArgs net472 261μs 48.2ns 187ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

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
#7850 RunWafRealisticBenchmark net6.0 395μs 59.6ns 231ns 0 0 0 4.56 KB
#7850 RunWafRealisticBenchmark netcoreapp3.1 879μs 4.17μs 16.1μs 0 0 0 4.48 KB
#7850 RunWafRealisticBenchmark net472 428μs 54.9ns 198ns 0 0 0 4.66 KB
#7850 RunWafRealisticBenchmarkWithAttack net6.0 286μs 45.4ns 170ns 0 0 0 2.24 KB
#7850 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 310μs 140ns 486ns 0 0 0 2.22 KB
#7850 RunWafRealisticBenchmarkWithAttack net472 313μs 21.3ns 82.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
#7850 SendRequest net6.0 61μs 61.5ns 222ns 0 0 0 14.52 KB
#7850 SendRequest netcoreapp3.1 71μs 81.5ns 305ns 0 0 0 17.42 KB
#7850 SendRequest net472 0.00688ns 0.00247ns 0.00956ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ Fewer allocations 🎉

Slower ⚠️ in #7850

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1.293 820,192.79 1,060,308.96

Fewer allocations 🎉 in #7850

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
#7850 OriginalCharSlice net6.0 1.94ms 1.65μs 6.37μs 0 0 0 640.01 KB
#7850 OriginalCharSlice netcoreapp3.1 2.1ms 7.01μs 24.3μs 0 0 0 640 KB
#7850 OriginalCharSlice net472 2.65ms 270ns 973ns 100 0 0 641.95 KB
#7850 OptimizedCharSlice net6.0 1.38ms 372ns 1.44μs 0 0 0 4 B
#7850 OptimizedCharSlice netcoreapp3.1 1.65ms 235ns 878ns 0 0 0 1 B
#7850 OptimizedCharSlice net472 2.01ms 318ns 1.23μs 0 0 0 73 B
#7850 OptimizedCharSliceWithPool net6.0 1.06ms 51.1ns 198ns 0 0 0 4 B
#7850 OptimizedCharSliceWithPool netcoreapp3.1 797μs 115ns 446ns 0 0 0 0 b
#7850 OptimizedCharSliceWithPool net472 1.15ms 155ns 601ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7850

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 42.76 KB 41.99 KB -766 B -1.79%

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
#7850 WriteAndFlushEnrichedTraces net6.0 691μs 3.63μs 17.8μs 0 0 0 41.71 KB
#7850 WriteAndFlushEnrichedTraces netcoreapp3.1 687μs 3.96μs 31.2μs 0 0 0 41.99 KB
#7850 WriteAndFlushEnrichedTraces net472 942μs 4.44μs 18.3μs 8.33 0 0 56.39 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
#7850 ExecuteNonQuery net6.0 1.84μs 0.519ns 1.87ns 0 0 0 1.02 KB
#7850 ExecuteNonQuery netcoreapp3.1 2.59μs 11.1ns 42.9ns 0 0 0 1.02 KB
#7850 ExecuteNonQuery net472 2.79μs 2.77ns 10.7ns 0.153 0.0139 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
#7850 CallElasticsearch net6.0 1.7μs 8.87ns 44.4ns 0 0 0 1.03 KB
#7850 CallElasticsearch netcoreapp3.1 2.31μs 8.08ns 30.2ns 0 0 0 1.03 KB
#7850 CallElasticsearch net472 3.48μs 1.45ns 5.61ns 0.157 0 0 1.04 KB
#7850 CallElasticsearchAsync net6.0 1.82μs 8.92ns 37.8ns 0 0 0 1.01 KB
#7850 CallElasticsearchAsync netcoreapp3.1 2.38μs 11.3ns 46.6ns 0 0 0 1.08 KB
#7850 CallElasticsearchAsync net472 3.75μs 2.09ns 8.08ns 0.169 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
#7850 ExecuteAsync net6.0 1.94μs 2.3ns 8.6ns 0 0 0 952 B
#7850 ExecuteAsync netcoreapp3.1 2.47μs 5.11ns 19.8ns 0 0 0 952 B
#7850 ExecuteAsync net472 2.56μs 1.21ns 4.54ns 0.14 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
#7850 SendAsync net6.0 6.88μs 26.9ns 104ns 0 0 0 2.36 KB
#7850 SendAsync netcoreapp3.1 8.5μs 22ns 85.2ns 0 0 0 2.9 KB
#7850 SendAsync net472 12.2μs 8.96ns 34.7ns 0.488 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7850

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.149 482,500.00 554,500.00

More allocations ⚠️ in #7850

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 260.02 KB 278.34 KB 18.31 KB 7.04%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.64 KB 43.3 KB 656 B 1.54%

Fewer allocations 🎉 in #7850

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 44.14 KB 43.78 KB -368 B -0.83%
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
#7850 StringConcatBenchmark net6.0 44.1μs 232ns 1.52μs 0 0 0 43.78 KB
#7850 StringConcatBenchmark netcoreapp3.1 47.6μs 277ns 2.18μs 0 0 0 43.3 KB
#7850 StringConcatBenchmark net472 56.4μs 281ns 1.29μs 0 0 0 57.34 KB
#7850 StringConcatAspectBenchmark net6.0 555μs 1.47μs 6.41μs 0 0 0 278.34 KB
#7850 StringConcatAspectBenchmark netcoreapp3.1 528μs 2.45μs 9.16μs 0 0 0 256.98 KB
#7850 StringConcatAspectBenchmark net472 408μs 2.34μs 19.1μ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
#7850 EnrichedLog net6.0 2.62μs 13.2ns 60.3ns 0 0 0 1.7 KB
#7850 EnrichedLog netcoreapp3.1 3.58μs 14.8ns 57.5ns 0 0 0 1.7 KB
#7850 EnrichedLog net472 3.79μs 5ns 18.7ns 0.246 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
#7850 EnrichedLog net6.0 125μs 93ns 335ns 0 0 0 4.31 KB
#7850 EnrichedLog netcoreapp3.1 128μs 203ns 731ns 0 0 0 4.31 KB
#7850 EnrichedLog net472 168μs 116ns 451ns 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
#7850 EnrichedLog net6.0 5μs 14.4ns 55.9ns 0 0 0 2.26 KB
#7850 EnrichedLog netcoreapp3.1 6.72μs 3.11ns 12ns 0 0 0 2.26 KB
#7850 EnrichedLog net472 7.52μs 3.96ns 14.8ns 0.301 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
#7850 SendReceive net6.0 1.99μs 8.75ns 33.9ns 0 0 0 1.2 KB
#7850 SendReceive netcoreapp3.1 2.57μs 10.3ns 40.1ns 0 0 0 1.2 KB
#7850 SendReceive net472 3.04μs 5.27ns 20.4ns 0.181 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
#7850 EnrichedLog net6.0 4.2μs 14.4ns 55.8ns 0 0 0 1.58 KB
#7850 EnrichedLog netcoreapp3.1 5.73μs 16.2ns 62.8ns 0 0 0 1.63 KB
#7850 EnrichedLog net472 6.55μs 5.82ns 22.5ns 0.294 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
#7850 StartFinishSpan net6.0 782ns 0.414ns 1.6ns 0 0 0 576 B
#7850 StartFinishSpan netcoreapp3.1 988ns 5.09ns 22.8ns 0 0 0 576 B
#7850 StartFinishSpan net472 949ns 0.318ns 1.23ns 0.0905 0 0 578 B
#7850 StartFinishScope net6.0 925ns 4.55ns 18.8ns 0 0 0 696 B
#7850 StartFinishScope netcoreapp3.1 1.19μs 4.32ns 16.7ns 0 0 0 696 B
#7850 StartFinishScope net472 1.15μs 0.7ns 2.71ns 0.103 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
#7850 RunOnMethodBegin net6.0 1.05μs 5.16ns 20.6ns 0 0 0 696 B
#7850 RunOnMethodBegin netcoreapp3.1 1.47μs 7.29ns 30.1ns 0 0 0 696 B
#7850 RunOnMethodBegin net472 1.43μs 0.203ns 0.788ns 0.1 0 0 658 B

@github-actions
Copy link
Contributor

github-actions bot commented Nov 21, 2025

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

7 occurrences of :

+      peer.service: MyTableName,
[...]
+      _dd.peer.service.source: tablename

1 occurrences of :

+      peer.service: MyEventBus,
[...]
+      _dd.peer.service.source: rulename

2 occurrences of :

+      peer.service: MyStreamName,
[...]
+      _dd.peer.service.source: streamname

14 occurrences of :

+      peer.service: my-bucket,
[...]
+      _dd.peer.service.source: bucketname

1 occurrences of :

+      _dd.peer.service.source: bucketname

4 occurrences of :

+      peer.service: MyTopic,
[...]
+      _dd.peer.service.source: topicname

16 occurrences of :

+      peer.service: MyAsyncSQSQueue,
[...]
+      _dd.peer.service.source: queuename

16 occurrences of :

+      peer.service: MyAsyncSQSQueue2,
[...]
+      _dd.peer.service.source: queuename

2 occurrences of :

+      peer.service: StepFunction,
[...]
+      _dd.peer.service.source: statemachinename

var service = tags.AwsService;
var region = tags.Region;
var isAwsLambda = EnvironmentHelpers.IsAwsLambda();
if (isAwsLambda && tags.Region != null)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

going to replace tags.Region with region (variable declared two lines above)

switch (service)
{
case "DynamoDB":
if (tags is AwsDynamoDbTags)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

will replace this pattern with if (tags is AwsDynamoDbTags dbTags) to avoid the declaration of var dbTags in the next line

@rithikanarayan rithikanarayan marked this pull request as ready for review November 24, 2025 18:45
@rithikanarayan rithikanarayan requested review from a team as code owners November 24, 2025 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants