Skip to content

Add --version and available-commands to FleetInstaller.exe #7063

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 5, 2025

Conversation

andrewlock
Copy link
Member

@andrewlock andrewlock commented Jun 4, 2025

Summary of changes

Add a --version and available-commands to FleetInstaller.exe

Reason for change

These are useful for managing back-compat in the future

Implementation details

  • Enabled the version printing using UseVersionOption()
  • Added a new available-commands command that prints the available commands as JSON

We don't have (or want) a JSON library dependency really, so just outputting the JSON manually.

Test coverage

Meh

Other details

Part of a stack working on Windows SSI

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Jun 4, 2025

Datadog Report

All test runs bc4132f 🔗

2 Total Test Services: 0 Failed, 2 Passed

Test Services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Test Service View
dd-trace-dotnet 0 0 0 251750 2490 18h 6m 13.31s Link
exploration_tests 0 0 0 22085 3 2m 14.68s Link

@andrewlock
Copy link
Member Author

andrewlock commented Jun 4, 2025

Execution-Time Benchmarks Report ⏱️

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

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

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

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

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

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (75ms)  : 70, 79
     .   : milestone, 75,
    master - mean (75ms)  : 70, 80
     .   : milestone, 75,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (1,067ms)  : 1031, 1104
     .   : milestone, 1067,
    master - mean (1,077ms)  : 1041, 1113
     .   : milestone, 1077,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (113ms)  : 105, 121
     .   : milestone, 113,
    master - mean (111ms)  : 107, 114
     .   : milestone, 111,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (740ms)  : 717, 762
     .   : milestone, 740,
    master - mean (746ms)  : 728, 764
     .   : milestone, 746,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (96ms)  : 93, 100
     .   : milestone, 96,
    master - mean (100ms)  : 93, 106
     .   : milestone, 100,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (701ms)  : 673, 730
     .   : milestone, 701,
    master - mean (717ms)  : 693, 741
     .   : milestone, 717,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (190ms)  : 186, 194
     .   : milestone, 190,
    master - mean (189ms)  : 186, 193
     .   : milestone, 189,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (1,164ms)  : 1146, 1182
     .   : milestone, 1164,
    master - mean (1,164ms)  : 1142, 1186
     .   : milestone, 1164,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (270ms)  : 265, 275
     .   : milestone, 270,
    master - mean (270ms)  : 267, 272
     .   : milestone, 270,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (930ms)  : 916, 944
     .   : milestone, 930,
    master - mean (934ms)  : 921, 947
     .   : milestone, 934,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7063) - mean (262ms)  : 259, 266
     .   : milestone, 262,
    master - mean (263ms)  : 259, 267
     .   : milestone, 263,

    section CallTarget+Inlining+NGEN
    This PR (7063) - mean (924ms)  : 911, 937
     .   : milestone, 924,
    master - mean (928ms)  : 910, 946
     .   : milestone, 928,

Loading

@andrewlock andrewlock force-pushed the andrew/win-ssi/add-version-command branch from 762c357 to bc4132f Compare June 5, 2025 09:44
@pr-commenter
Copy link

pr-commenter bot commented Jun 5, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7063 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.205
  • 28 benchmarks have fewer allocations
  • 5 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 #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.09 KB 6.13 KB 39 B 0.64%

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.58 KB 5.54 KB -37 B -0.66%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 11.2μs 59.7ns 322ns 0 0 0 5.58 KB
master StartStopWithChild netcoreapp3.1 14.1μs 67.5ns 286ns 0 0 0 5.75 KB
master StartStopWithChild net472 22.1μs 119ns 651ns 1.03 0.411 0.103 6.09 KB
#7063 StartStopWithChild net6.0 10.8μs 58.9ns 338ns 0 0 0 5.54 KB
#7063 StartStopWithChild netcoreapp3.1 13.5μs 72.6ns 370ns 0 0 0 5.77 KB
#7063 StartStopWithChild net472 22.3μs 123ns 790ns 0.982 0.327 0.109 6.13 KB
Benchmarks.Trace.AgentWriterBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.33 KB 0 b -3.33 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 927μs 26.6ns 103ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 404ns 1.56μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.25ms 357ns 1.38μs 0 0 0 3.33 KB
#7063 WriteAndFlushEnrichedTraces net6.0 933μs 46.8ns 181ns 0 0 0 2.71 KB
#7063 WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 109ns 409ns 0 0 0 2.7 KB
#7063 WriteAndFlushEnrichedTraces net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 236.35 KB 0 b -236.35 KB -100.00%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 239.87 KB 0 b -239.87 KB -100.00%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑net472 281 B 0 b -281 B -100.00%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody‑net472 3.8 KB 0 b -3.8 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 331μs 1.76μs 8.42μs 0 0 0 197.06 KB
master AllCycleSimpleBody netcoreapp3.1 510μs 1.45μs 5.61μs 0 0 0 204.77 KB
master AllCycleSimpleBody net472 436μs 119ns 460ns 36.6 2.16 0 236.35 KB
master AllCycleMoreComplexBody net6.0 338μs 1.76μs 8.8μs 0 0 0 200.56 KB
master AllCycleMoreComplexBody netcoreapp3.1 495μs 987ns 3.56μs 0 0 0 208.18 KB
master AllCycleMoreComplexBody net472 446μs 106ns 412ns 36.6 2.16 0 239.87 KB
master ObjectExtractorSimpleBody net6.0 311ns 1.77ns 12.3ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 409ns 1.93ns 8.2ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 303ns 0.175ns 0.676ns 0.0442 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.52μs 29.5ns 110ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.76μs 36.2ns 140ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.66μs 0.89ns 3.33ns 0.599 0 0 3.8 KB
#7063 AllCycleSimpleBody net6.0 324μs 1.68μs 8.23μs 0 0 0 197.41 KB
#7063 AllCycleSimpleBody netcoreapp3.1 506μs 1.96μs 7.33μs 0 0 0 205.17 KB
#7063 AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 AllCycleMoreComplexBody net6.0 337μs 1.74μs 8.34μs 0 0 0 200.92 KB
#7063 AllCycleMoreComplexBody netcoreapp3.1 483μs 2.31μs 9.26μs 0 0 0 208.58 KB
#7063 AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 ObjectExtractorSimpleBody net6.0 311ns 1.62ns 7.6ns 0 0 0 280 B
#7063 ObjectExtractorSimpleBody netcoreapp3.1 400ns 1.94ns 8.47ns 0 0 0 272 B
#7063 ObjectExtractorSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 ObjectExtractorMoreComplexBody net6.0 6.35μs 31.4ns 133ns 0 0 0 3.78 KB
#7063 ObjectExtractorMoreComplexBody netcoreapp3.1 7.77μs 27.9ns 108ns 0 0 0 3.69 KB
#7063 ObjectExtractorMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0 2.16 KB 2.14 KB -12 B -0.56%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472 32.51 KB 0 b -32.51 KB -100.00%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472 2.16 KB 0 b -2.16 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 73.3μs 263ns 984ns 0 0 0 32.41 KB
master EncodeArgs netcoreapp3.1 95.7μs 36.2ns 130ns 0 0 0 32.4 KB
master EncodeArgs net472 107μs 17.6ns 65.8ns 4.82 0 0 32.51 KB
master EncodeLegacyArgs net6.0 143μs 122ns 472ns 0 0 0 2.16 KB
master EncodeLegacyArgs netcoreapp3.1 197μs 42.5ns 147ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 261μs 66.8ns 250ns 0 0 0 2.16 KB
#7063 EncodeArgs net6.0 72.7μs 178ns 666ns 0 0 0 32.4 KB
#7063 EncodeArgs netcoreapp3.1 95.7μs 219ns 848ns 0 0 0 32.4 KB
#7063 EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 EncodeLegacyArgs net6.0 144μs 84.2ns 326ns 0 0 0 2.14 KB
#7063 EncodeLegacyArgs netcoreapp3.1 197μs 87.9ns 341ns 0 0 0 2.14 KB
#7063 EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecWafBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net472 4.66 KB 0 b -4.66 KB -100.00%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net472 2.28 KB 0 b -2.28 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 271μs 133ns 499ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 294μs 264ns 989ns 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 307μs 38.1ns 147ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 181μs 80.1ns 300ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 198μs 104ns 404ns 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 207μs 45.3ns 169ns 0 0 0 2.28 KB
#7063 RunWafRealisticBenchmark net6.0 270μs 59.8ns 232ns 0 0 0 4.55 KB
#7063 RunWafRealisticBenchmark netcoreapp3.1 294μs 688ns 2.66μs 0 0 0 4.48 KB
#7063 RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 RunWafRealisticBenchmarkWithAttack net6.0 182μs 42.3ns 164ns 0 0 0 2.24 KB
#7063 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 195μs 385ns 1.49μs 0 0 0 2.22 KB
#7063 RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.AspNetCoreBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61.1μs 29ns 104ns 0 0 0 14.53 KB
master SendRequest netcoreapp3.1 69.9μs 118ns 440ns 0 0 0 17.42 KB
master SendRequest net472 0.0171ns 0.00147ns 0.00551ns 0 0 0 0 b
#7063 SendRequest net6.0 60.8μs 51.9ns 187ns 0 0 0 14.53 KB
#7063 SendRequest netcoreapp3.1 70.7μs 82.1ns 307ns 0 0 0 17.42 KB
#7063 SendRequest net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Unknown 🤷 More allocations ⚠️

More allocations ⚠️ in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.89 KB 42.32 KB 430 B 1.03%

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 55.75 KB 0 b -55.75 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 645μs 512ns 1.98μs 0 0 0 41.73 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 631μs 1.67μs 6.67μs 0 0 0 41.89 KB
master WriteAndFlushEnrichedTraces net472 923μs 1.93μs 7.2μs 4.46 0 0 55.75 KB
#7063 WriteAndFlushEnrichedTraces net6.0 664μs 584ns 2.26μs 0 0 0 41.77 KB
#7063 WriteAndFlushEnrichedTraces netcoreapp3.1 646μs 1.39μs 4.81μs 0 0 0 42.32 KB
#7063 WriteAndFlushEnrichedTraces net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.DbCommandBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 995 B 0 b -995 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.99μs 10.2ns 46.8ns 0 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 2.53μs 3.43ns 13.3ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.7μs 2.41ns 9.34ns 0.147 0.0134 0 995 B
#7063 ExecuteNonQuery net6.0 1.9μs 10ns 48ns 0 0 0 1.03 KB
#7063 ExecuteNonQuery netcoreapp3.1 2.45μs 6.75ns 26.1ns 0 0 0 1.02 KB
#7063 ExecuteNonQuery net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.ElasticsearchBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 1.05 KB 0 b -1.05 KB -100.00%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.11 KB 0 b -1.11 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.83μs 5.85ns 22.7ns 0 0 0 1.04 KB
master CallElasticsearch netcoreapp3.1 2.3μs 11.8ns 56.6ns 0 0 0 1.04 KB
master CallElasticsearch net472 3.55μs 3.05ns 11.8ns 0.159 0 0 1.05 KB
master CallElasticsearchAsync net6.0 1.81μs 3.89ns 14.5ns 0 0 0 1.02 KB
master CallElasticsearchAsync netcoreapp3.1 2.35μs 7.26ns 28.1ns 0 0 0 1.09 KB
master CallElasticsearchAsync net472 3.84μs 3.19ns 12.4ns 0.169 0 0 1.11 KB
#7063 CallElasticsearch net6.0 1.84μs 9.26ns 40.4ns 0 0 0 1.04 KB
#7063 CallElasticsearch netcoreapp3.1 2.24μs 2.64ns 9.87ns 0 0 0 1.04 KB
#7063 CallElasticsearch net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 CallElasticsearchAsync net6.0 1.91μs 8.36ns 32.4ns 0 0 0 1.02 KB
#7063 CallElasticsearchAsync netcoreapp3.1 2.39μs 12ns 50.8ns 0 0 0 1.09 KB
#7063 CallElasticsearchAsync net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.GraphQLBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472 923 B 0 b -923 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.78μs 9.27ns 43.5ns 0 0 0 960 B
master ExecuteAsync netcoreapp3.1 2.29μs 7.45ns 25.8ns 0 0 0 960 B
master ExecuteAsync net472 2.58μs 1.78ns 6.88ns 0.143 0 0 923 B
#7063 ExecuteAsync net6.0 1.81μs 8.77ns 36.2ns 0 0 0 960 B
#7063 ExecuteAsync netcoreapp3.1 2.42μs 10.1ns 37.8ns 0 0 0 960 B
#7063 ExecuteAsync net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.HttpClientBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 3.19 KB 0 b -3.19 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 7.1μs 10.4ns 39ns 0 0 0 2.37 KB
master SendAsync netcoreapp3.1 8.69μs 14.1ns 54.6ns 0 0 0 2.9 KB
master SendAsync net472 12.5μs 10.3ns 38.5ns 0.498 0 0 3.19 KB
#7063 SendAsync net6.0 7.09μs 6.44ns 23.2ns 0 0 0 2.37 KB
#7063 SendAsync netcoreapp3.1 8.31μs 8.38ns 31.4ns 0 0 0 2.9 KB
#7063 SendAsync net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7063

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 1.214 413,700.00 502,200.00
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.196 458,300.00 548,300.00

More allocations ⚠️ in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 259.96 KB 282.17 KB 22.21 KB 8.54%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.83 KB 47.51 KB 3.68 KB 8.40%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.64 KB 43.73 KB 1.09 KB 2.55%

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 274.93 KB 257.7 KB -17.22 KB -6.26%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 0 b -57.34 KB -100.00%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 286.72 KB 0 b -286.72 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.6μs 212ns 1.6μs 0 0 0 43.83 KB
master StringConcatBenchmark netcoreapp3.1 47.2μs 224ns 838ns 0 0 0 42.64 KB
master StringConcatBenchmark net472 56.8μs 259ns 968ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 458μs 1.08μs 3.89μs 0 0 0 259.96 KB
master StringConcatAspectBenchmark netcoreapp3.1 447μs 6.44μs 63.7μs 0 0 0 274.93 KB
master StringConcatAspectBenchmark net472 410μs 2.07μs 9.27μs 0 0 0 286.72 KB
#7063 StringConcatBenchmark net6.0 48.8μs 283ns 2.08μs 0 0 0 47.51 KB
#7063 StringConcatBenchmark netcoreapp3.1 50.8μs 402ns 3.94μs 0 0 0 43.73 KB
#7063 StringConcatBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 StringConcatAspectBenchmark net6.0 550μs 2.42μs 8.72μs 0 0 0 282.17 KB
#7063 StringConcatAspectBenchmark netcoreapp3.1 505μs 2.24μs 8.67μs 0 0 0 257.7 KB
#7063 StringConcatAspectBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.ILoggerBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.69 KB 0 b -1.69 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.63μs 2.6ns 10.1ns 0 0 0 1.76 KB
master EnrichedLog netcoreapp3.1 3.44μs 4.38ns 17ns 0 0 0 1.76 KB
master EnrichedLog net472 4.05μs 4.83ns 18.7ns 0.265 0 0 1.69 KB
#7063 EnrichedLog net6.0 2.54μs 12ns 49.3ns 0 0 0 1.76 KB
#7063 EnrichedLog netcoreapp3.1 3.53μs 16ns 62.1ns 0 0 0 1.76 KB
#7063 EnrichedLog net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Log4netBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472 4.57 KB 0 b -4.57 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 123μs 145ns 563ns 0 0 0 4.37 KB
master EnrichedLog netcoreapp3.1 126μs 330ns 1.24μs 0 0 0 4.37 KB
master EnrichedLog net472 167μs 161ns 603ns 0 0 0 4.57 KB
#7063 EnrichedLog net6.0 122μs 59.2ns 221ns 0 0 0 4.37 KB
#7063 EnrichedLog netcoreapp3.1 129μs 270ns 1.05μs 0 0 0 4.37 KB
#7063 EnrichedLog net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.NLogBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 2.14 KB 0 b -2.14 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.94μs 19.3ns 74.6ns 0 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 6.77μs 22.2ns 79.9ns 0 0 0 2.32 KB
master EnrichedLog net472 7.45μs 8.04ns 31.1ns 0.335 0 0 2.14 KB
#7063 EnrichedLog net6.0 4.95μs 8.18ns 31.7ns 0 0 0 2.32 KB
#7063 EnrichedLog netcoreapp3.1 6.66μs 23.3ns 90.2ns 0 0 0 2.32 KB
#7063 EnrichedLog net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.RedisBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472 1.21 KB 0 b -1.21 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 2.04μs 10.5ns 49.4ns 0 0 0 1.21 KB
master SendReceive netcoreapp3.1 2.53μs 11.8ns 47.4ns 0 0 0 1.21 KB
master SendReceive net472 3.28μs 2.71ns 10.5ns 0.178 0 0 1.21 KB
#7063 SendReceive net6.0 2.02μs 9.4ns 36.4ns 0 0 0 1.21 KB
#7063 SendReceive netcoreapp3.1 2.67μs 8.33ns 32.3ns 0 0 0 1.21 KB
#7063 SendReceive net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.SerilogBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472 2.08 KB 0 b -2.08 KB -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.18μs 0.92ns 3.44ns 0 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 5.64μs 23ns 89.3ns 0 0 0 1.69 KB
master EnrichedLog net472 6.67μs 7.28ns 27.3ns 0.298 0 0 2.08 KB
#7063 EnrichedLog net6.0 4.17μs 4.46ns 17.3ns 0 0 0 1.64 KB
#7063 EnrichedLog netcoreapp3.1 5.79μs 11.7ns 43.8ns 0 0 0 1.69 KB
#7063 EnrichedLog net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.SpanBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 586 B 0 b -586 B -100.00%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 666 B 0 b -666 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 751ns 3.97ns 22.4ns 0 0 0 584 B
master StartFinishSpan netcoreapp3.1 953ns 4.42ns 17.7ns 0 0 0 584 B
master StartFinishSpan net472 914ns 0.809ns 3.13ns 0.0912 0 0 586 B
master StartFinishScope net6.0 918ns 0.479ns 1.73ns 0 0 0 704 B
master StartFinishScope netcoreapp3.1 1.15μs 6.24ns 34.2ns 0 0 0 704 B
master StartFinishScope net472 1.09μs 0.174ns 0.652ns 0.104 0 0 666 B
#7063 StartFinishSpan net6.0 737ns 2.8ns 10.9ns 0 0 0 584 B
#7063 StartFinishSpan netcoreapp3.1 957ns 0.218ns 0.842ns 0 0 0 584 B
#7063 StartFinishSpan net472 N/A N/A N/A NaN NaN NaN 0 b
#7063 StartFinishScope net6.0 916ns 4.72ns 23.6ns 0 0 0 704 B
#7063 StartFinishScope netcoreapp3.1 1.13μs 1.42ns 5.49ns 0 0 0 704 B
#7063 StartFinishScope net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.TraceAnnotationsBenchmark - Unknown 🤷 Fewer allocations 🎉

Fewer allocations 🎉 in #7063

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 666 B 0 b -666 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.02μs 5.36ns 26.8ns 0 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1.38μs 2.28ns 8.82ns 0 0 0 704 B
master RunOnMethodBegin net472 1.36μs 0.141ns 0.544ns 0.102 0 0 666 B
#7063 RunOnMethodBegin net6.0 1.03μs 5.12ns 22.9ns 0 0 0 704 B
#7063 RunOnMethodBegin netcoreapp3.1 1.49μs 7.09ns 27.5ns 0 0 0 704 B
#7063 RunOnMethodBegin net472 N/A N/A N/A NaN NaN NaN 0 b

}

//language=JSON
yield return $$"""{ "name": "{{command.Name}}", "options": [{{string.Join(", ", GetOptionsJson(command))}}] }""";
Copy link
Collaborator

Choose a reason for hiding this comment

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

What exactly are these commands?

Copy link
Member Author

@andrewlock andrewlock Jun 5, 2025

Choose a reason for hiding this comment

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

These are the various subcommands that the tool exposes, as added here:

https://github.com/DataDog/dd-trace-dotnet/blob/master/tracer/src/Datadog.FleetInstaller/Program.cs#L40-L43

Running the tool as

FleetInstaller.exe available-commands

returns

{
  "commands": [
    { "name": "install-version", "options": [{ "name": "home-path"}] },
    { "name": "uninstall-version", "options": [{ "name": "home-path"}] },
    { "name": "enable-iis-instrumentation", "options": [{ "name": "home-path"}] },
    { "name": "remove-iis-instrumentation", "options": [] },
    { "name": "available-commands", "options": [] }
  ]
}

@andrewlock andrewlock changed the title Add version and available-commands to FleetInstaller.exe Add --version and available-commands to FleetInstaller.exe Jun 5, 2025
@andrewlock andrewlock merged commit 4bb29d2 into master Jun 5, 2025
130 checks passed
@andrewlock andrewlock deleted the andrew/win-ssi/add-version-command branch June 5, 2025 15:47
@github-actions github-actions bot added this to the vNext-v3 milestone Jun 5, 2025
andrewlock added a commit that referenced this pull request Jun 6, 2025
## Summary of changes

- Set `DD_INJECTION_ENABLED=tracer` when doing IIS-only SSI
- Minor cleanup

## Reason for change

This is still _technically_ SSI, so we should probably treat it as such.

## Implementation details

- Add the variable to the list of values we install
- Some minor refactoring

## Test coverage

Meh

## Other details

Stacked on: 
- #7063


<!-- ⚠️ Note: where possible, please obtain 2 approvals prior to
merging. Unless CODEOWNERS specifies otherwise, for external teams it is
typically best to have one review from a team member, and one review
from apm-dotnet. Trivial changes do not require 2 reviews. -->
andrewlock added a commit that referenced this pull request Jun 6, 2025
…le (#7071)

## Summary of changes

If a server doesn't have IIS installed (or doesn't have a sufficiently
high version) then don't return an error when trying to enable IIS
instrumentation

## Reason for change

Currently, if customers try to enable the IIS instrumentation on servers
which do not have IIS, then the installation fails. This is problematic
for some customers, as it means they need to tailor their installation
script based on the features enabled on the host. As a result, we now
want to not fail the installation in this scenario.

## Implementation details

Just return success if they don't have IIS available

## Test coverage

TODO: Will add a smoke test for this scenario

## Other details

Supersedes:
- #7069

Stacked on: 
- #7063
- #7068
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