Conversation
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:
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.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (68ms) : 65, 71
. : milestone, 68,
master - mean (69ms) : 65, 73
. : milestone, 69,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (977ms) : 949, 1004
. : milestone, 977,
master - mean (981ms) : 957, 1005
. : milestone, 981,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (107ms) : 104, 109
. : milestone, 107,
master - mean (108ms) : 105, 110
. : milestone, 108,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (671ms) : 656, 686
. : milestone, 671,
master - mean (679ms) : 666, 693
. : milestone, 679,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (91ms) : 89, 93
. : milestone, 91,
master - mean (91ms) : 89, 93
. : milestone, 91,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (630ms) : 610, 649
. : milestone, 630,
master - mean (637ms) : 622, 651
. : milestone, 637,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (193ms) : 189, 197
. : milestone, 193,
master - mean (194ms) : 189, 199
. : milestone, 194,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (1,099ms) : 1067, 1131
. : milestone, 1099,
master - mean (1,100ms) : 1064, 1136
. : milestone, 1100,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (278ms) : 275, 282
. : milestone, 278,
master - mean (278ms) : 274, 282
. : milestone, 278,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (868ms) : 831, 904
. : milestone, 868,
master - mean (870ms) : 836, 905
. : milestone, 870,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6466) - mean (267ms) : 263, 270
. : milestone, 267,
master - mean (266ms) : 262, 269
. : milestone, 266,
section CallTarget+Inlining+NGEN
This PR (6466) - mean (848ms) : 806, 890
. : milestone, 848,
master - mean (853ms) : 825, 881
. : milestone, 853,
|
Datadog ReportBranch report: ✅ 0 Failed, 469466 Passed, 4181 Skipped, 35h 25m 57.06s Total Time New Flaky Tests (2)
|
Throughput/Crank Report ⚡Throughput results for AspNetCoreSimpleController comparing the following branches/commits: Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red. Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards! gantt
title Throughput Linux x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6466) (11.053M) : 0, 11053346
master (11.161M) : 0, 11161110
benchmarks/2.9.0 (11.033M) : 0, 11032866
section Automatic
This PR (6466) (7.188M) : 0, 7188056
master (7.229M) : 0, 7229017
benchmarks/2.9.0 (7.786M) : 0, 7785853
section Trace stats
master (7.435M) : 0, 7435310
section Manual
master (11.146M) : 0, 11146248
section Manual + Automatic
This PR (6466) (6.657M) : 0, 6656785
master (6.610M) : 0, 6610117
section DD_TRACE_ENABLED=0
master (10.159M) : 0, 10159204
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6466) (9.634M) : 0, 9634025
master (9.601M) : 0, 9600540
benchmarks/2.9.0 (9.495M) : 0, 9494821
section Automatic
This PR (6466) (6.319M) : 0, 6319336
master (6.366M) : 0, 6365756
section Trace stats
master (6.424M) : 0, 6424147
section Manual
master (9.621M) : 0, 9620773
section Manual + Automatic
This PR (6466) (5.872M) : 0, 5872263
master (5.938M) : 0, 5937506
section DD_TRACE_ENABLED=0
master (8.890M) : 0, 8889593
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6466) (9.847M) : 0, 9846624
master (10.145M) : 0, 10145415
benchmarks/2.9.0 (10.020M) : 0, 10019592
section Automatic
This PR (6466) (6.464M) : 0, 6463796
master (6.521M) : 0, 6521495
benchmarks/2.9.0 (7.255M) : 0, 7255257
section Trace stats
master (7.245M) : 0, 7245193
section Manual
master (10.135M) : 0, 10135197
section Manual + Automatic
This PR (6466) (6.180M) : 0, 6179765
master (6.058M) : 0, 6057608
section DD_TRACE_ENABLED=0
master (9.431M) : 0, 9430769
|
Benchmarks Report for tracer 🐌Benchmarks for #6466 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉
|
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 42 KB | 41.74 KB | -255 B | -0.61% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 577μs | 2.77μs | 12.1μs | 0.558 | 0 | 0 | 41.65 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 696μs | 4.03μs | 32μs | 0.332 | 0 | 0 | 42 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 824μs | 3.77μs | 15.1μs | 8.47 | 2.42 | 0.403 | 53.32 KB |
| #6466 | WriteAndFlushEnrichedTraces |
net6.0 | 588μs | 3.44μs | 30.9μs | 0.568 | 0 | 0 | 41.66 KB |
| #6466 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 648μs | 3.01μs | 11.2μs | 0.332 | 0 | 0 | 41.74 KB |
| #6466 | WriteAndFlushEnrichedTraces |
net472 | 865μs | 4.39μs | 19.1μs | 8.81 | 2.52 | 0.419 | 53.25 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.28μs | 0.645ns | 2.41ns | 0.0142 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
netcoreapp3.1 | 1.75μs | 1.2ns | 4.63ns | 0.014 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
net472 | 2.13μs | 3.49ns | 13.5ns | 0.156 | 0.00105 | 0 | 987 B |
| #6466 | ExecuteNonQuery |
net6.0 | 1.29μs | 0.999ns | 3.87ns | 0.0142 | 0 | 0 | 1.02 KB |
| #6466 | ExecuteNonQuery |
netcoreapp3.1 | 1.75μs | 3.43ns | 13.3ns | 0.0138 | 0 | 0 | 1.02 KB |
| #6466 | ExecuteNonQuery |
net472 | 2.03μs | 1ns | 3.61ns | 0.157 | 0.00102 | 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.19μs | 0.601ns | 2.33ns | 0.0137 | 0 | 0 | 976 B |
| master | CallElasticsearch |
netcoreapp3.1 | 1.53μs | 1.08ns | 4.06ns | 0.0129 | 0 | 0 | 976 B |
| master | CallElasticsearch |
net472 | 2.53μs | 1.49ns | 5.58ns | 0.157 | 0 | 0 | 995 B |
| master | CallElasticsearchAsync |
net6.0 | 1.29μs | 0.591ns | 2.21ns | 0.013 | 0 | 0 | 952 B |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 1.6μs | 1.01ns | 3.79ns | 0.0137 | 0 | 0 | 1.02 KB |
| master | CallElasticsearchAsync |
net472 | 2.69μs | 1.17ns | 4.52ns | 0.167 | 0 | 0 | 1.05 KB |
| #6466 | CallElasticsearch |
net6.0 | 1.15μs | 0.42ns | 1.57ns | 0.0133 | 0 | 0 | 976 B |
| #6466 | CallElasticsearch |
netcoreapp3.1 | 1.54μs | 0.803ns | 3.01ns | 0.0132 | 0 | 0 | 976 B |
| #6466 | CallElasticsearch |
net472 | 2.59μs | 1.57ns | 5.87ns | 0.157 | 0 | 0 | 995 B |
| #6466 | CallElasticsearchAsync |
net6.0 | 1.43μs | 1.29ns | 4.82ns | 0.0137 | 0 | 0 | 952 B |
| #6466 | CallElasticsearchAsync |
netcoreapp3.1 | 1.62μs | 0.802ns | 3.11ns | 0.0138 | 0 | 0 | 1.02 KB |
| #6466 | CallElasticsearchAsync |
net472 | 2.68μs | 1.55ns | 6ns | 0.167 | 0 | 0 | 1.05 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.26μs | 0.717ns | 2.78ns | 0.0132 | 0 | 0 | 952 B |
| master | ExecuteAsync |
netcoreapp3.1 | 1.7μs | 1.22ns | 4.55ns | 0.0128 | 0 | 0 | 952 B |
| master | ExecuteAsync |
net472 | 1.77μs | 0.597ns | 2.31ns | 0.145 | 0 | 0 | 915 B |
| #6466 | ExecuteAsync |
net6.0 | 1.25μs | 0.516ns | 1.93ns | 0.0135 | 0 | 0 | 952 B |
| #6466 | ExecuteAsync |
netcoreapp3.1 | 1.63μs | 1.94ns | 7.27ns | 0.0123 | 0 | 0 | 952 B |
| #6466 | ExecuteAsync |
net472 | 1.85μs | 0.394ns | 1.53ns | 0.145 | 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 | 4.23μs | 0.846ns | 3.05ns | 0.0316 | 0 | 0 | 2.31 KB |
| master | SendAsync |
netcoreapp3.1 | 5.34μs | 5.13ns | 19.9ns | 0.0373 | 0 | 0 | 2.85 KB |
| master | SendAsync |
net472 | 7.27μs | 2.65ns | 9.9ns | 0.493 | 0 | 0 | 3.12 KB |
| #6466 | SendAsync |
net6.0 | 4.5μs | 1.72ns | 6.43ns | 0.0316 | 0 | 0 | 2.31 KB |
| #6466 | SendAsync |
netcoreapp3.1 | 5.31μs | 1.76ns | 6.6ns | 0.0374 | 0 | 0 | 2.85 KB |
| #6466 | SendAsync |
net472 | 7.33μs | 1.85ns | 7.18ns | 0.494 | 0 | 0 | 3.12 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 | 1.61μs | 0.949ns | 3.55ns | 0.0233 | 0 | 0 | 1.64 KB |
| master | EnrichedLog |
netcoreapp3.1 | 2.18μs | 1.53ns | 5.73ns | 0.0219 | 0 | 0 | 1.64 KB |
| master | EnrichedLog |
net472 | 2.72μs | 1.3ns | 4.85ns | 0.249 | 0 | 0 | 1.57 KB |
| #6466 | EnrichedLog |
net6.0 | 1.53μs | 0.669ns | 2.5ns | 0.0231 | 0 | 0 | 1.64 KB |
| #6466 | EnrichedLog |
netcoreapp3.1 | 2.33μs | 1.23ns | 4.78ns | 0.0223 | 0 | 0 | 1.64 KB |
| #6466 | EnrichedLog |
net472 | 2.75μs | 1.44ns | 5.59ns | 0.249 | 0 | 0 | 1.57 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 | 119μs | 161ns | 622ns | 0.0593 | 0 | 0 | 4.28 KB |
| master | EnrichedLog |
netcoreapp3.1 | 122μs | 181ns | 702ns | 0 | 0 | 0 | 4.28 KB |
| master | EnrichedLog |
net472 | 152μs | 145ns | 562ns | 0.683 | 0.228 | 0 | 4.46 KB |
| #6466 | EnrichedLog |
net6.0 | 118μs | 136ns | 510ns | 0.0587 | 0 | 0 | 4.28 KB |
| #6466 | EnrichedLog |
netcoreapp3.1 | 119μs | 148ns | 553ns | 0 | 0 | 0 | 4.28 KB |
| #6466 | EnrichedLog |
net472 | 152μs | 146ns | 565ns | 0.689 | 0.23 | 0 | 4.46 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 | 3.09μs | 0.693ns | 2.68ns | 0.0309 | 0 | 0 | 2.2 KB |
| master | EnrichedLog |
netcoreapp3.1 | 4.31μs | 1.01ns | 3.9ns | 0.0303 | 0 | 0 | 2.2 KB |
| master | EnrichedLog |
net472 | 4.76μs | 1.2ns | 4.66ns | 0.319 | 0 | 0 | 2.02 KB |
| #6466 | EnrichedLog |
net6.0 | 2.97μs | 1.09ns | 4.23ns | 0.0312 | 0 | 0 | 2.2 KB |
| #6466 | EnrichedLog |
netcoreapp3.1 | 4.26μs | 5.91ns | 22.9ns | 0.0291 | 0 | 0 | 2.2 KB |
| #6466 | EnrichedLog |
net472 | 4.83μs | 1.54ns | 5.77ns | 0.319 | 0 | 0 | 2.02 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.39μs | 0.686ns | 2.47ns | 0.0161 | 0 | 0 | 1.14 KB |
| master | SendReceive |
netcoreapp3.1 | 1.81μs | 0.995ns | 3.86ns | 0.0153 | 0 | 0 | 1.14 KB |
| master | SendReceive |
net472 | 2.17μs | 3.28ns | 12.7ns | 0.184 | 0 | 0 | 1.16 KB |
| #6466 | SendReceive |
net6.0 | 1.36μs | 1.36ns | 4.91ns | 0.0159 | 0 | 0 | 1.14 KB |
| #6466 | SendReceive |
netcoreapp3.1 | 1.72μs | 0.683ns | 2.64ns | 0.0147 | 0 | 0 | 1.14 KB |
| #6466 | SendReceive |
net472 | 2.11μs | 0.681ns | 2.64ns | 0.183 | 0 | 0 | 1.16 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 | 2.83μs | 1.09ns | 4.07ns | 0.0213 | 0 | 0 | 1.6 KB |
| master | EnrichedLog |
netcoreapp3.1 | 4.08μs | 2.22ns | 8.59ns | 0.0204 | 0 | 0 | 1.65 KB |
| master | EnrichedLog |
net472 | 4.49μs | 11.6ns | 45ns | 0.323 | 0 | 0 | 2.04 KB |
| #6466 | EnrichedLog |
net6.0 | 2.75μs | 1.02ns | 3.83ns | 0.0221 | 0 | 0 | 1.6 KB |
| #6466 | EnrichedLog |
netcoreapp3.1 | 3.94μs | 1.27ns | 4.91ns | 0.0219 | 0 | 0 | 1.65 KB |
| #6466 | EnrichedLog |
net472 | 4.5μs | 2.64ns | 9.87ns | 0.323 | 0 | 0 | 2.04 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6466
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0
1.175
410.73
482.44
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 1.175 | 410.73 | 482.44 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 411ns | 0.263ns | 1.02ns | 0.00804 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 637ns | 0.814ns | 3.15ns | 0.00775 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 669ns | 0.276ns | 1.03ns | 0.0915 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 493ns | 0.287ns | 1.11ns | 0.00969 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 733ns | 0.971ns | 3.76ns | 0.00959 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 930ns | 0.523ns | 2.03ns | 0.104 | 0 | 0 | 658 B |
| #6466 | StartFinishSpan |
net6.0 | 482ns | 0.272ns | 1.06ns | 0.00803 | 0 | 0 | 576 B |
| #6466 | StartFinishSpan |
netcoreapp3.1 | 650ns | 1.23ns | 4.76ns | 0.00779 | 0 | 0 | 576 B |
| #6466 | StartFinishSpan |
net472 | 641ns | 0.438ns | 1.7ns | 0.0918 | 0 | 0 | 578 B |
| #6466 | StartFinishScope |
net6.0 | 484ns | 0.27ns | 0.972ns | 0.00972 | 0 | 0 | 696 B |
| #6466 | StartFinishScope |
netcoreapp3.1 | 788ns | 0.934ns | 3.62ns | 0.00938 | 0 | 0 | 696 B |
| #6466 | StartFinishScope |
net472 | 897ns | 0.683ns | 2.64ns | 0.104 | 0 | 0 | 658 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Faster 🎉 Same allocations ✔️
Faster 🎉 in #6466
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0
1.224
721.85
589.67
| Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 | 1.224 | 721.85 | 589.67 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunOnMethodBegin |
net6.0 | 722ns | 0.335ns | 1.25ns | 0.0098 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 956ns | 0.649ns | 2.51ns | 0.00945 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.17μs | 0.343ns | 1.33ns | 0.104 | 0 | 0 | 658 B |
| #6466 | RunOnMethodBegin |
net6.0 | 590ns | 0.384ns | 1.49ns | 0.00976 | 0 | 0 | 696 B |
| #6466 | RunOnMethodBegin |
netcoreapp3.1 | 950ns | 0.528ns | 1.98ns | 0.00952 | 0 | 0 | 696 B |
| #6466 | RunOnMethodBegin |
net472 | 1.1μs | 0.564ns | 2.18ns | 0.104 | 0 | 0 | 658 B |
## Summary of changes Fix the build and the version-bump action ## Reason for change In #6457, @vandonr spotted that we accidentally, incorrectly, "bumped" the required version of cmake.  Additionally, the new calltargets_generated.g.cpp file _also_ now embeds the version, so we need to either update that, or stop embedding the version. @daniel-romano-DD is looking into the latter approach [here](#6464), so this PR is just a fix to unblock PRs. ## Implementation details - Revert the broken CMakeLists.txt - Fix the broken generated file - Be more discerning in our CMakeLists updates ## Test coverage Tested the version bump routine locally, and confirmed it works as expected now. ## Other details It would be _really_ nice if the version bumping just required bumping one or two values... That _might_ be somewhat feasible in the future, but for now...
## Summary of changes Add `_dd.p.ksr` (Knuth Sampling Rate) propagated tag to spans when sampling is applied via agent rates or trace sampling rules, per the [Transmit Knuth Sampling Rate to Backend RFC](https://docs.google.com/document/d/1Po3qtJb6PGheFeKFSUMv2pVY_y-HFAxTzNLuacCbCXY/edit). ## Reason for change The backend needs to know the exact sampling rate applied by the tracer to correctly compute effective rates during resampling (e.g., tracer 0.5 × backend 0.5 = effective 0.25). This tag enables that by propagating the rate via `x-datadog-tags` and W3C `tracestate`. ## Implementation details - Set `_dd.p.ksr` in `TraceContext.SetSamplingPriority()` for `AgentRate`, `LocalTraceSamplingRule`, `RemoteAdaptiveSamplingRule`, and `RemoteUserSamplingRule` mechanisms - Use `TryAddTag` to preserve the original rate (consistent with `AppliedSamplingRate ??= rate` semantics) - Format with `"0.######"` (up to 6 decimal digits, no trailing zeros, no scientific notation) per RFC spec - Added `.IsOptional("_dd.p.ksr")` to `SpanTagAssertion.cs` so integration test tag validators accept the new tag ## Test coverage - Unit tests in `TraceContextTests_KnuthSamplingRate.cs`: - KSR set for agent rate sampling - KSR set for trace sampling rules (local, remote adaptive, remote user) - KSR NOT set for manual, AppSec, rate limiter, or single span mechanisms - KSR preserved on subsequent sampling calls (TryAddTag semantics) - Formatting with up to 6 decimal digits (boundary values including small rates like 0.00001) - System tests in [system-tests #6466](DataDog/system-tests#6466) ## Other details Related PRs across tracers: - Java: DataDog/dd-trace-java#10802 - Ruby: DataDog/dd-trace-rb#5436 - Node.js: DataDog/dd-trace-js#7741 - PHP: DataDog/dd-trace-php#3701 - Rust: DataDog/dd-trace-rs#180 - C++: DataDog/dd-trace-cpp#288 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
Summary of changes
Fix the build and the version-bump action
Reason for change
In #6457, @vandonr spotted that we accidentally, incorrectly, "bumped" the required version of cmake.
Additionally, the new calltargets_generated.g.cpp file also now embeds the version, so we need to either update that, or stop embedding the version.
@daniel-romano-DD is looking into the latter approach here, so this PR is just a fix to unblock PRs.
Implementation details
Test coverage
Tested the version bump routine locally, and confirmed it works as expected now.
Other details
It would be really nice if the version bumping just required bumping one or two values... That might be somewhat feasible in the future, but for now...