-
Notifications
You must be signed in to change notification settings - Fork 140
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
Create a better OperationName
for Activity
/OpenTelemetry
#4700
Conversation
Datadog ReportBranch report: ❌ ❌ Failed Tests (488)
|
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 (4700) - mean (71ms) : 61, 82
. : milestone, 71,
master - mean (71ms) : 63, 78
. : milestone, 71,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (997ms) : 977, 1017
. : milestone, 997,
master - mean (999ms) : 978, 1020
. : milestone, 999,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4700) - mean (106ms) : 103, 109
. : milestone, 106,
master - mean (106ms) : 103, 109
. : milestone, 106,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (692ms) : 676, 709
. : milestone, 692,
master - mean (694ms) : 670, 717
. : milestone, 694,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4700) - mean (90ms) : 87, 94
. : milestone, 90,
master - mean (90ms) : 87, 93
. : milestone, 90,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (654ms) : 633, 675
. : milestone, 654,
master - mean (659ms) : 636, 682
. : milestone, 659,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4700) - mean (187ms) : 185, 190
. : milestone, 187,
master - mean (187ms) : 185, 190
. : milestone, 187,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (1,105ms) : 1079, 1131
. : milestone, 1105,
master - mean (1,109ms) : 1082, 1136
. : milestone, 1109,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4700) - mean (271ms) : 268, 275
. : milestone, 271,
master - mean (272ms) : 267, 277
. : milestone, 272,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (1,056ms) : 1023, 1089
. : milestone, 1056,
master - mean (1,057ms) : 1027, 1087
. : milestone, 1057,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4700) - mean (263ms) : 259, 266
. : milestone, 263,
master - mean (262ms) : 259, 265
. : milestone, 262,
section CallTarget+Inlining+NGEN
This PR (4700) - mean (1,027ms) : 1004, 1051
. : milestone, 1027,
master - mean (1,032ms) : 1005, 1059
. : milestone, 1032,
|
Benchmarks Report 🐌Benchmarks for #4700 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 ✔️ More allocations
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 7.66 KB | 7.95 KB | 292 B | 3.81% |
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 | 7.38 KB | 7.57 KB | 191 B | 2.59% |
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 | 7.29 KB | 7.48 KB | 187 B | 2.56% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartStopWithChild |
net6.0 | 8.14μs | 42.1ns | 202ns | 0.0197 | 0.0079 | 0 | 7.29 KB |
master | StartStopWithChild |
netcoreapp3.1 | 10.3μs | 56.9ns | 341ns | 0.0312 | 0.0156 | 0.0052 | 7.38 KB |
master | StartStopWithChild |
net472 | 15.7μs | 51ns | 197ns | 1.28 | 0.311 | 0.0934 | 7.66 KB |
#4700 | StartStopWithChild |
net6.0 | 8.59μs | 45.7ns | 263ns | 0.0222 | 0.00889 | 0 | 7.48 KB |
#4700 | StartStopWithChild |
netcoreapp3.1 | 10.6μs | 57.1ns | 318ns | 0.0321 | 0.016 | 0.00534 | 7.57 KB |
#4700 | StartStopWithChild |
net472 | 17.1μs | 47.7ns | 185ns | 1.32 | 0.325 | 0.103 | 7.95 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 | 497μs | 243ns | 940ns | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 644μs | 289ns | 1.12μs | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 802μs | 562ns | 2.18μs | 0.398 | 0 | 0 | 3.3 KB |
#4700 | WriteAndFlushEnrichedTraces |
net6.0 | 487μs | 221ns | 854ns | 0 | 0 | 0 | 2.7 KB |
#4700 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 646μs | 291ns | 1.13μs | 0 | 0 | 0 | 2.7 KB |
#4700 | WriteAndFlushEnrichedTraces |
net472 | 796μs | 177ns | 664ns | 0.398 | 0 | 0 | 3.3 KB |
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster 🎉 Same allocations ✔️
Faster 🎉 in #4700
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody‑netcoreapp3.1
1.179
4,276.37
3,625.58
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody‑netcoreapp3.1 | 1.179 | 4,276.37 | 3,625.58 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | AllCycleSimpleBody |
net6.0 | 44.3μs | 78.3ns | 303ns | 0.0221 | 0 | 0 | 2.02 KB |
master | AllCycleSimpleBody |
netcoreapp3.1 | 45.5μs | 185ns | 715ns | 0.0229 | 0 | 0 | 2 KB |
master | AllCycleSimpleBody |
net472 | 46.3μs | 24.7ns | 85.5ns | 0.326 | 0 | 0 | 2.07 KB |
master | AllCycleMoreComplexBody |
net6.0 | 206μs | 71.1ns | 276ns | 0.103 | 0 | 0 | 8.37 KB |
master | AllCycleMoreComplexBody |
netcoreapp3.1 | 210μs | 83.6ns | 324ns | 0.105 | 0 | 0 | 8.26 KB |
master | AllCycleMoreComplexBody |
net472 | 217μs | 85.3ns | 319ns | 1.28 | 0 | 0 | 8.43 KB |
master | ObjectExtractorSimpleBody |
net6.0 | 131ns | 0.105ns | 0.392ns | 0.00393 | 0 | 0 | 280 B |
master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 211ns | 0.364ns | 1.36ns | 0.00376 | 0 | 0 | 272 B |
master | ObjectExtractorSimpleBody |
net472 | 159ns | 0.103ns | 0.397ns | 0.0446 | 0 | 0 | 281 B |
master | ObjectExtractorMoreComplexBody |
net6.0 | 2.76μs | 1.35ns | 5.22ns | 0.0527 | 0 | 0 | 3.78 KB |
master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 4.28μs | 1.45ns | 5.62ns | 0.0492 | 0 | 0 | 3.69 KB |
master | ObjectExtractorMoreComplexBody |
net472 | 3.5μs | 2.75ns | 10.3ns | 0.602 | 0.00525 | 0 | 3.8 KB |
#4700 | AllCycleSimpleBody |
net6.0 | 43.8μs | 45.4ns | 176ns | 0.0215 | 0 | 0 | 2.02 KB |
#4700 | AllCycleSimpleBody |
netcoreapp3.1 | 46.1μs | 88.5ns | 343ns | 0.023 | 0 | 0 | 2 KB |
#4700 | AllCycleSimpleBody |
net472 | 46.5μs | 136ns | 528ns | 0.319 | 0 | 0 | 2.07 KB |
#4700 | AllCycleMoreComplexBody |
net6.0 | 205μs | 64.2ns | 249ns | 0.103 | 0 | 0 | 8.37 KB |
#4700 | AllCycleMoreComplexBody |
netcoreapp3.1 | 210μs | 93.8ns | 351ns | 0.105 | 0 | 0 | 8.26 KB |
#4700 | AllCycleMoreComplexBody |
net472 | 215μs | 162ns | 626ns | 1.28 | 0 | 0 | 8.43 KB |
#4700 | ObjectExtractorSimpleBody |
net6.0 | 143ns | 0.0774ns | 0.3ns | 0.00395 | 0 | 0 | 280 B |
#4700 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 211ns | 0.16ns | 0.6ns | 0.00374 | 0 | 0 | 272 B |
#4700 | ObjectExtractorSimpleBody |
net472 | 154ns | 0.137ns | 0.531ns | 0.0446 | 0 | 0 | 281 B |
#4700 | ObjectExtractorMoreComplexBody |
net6.0 | 2.74μs | 0.953ns | 3.57ns | 0.0523 | 0 | 0 | 3.78 KB |
#4700 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 3.63μs | 1.44ns | 5.57ns | 0.0506 | 0 | 0 | 3.69 KB |
#4700 | ObjectExtractorMoreComplexBody |
net472 | 3.5μs | 2.69ns | 10.4ns | 0.603 | 0.00526 | 0 | 3.8 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 | RunWaf(args=NestedMap (10)) |
net6.0 | 12.9μs | 3.31ns | 12.8ns | 0.129 | 0 | 0 | 9.42 KB |
master | RunWaf(args=NestedMap (10)) |
netcoreapp3.1 | 20.4μs | 48.2ns | 174ns | 0.122 | 0 | 0 | 9.41 KB |
master | RunWaf(args=NestedMap (10)) |
net472 | 29.9μs | 8.65ns | 33.5ns | 1.49 | 0.0149 | 0 | 9.47 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
net6.0 | 76.5μs | 32.9ns | 123ns | 0.195 | 0 | 0 | 15.76 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
netcoreapp3.1 | 86.4μs | 174ns | 673ns | 0.218 | 0 | 0 | 15.71 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
net472 | 101μs | 92.7ns | 359ns | 2.51 | 0 | 0 | 16.03 KB |
master | RunWaf(args=NestedMap (100)) |
net6.0 | 24.4μs | 10.3ns | 38.4ns | 0.27 | 0 | 0 | 19.66 KB |
master | RunWaf(args=NestedMap (100)) |
netcoreapp3.1 | 39μs | 13.8ns | 53.5ns | 0.273 | 0 | 0 | 20.41 KB |
master | RunWaf(args=NestedMap (100)) |
net472 | 58.3μs | 26.1ns | 101ns | 3.26 | 0.0583 | 0 | 20.62 KB |
master | RunWafWithAttack(args=Neste(...)tack) [23]) |
net6.0 | 91.4μs | 35ns | 121ns | 0.363 | 0 | 0 | 26 KB |
master | RunWafWithAttack(args=Neste(...)tack) [23]) |
netcoreapp3.1 | 111μs | 81.6ns | 316ns | 0.334 | 0 | 0 | 26.71 KB |
master | RunWafWithAttack(args=Neste(...)tack) [23]) |
net472 | 130μs | 233ns | 902ns | 4.27 | 0.0648 | 0 | 27.18 KB |
master | RunWaf(args=NestedMap (20)) |
net6.0 | 24μs | 23.9ns | 92.5ns | 0.276 | 0 | 0 | 19.39 KB |
master | RunWaf(args=NestedMap (20)) |
netcoreapp3.1 | 38.9μs | 11.7ns | 42.3ns | 0.253 | 0 | 0 | 19.83 KB |
master | RunWaf(args=NestedMap (20)) |
net472 | 56.6μs | 29.2ns | 113ns | 3.17 | 0.0566 | 0 | 20.03 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
net6.0 | 92.6μs | 36.8ns | 138ns | 0.369 | 0 | 0 | 25.74 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
netcoreapp3.1 | 110μs | 37.5ns | 130ns | 0.328 | 0 | 0 | 26.14 KB |
master | RunWafWithAttack(args=Neste(...)tack) [22]) |
net472 | 132μs | 152ns | 589ns | 4.18 | 0.0654 | 0 | 26.59 KB |
#4700 | RunWaf(args=NestedMap (10)) |
net6.0 | 12.7μs | 4.55ns | 17ns | 0.133 | 0 | 0 | 9.42 KB |
#4700 | RunWaf(args=NestedMap (10)) |
netcoreapp3.1 | 20.1μs | 4.18ns | 15.6ns | 0.121 | 0 | 0 | 9.41 KB |
#4700 | RunWaf(args=NestedMap (10)) |
net472 | 29.9μs | 9.05ns | 33.9ns | 1.5 | 0 | 0 | 9.47 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
net6.0 | 77μs | 45.2ns | 169ns | 0.203 | 0 | 0 | 15.76 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
netcoreapp3.1 | 87.4μs | 114ns | 427ns | 0.215 | 0 | 0 | 15.71 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
net472 | 100μs | 38.7ns | 150ns | 2.5 | 0 | 0 | 16.03 KB |
#4700 | RunWaf(args=NestedMap (100)) |
net6.0 | 24.4μs | 11.7ns | 45.3ns | 0.27 | 0 | 0 | 19.66 KB |
#4700 | RunWaf(args=NestedMap (100)) |
netcoreapp3.1 | 39.4μs | 7.73ns | 26.8ns | 0.275 | 0 | 0 | 20.41 KB |
#4700 | RunWaf(args=NestedMap (100)) |
net472 | 56.7μs | 28.7ns | 111ns | 3.25 | 0.0565 | 0 | 20.62 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [23]) |
net6.0 | 92.4μs | 223ns | 864ns | 0.365 | 0 | 0 | 26 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [23]) |
netcoreapp3.1 | 111μs | 120ns | 466ns | 0.332 | 0 | 0 | 26.71 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [23]) |
net472 | 133μs | 85.6ns | 320ns | 4.28 | 0.0658 | 0 | 27.18 KB |
#4700 | RunWaf(args=NestedMap (20)) |
net6.0 | 24.2μs | 8.35ns | 32.3ns | 0.266 | 0 | 0 | 19.39 KB |
#4700 | RunWaf(args=NestedMap (20)) |
netcoreapp3.1 | 39.2μs | 10.9ns | 41ns | 0.273 | 0 | 0 | 19.83 KB |
#4700 | RunWaf(args=NestedMap (20)) |
net472 | 56.2μs | 28.2ns | 109ns | 3.16 | 0.056 | 0 | 20.03 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
net6.0 | 90.6μs | 44.1ns | 165ns | 0.321 | 0 | 0 | 25.74 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
netcoreapp3.1 | 110μs | 101ns | 376ns | 0.332 | 0 | 0 | 26.14 KB |
#4700 | RunWafWithAttack(args=Neste(...)tack) [22]) |
net472 | 131μs | 138ns | 535ns | 4.19 | 0.0645 | 0 | 26.59 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 | 171μs | 173ns | 672ns | 0.17 | 0 | 0 | 18.04 KB |
master | SendRequest |
netcoreapp3.1 | 189μs | 290ns | 1.12μs | 0.186 | 0 | 0 | 20.2 KB |
master | SendRequest |
net472 | 0.000213ns | 0.000155ns | 0.000602ns | 0 | 0 | 0 | 0 b |
#4700 | SendRequest |
net6.0 | 168μs | 188ns | 702ns | 0.168 | 0 | 0 | 18.04 KB |
#4700 | SendRequest |
netcoreapp3.1 | 189μs | 135ns | 486ns | 0.189 | 0 | 0 | 20.2 KB |
#4700 | SendRequest |
net472 | 0.000129ns | 8.56E‑05ns | 0.000331ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #4700
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0
41.46 KB
41.81 KB
345 B
0.83%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.63 KB
41.89 KB
263 B
0.63%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 41.46 KB | 41.81 KB | 345 B | 0.83% |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.63 KB | 41.89 KB | 263 B | 0.63% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 534μs | 628ns | 2.26μs | 0.566 | 0 | 0 | 41.46 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 651μs | 1.14μs | 4.43μs | 0.327 | 0 | 0 | 41.63 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 838μs | 2.54μs | 9.85μs | 8.17 | 2.45 | 0.408 | 53.24 KB |
#4700 | WriteAndFlushEnrichedTraces |
net6.0 | 548μs | 2μs | 7.73μs | 0.576 | 0 | 0 | 41.81 KB |
#4700 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 662μs | 1.56μs | 6.05μs | 0.327 | 0 | 0 | 41.89 KB |
#4700 | WriteAndFlushEnrichedTraces |
net472 | 820μs | 3.33μs | 12.5μs | 8.45 | 2.53 | 0.422 | 53.24 KB |
Benchmarks.Trace.DbCommandBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #4700
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0
1.128
955.80
1,078.33
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 | 1.128 | 955.80 | 1,078.33 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteNonQuery |
net6.0 | 956ns | 0.872ns | 3.38ns | 0.0107 | 0 | 0 | 768 B |
master | ExecuteNonQuery |
netcoreapp3.1 | 1.3μs | 0.476ns | 1.78ns | 0.0102 | 0 | 0 | 768 B |
master | ExecuteNonQuery |
net472 | 1.66μs | 4.23ns | 16.4ns | 0.116 | 0 | 0 | 730 B |
#4700 | ExecuteNonQuery |
net6.0 | 1.08μs | 1.16ns | 4.5ns | 0.0109 | 0 | 0 | 768 B |
#4700 | ExecuteNonQuery |
netcoreapp3.1 | 1.37μs | 0.308ns | 1.15ns | 0.0102 | 0 | 0 | 768 B |
#4700 | ExecuteNonQuery |
net472 | 1.62μs | 0.408ns | 1.58ns | 0.116 | 0.00081 | 0 | 730 B |
Benchmarks.Trace.ElasticsearchBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #4700
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0
1.150
1,144.19
1,316.33
Faster 🎉 in #4700
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0
1.114
1,166.23
1,046.88
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 | 1.150 | 1,144.19 | 1,316.33 |
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 | 1.114 | 1,166.23 | 1,046.88 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.17μs | 0.688ns | 2.66ns | 0.0128 | 0 | 0 | 936 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.39μs | 0.813ns | 2.93ns | 0.0125 | 0 | 0 | 936 B |
master | CallElasticsearch |
net472 | 2.32μs | 0.682ns | 2.64ns | 0.151 | 0 | 0 | 955 B |
master | CallElasticsearchAsync |
net6.0 | 1.14μs | 0.379ns | 1.47ns | 0.0127 | 0 | 0 | 912 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.51μs | 1.81ns | 7ns | 0.0134 | 0 | 0 | 984 B |
master | CallElasticsearchAsync |
net472 | 2.46μs | 1.62ns | 6.26ns | 0.16 | 0 | 0 | 1.01 KB |
#4700 | CallElasticsearch |
net6.0 | 1.05μs | 0.545ns | 2.11ns | 0.0132 | 0 | 0 | 936 B |
#4700 | CallElasticsearch |
netcoreapp3.1 | 1.38μs | 0.908ns | 3.4ns | 0.0128 | 0 | 0 | 936 B |
#4700 | CallElasticsearch |
net472 | 2.36μs | 0.957ns | 3.71ns | 0.152 | 0 | 0 | 955 B |
#4700 | CallElasticsearchAsync |
net6.0 | 1.32μs | 0.601ns | 2.25ns | 0.0124 | 0 | 0 | 912 B |
#4700 | CallElasticsearchAsync |
netcoreapp3.1 | 1.39μs | 0.867ns | 3.36ns | 0.0131 | 0 | 0 | 984 B |
#4700 | CallElasticsearchAsync |
net472 | 2.42μs | 0.69ns | 2.58ns | 0.16 | 0 | 0 | 1.01 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.31μs | 0.572ns | 2.14ns | 0.0125 | 0 | 0 | 912 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.52μs | 0.472ns | 1.77ns | 0.0121 | 0 | 0 | 912 B |
master | ExecuteAsync |
net472 | 1.74μs | 0.833ns | 3.23ns | 0.138 | 0 | 0 | 875 B |
#4700 | ExecuteAsync |
net6.0 | 1.22μs | 0.637ns | 2.38ns | 0.0126 | 0 | 0 | 912 B |
#4700 | ExecuteAsync |
netcoreapp3.1 | 1.37μs | 2.83ns | 10.2ns | 0.0122 | 0 | 0 | 912 B |
#4700 | ExecuteAsync |
net472 | 1.66μs | 0.774ns | 2.9ns | 0.139 | 0 | 0 | 875 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 | 3.8μs | 1.3ns | 5.04ns | 0.0265 | 0 | 0 | 1.9 KB |
master | SendAsync |
netcoreapp3.1 | 4.61μs | 1.8ns | 6.99ns | 0.0323 | 0 | 0 | 2.43 KB |
master | SendAsync |
net472 | 7.05μs | 3.77ns | 14.6ns | 0.474 | 0 | 0 | 2.99 KB |
#4700 | SendAsync |
net6.0 | 3.69μs | 1.41ns | 5.29ns | 0.0259 | 0 | 0 | 1.9 KB |
#4700 | SendAsync |
netcoreapp3.1 | 4.52μs | 7.02ns | 27.2ns | 0.0316 | 0 | 0 | 2.43 KB |
#4700 | SendAsync |
net472 | 7.06μs | 1.98ns | 7.66ns | 0.475 | 0 | 0 | 2.99 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.34μs | 0.635ns | 2.46ns | 0.0221 | 0 | 0 | 1.57 KB |
master | EnrichedLog |
netcoreapp3.1 | 2.08μs | 1.27ns | 4.92ns | 0.0208 | 0 | 0 | 1.57 KB |
master | EnrichedLog |
net472 | 2.34μs | 3.15ns | 12.2ns | 0.236 | 0 | 0 | 1.49 KB |
#4700 | EnrichedLog |
net6.0 | 1.33μs | 0.554ns | 2.07ns | 0.0219 | 0 | 0 | 1.57 KB |
#4700 | EnrichedLog |
netcoreapp3.1 | 1.88μs | 1.18ns | 4.57ns | 0.0216 | 0 | 0 | 1.57 KB |
#4700 | EnrichedLog |
net472 | 2.3μs | 2.35ns | 9.11ns | 0.237 | 0 | 0 | 1.49 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 | 111μs | 90.3ns | 350ns | 0.0553 | 0 | 0 | 4.21 KB |
master | EnrichedLog |
netcoreapp3.1 | 119μs | 195ns | 754ns | 0.0588 | 0 | 0 | 4.21 KB |
master | EnrichedLog |
net472 | 146μs | 78ns | 281ns | 0.655 | 0.218 | 0 | 4.38 KB |
#4700 | EnrichedLog |
net6.0 | 111μs | 59ns | 229ns | 0.0554 | 0 | 0 | 4.21 KB |
#4700 | EnrichedLog |
netcoreapp3.1 | 117μs | 250ns | 902ns | 0 | 0 | 0 | 4.21 KB |
#4700 | EnrichedLog |
net472 | 146μs | 53.2ns | 199ns | 0.658 | 0.219 | 0 | 4.38 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 | 2.95μs | 1.05ns | 4.08ns | 0.0297 | 0 | 0 | 2.13 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.96μs | 1.54ns | 5.98ns | 0.0277 | 0 | 0 | 2.13 KB |
master | EnrichedLog |
net472 | 4.53μs | 3.6ns | 13.9ns | 0.305 | 0 | 0 | 1.93 KB |
#4700 | EnrichedLog |
net6.0 | 2.88μs | 0.936ns | 3.63ns | 0.0288 | 0 | 0 | 2.13 KB |
#4700 | EnrichedLog |
netcoreapp3.1 | 3.9μs | 1.78ns | 6.89ns | 0.0294 | 0 | 0 | 2.13 KB |
#4700 | EnrichedLog |
net472 | 4.6μs | 1.31ns | 5.09ns | 0.305 | 0 | 0 | 1.93 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.29μs | 0.633ns | 2.28ns | 0.0154 | 0 | 0 | 1.1 KB |
master | SendReceive |
netcoreapp3.1 | 1.55μs | 0.592ns | 2.21ns | 0.0148 | 0 | 0 | 1.1 KB |
master | SendReceive |
net472 | 1.95μs | 1.16ns | 4.33ns | 0.176 | 0 | 0 | 1.12 KB |
#4700 | SendReceive |
net6.0 | 1.3μs | 0.731ns | 2.83ns | 0.0156 | 0 | 0 | 1.1 KB |
#4700 | SendReceive |
netcoreapp3.1 | 1.61μs | 1.02ns | 3.94ns | 0.0149 | 0 | 0 | 1.1 KB |
#4700 | SendReceive |
net472 | 2.02μs | 3.69ns | 12.8ns | 0.177 | 0 | 0 | 1.12 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.62μs | 1.08ns | 4.2ns | 0.021 | 0 | 0 | 1.53 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.6μs | 1.39ns | 5.4ns | 0.0197 | 0 | 0 | 1.58 KB |
master | EnrichedLog |
net472 | 3.97μs | 1.7ns | 6.37ns | 0.309 | 0 | 0 | 1.96 KB |
#4700 | EnrichedLog |
net6.0 | 2.54μs | 0.89ns | 3.33ns | 0.0216 | 0 | 0 | 1.53 KB |
#4700 | EnrichedLog |
netcoreapp3.1 | 3.56μs | 1.43ns | 5.53ns | 0.0214 | 0 | 0 | 1.58 KB |
#4700 | EnrichedLog |
net472 | 4.12μs | 1.61ns | 6.22ns | 0.31 | 0 | 0 | 1.96 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #4700
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0
1.369
395.77
541.67
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1
1.184
672.86
796.95
several?
Faster 🎉 in #4700
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472
1.194
879.03
736.21
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.119
525.86
470.09
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 1.369 | 395.77 | 541.67 | |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 | 1.184 | 672.86 | 796.95 | several? |
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 | 1.194 | 879.03 | 736.21 | |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.119 | 525.86 | 470.09 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 396ns | 0.157ns | 0.587ns | 0.00743 | 0 | 0 | 536 B |
master | StartFinishSpan |
netcoreapp3.1 | 586ns | 0.257ns | 0.995ns | 0.00731 | 0 | 0 | 536 B |
master | StartFinishSpan |
net472 | 673ns | 0.211ns | 0.817ns | 0.0854 | 0 | 0 | 538 B |
master | StartFinishScope |
net6.0 | 526ns | 0.185ns | 0.715ns | 0.00919 | 0 | 0 | 656 B |
master | StartFinishScope |
netcoreapp3.1 | 673ns | 0.271ns | 1.05ns | 0.00893 | 0 | 0 | 656 B |
master | StartFinishScope |
net472 | 879ns | 0.407ns | 1.58ns | 0.0981 | 0 | 0 | 618 B |
#4700 | StartFinishSpan |
net6.0 | 542ns | 0.148ns | 0.573ns | 0.0074 | 0 | 0 | 536 B |
#4700 | StartFinishSpan |
netcoreapp3.1 | 531ns | 0.337ns | 1.31ns | 0.00727 | 0 | 0 | 536 B |
#4700 | StartFinishSpan |
net472 | 619ns | 0.194ns | 0.728ns | 0.0854 | 0 | 0 | 538 B |
#4700 | StartFinishScope |
net6.0 | 470ns | 0.174ns | 0.675ns | 0.00915 | 0 | 0 | 656 B |
#4700 | StartFinishScope |
netcoreapp3.1 | 781ns | 4.23ns | 24.3ns | 0.00867 | 0 | 0 | 656 B |
#4700 | StartFinishScope |
net472 | 736ns | 0.63ns | 2.44ns | 0.098 | 0 | 0 | 618 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #4700
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1
1.126
714.51
804.25
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 | 1.126 | 714.51 | 804.25 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 560ns | 0.306ns | 1.19ns | 0.00913 | 0 | 0 | 656 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 715ns | 0.199ns | 0.771ns | 0.0088 | 0 | 0 | 656 B |
master | RunOnMethodBegin |
net472 | 953ns | 0.487ns | 1.82ns | 0.0977 | 0 | 0 | 618 B |
#4700 | RunOnMethodBegin |
net6.0 | 580ns | 0.166ns | 0.622ns | 0.00923 | 0 | 0 | 656 B |
#4700 | RunOnMethodBegin |
netcoreapp3.1 | 804ns | 0.544ns | 2.04ns | 0.00893 | 0 | 0 | 656 B |
#4700 | RunOnMethodBegin |
net472 | 915ns | 0.285ns | 1.1ns | 0.0978 | 0 | 0 | 618 B |
Snapshots difference summaryThe following differences have been observed in committed snapshots. It is meant to help the reviewer. 2 occurrences of : - Name: SendMessageToProcessorAsync,
+ Name: internal,
116 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
18 occurrences of : - Name: Message,
+ Name: producer,
9 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ServiceBusSender.Send,
+ Name: servicebus.publish,
5 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ServiceBusReceiver.Receive,
+ Name: servicebus.receive,
8 occurrences of : - Name: ServiceBusProcessor.ProcessMessage,
+ Name: servicebus.process,
30 occurrences of : - Name: ServiceBusReceiver.Complete,
+ Name: servicebus.settle,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: FirstSessionId - Producer,
+ Name: internal,
8 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: Message,
+ Name: producer,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: SecondSessionId - Producer,
+ Name: internal,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ProcessorSessionId - Producer,
+ Name: internal,
2 occurrences of : - Name: ServiceBusSessionReceiver.RenewSessionLock,
+ Name: client.request,
2 occurrences of : - Name: ServiceBusSessionReceiver.SetSessionState,
+ Name: client.request,
2 occurrences of : - Name: ServiceBusSessionReceiver.GetSessionState,
+ Name: client.request,
18 occurrences of : - Name: ServiceBusReceiver.Receive,
+ Name: servicebus.receive,
2 occurrences of : - Name: ServiceBusSessionProcessor.ProcessSessionMessage,
+ Name: servicebus.process,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: TestSenderSchedulingAsync,
+ Name: internal,
2 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ServiceBusSender.Schedule,
+ Name: servicebus.publish,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ServiceBusSender.Cancel,
+ Name: client.request,
4 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
2 occurrences of : - Name: ServiceBusSender.Cancel,
+ Name: client.request,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: SendIndividualMessageAsync,
+ Name: internal,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
[...]
- Name: ServiceBusReceiver.Peek,
+ Name: servicebus.receive,
2 occurrences of : - Name: ServiceBusReceiver.RenewMessageLock,
+ Name: client.request,
2 occurrences of : - Name: ServiceBusReceiver.Abandon,
+ Name: servicebus.settle,
14 occurrences of : - Name: ServiceBusReceiver.Defer,
+ Name: servicebus.settle,
6 occurrences of : - Name: ServiceBusReceiver.ReceiveDeferred,
+ Name: servicebus.receive,
2 occurrences of : - Name: ServiceBusReceiver.DeadLetter,
+ Name: servicebus.settle,
2 occurrences of : - Name: SendBatchMessagesAsync - IEnumerable_ServiceBusMessage,
+ Name: internal,
2 occurrences of : - Name: SendBatchMessagesAsync - ServiceBusMessageBatch,
+ Name: internal,
2 occurrences of : - Name: ServiceBusReceiver.Peek,
+ Name: servicebus.receive,
2 occurrences of : - Name: SendMessageToTopicAsync,
+ Name: internal,
9 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ServiceBusSender.Send,
+ Name: servicebus.publish,
5 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ServiceBusReceiver.Receive,
+ Name: servicebus.receive,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: FirstSessionId - Producer,
+ Name: internal,
8 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: Message,
+ Name: producer,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: SecondSessionId - Producer,
+ Name: internal,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ProcessorSessionId - Producer,
+ Name: internal,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: TestSenderSchedulingAsync,
+ Name: internal,
2 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ServiceBusSender.Schedule,
+ Name: servicebus.publish,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ServiceBusSender.Cancel,
+ Name: client.request,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: SendIndividualMessageAsync,
+ Name: internal,
1 occurrences of : + _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
[...]
- Name: ServiceBusReceiver.Peek,
+ Name: servicebus.receive,
2 occurrences of : - Name: SendBothStreamingRequest,
+ Name: internal,
2 occurrences of : - Name: SendClientStreamingRequest,
+ Name: internal,
2 occurrences of : - Name: SendErrors_Cancelled,
+ Name: internal,
2 occurrences of : - Name: SendErrors_DataLoss,
+ Name: internal,
2 occurrences of : - Name: SendErrors_NotFound,
+ Name: internal,
2 occurrences of : - Name: SendErrors_Throw,
+ Name: internal,
2 occurrences of : - Name: SendErrorsAsync_Cancelled,
+ Name: internal,
2 occurrences of : - Name: SendErrorsAsync_DataLoss,
+ Name: internal,
2 occurrences of : - Name: SendErrorsAsync_NotFound,
+ Name: internal,
2 occurrences of : - Name: SendErrorsAsync_Throw,
+ Name: internal,
2 occurrences of : - Name: SendServerStreamingRequest,
+ Name: internal,
2 occurrences of : - Name: SendUnaryRequest,
+ Name: internal,
2 occurrences of : - Name: SendUnaryRequestAsync,
+ Name: internal,
2 occurrences of : - Name: SendVerySlowRequest,
+ Name: internal,
2 occurrences of : - Name: SendVerySlowRequestAsync,
+ Name: internal,
6 occurrences of : - Name: Main(),
+ Name: internal,
12 occurrences of : - Name: sync-calls,
+ Name: internal,
6 occurrences of : - Name: async-calls,
+ Name: internal,
4 occurrences of : - Name: sync-calls-execute,
+ Name: internal,
4 occurrences of : - Name: async-calls-execute,
+ Name: internal,
1 occurrences of : - Name: Ctor1,
+ Name: server.request,
1 occurrences of : - Name: Ctor2,
+ Name: server.request,
1 occurrences of : - Name: Ctor3,
+ Name: server.request,
1 occurrences of : - Name: Ctor4,
+ Name: server.request,
1 occurrences of : - Name: ErrorSpan,
+ Name: internal,
1 occurrences of : - Name: OkSpan,
+ Name: internal,
1 occurrences of : - Name: UnsetStatusSpan,
+ Name: internal,
1 occurrences of : - Name: ParentSpan,
+ Name: internal,
1 occurrences of : - Name: ChildSpan,
+ Name: internal,
1 occurrences of : - Name: W3CParentSpan,
+ Name: internal,
1 occurrences of : - Name: W3CChildSpan,
+ Name: internal,
1 occurrences of : - Name: MiscSpan,
+ Name: internal,
1 occurrences of : - Name: MiscSpan2,
+ Name: internal,
1 occurrences of : - Name: Parent-NonW3CId,
+ Name: internal,
1 occurrences of : - Name: Child-NonW3CId,
+ Name: internal,
1 occurrences of : - Name: RootSpan,
+ Name: operationnameoverride,
+ Resource: ResourceNameOverride,
+ Service: ServiceNameOverride,
+ Type: SpanTypeOverride,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_5,
+ runtime-id: Guid_2,
+ span.kind: server,
+ _dd.base_service: Samples.NetActivitySdk,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
+ _dd.p.dm: -0,
+ _dd.p.tid: 1234567890abcdef
+ },
+ Metrics: {
+ process_id: 0,
+ _dd.agent_psr: 1.0,
+ _dd.top_level: 1.0,
+ _dd.tracer_kr: 1.0,
+ _dd1.sr.eausr: 1.0,
+ _sampling_priority_v1: 1.0
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_24,
+ Name: internal,
12 occurrences of : - otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_23,
- Name: Saying hello!,
+ TraceId: Id_23,
+ SpanId: Id_25,
+ Name: saying hello!,
[...]
- ParentId: Id_22,
+ ParentId: Id_24,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_24,
- Name: SetTagsActivity,
+ TraceId: Id_23,
+ SpanId: Id_26,
+ Name: internal,
[...]
- ParentId: Id_22,
+ ParentId: Id_24,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_25,
- Name: NameEvent,
+ TraceId: Id_23,
+ SpanId: Id_27,
+ Name: internal,
[...]
- ParentId: Id_22,
+ ParentId: Id_24,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_26,
- Name: AddBaggage,
+ TraceId: Id_23,
+ SpanId: Id_28,
+ Name: internal,
[...]
- ParentId: Id_22,
+ ParentId: Id_24,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_27,
- Name: NameDateEvent,
+ TraceId: Id_23,
+ SpanId: Id_29,
+ Name: http.server.request,
+ Resource: operation name should be-> http.server.request,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_30,
+ Name: http.client.request,
+ Resource: operation name should be-> http.client.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_31,
+ Name: redis.query,
+ Resource: operation name should be-> redis.query,
+ Service: Samples.NetActivitySdk,
+ Type: db,
+ ParentId: Id_24,
+ Tags: {
+ db.system: Redis,
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_32,
+ Name: kafka.receive,
+ Resource: operation name should be-> kafka.receive,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_33,
+ Name: kafka.receive,
+ Resource: operation name should be-> kafka.receive,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_34,
+ Name: kafka.receive,
+ Resource: operation name should be-> kafka.receive,
+ Service: Samples.NetActivitySdk,
+ Type: custom,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: producer,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_35,
+ Name: kafka.receive,
+ Resource: operation name should be-> kafka.receive,
+ Service: Samples.NetActivitySdk,
+ Type: custom,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: consumer,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_36,
+ Name: aws.s3.request,
+ Resource: operation name should be-> aws.s3.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ rpc.service: S3,
+ rpc.system: aws-api,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_37,
+ Name: aws.client.request,
+ Resource: operation name should be-> aws.client.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ rpc.system: aws-api,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_38,
+ Name: grpc.client.request,
+ Resource: operation name should be-> grpc.client.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ rpc.system: GRPC,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_39,
+ Name: grpc.server.request,
+ Resource: operation name should be-> grpc.server.request,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ rpc.system: GRPC,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_40,
+ Name: aws.my-function.invoke,
+ Resource: operation name should be-> aws.my-function.invoke,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ faas.invoked_name: My-Function,
+ faas.invoked_provider: aws,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_41,
+ Name: datasource.invoke,
+ Resource: operation name should be-> datasource.invoke,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ faas.trigger: Datasource,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_42,
+ Name: graphql.server.request,
+ Resource: operation name should be-> graphql.server.request,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ graphql.operation.type: query,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_43,
+ Name: amqp.server.request,
+ Resource: operation name should be-> amqp.server.request,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_44,
+ Name: server.request,
+ Resource: operation name should be-> server.request,
+ Service: Samples.NetActivitySdk,
+ Type: web,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: server,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_45,
+ Name: amqp.client.request,
+ Resource: operation name should be-> amqp.client.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_46,
+ Name: client.request,
+ Resource: operation name should be-> client.request,
+ Service: Samples.NetActivitySdk,
+ Type: http,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: client,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_47,
+ Name: internal,
+ Resource: operation name should be-> internal,
+ Service: Samples.NetActivitySdk,
+ Type: custom,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: internal,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_48,
+ Name: consumer,
+ Resource: operation name should be-> consumer,
+ Service: Samples.NetActivitySdk,
+ Type: custom,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: consumer,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_49,
+ Name: producer,
+ Resource: operation name should be-> producer,
+ Service: Samples.NetActivitySdk,
+ Type: custom,
+ ParentId: Id_24,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: Samples.NetActivitySdk,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_6,
+ span.kind: producer,
+ version: 1.0.0,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_23,
+ SpanId: Id_50,
+ Name: internal,
[...]
- ParentId: Id_25,
+ ParentId: Id_27,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_28,
- Name: SetBaggage,
+ TraceId: Id_23,
+ SpanId: Id_51,
+ Name: internal,
[...]
- ParentId: Id_26,
+ ParentId: Id_28,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_29,
- Name: EmptyTagsEvent,
+ TraceId: Id_23,
+ SpanId: Id_52,
+ Name: internal,
[...]
- ParentId: Id_27,
+ ParentId: Id_50,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_30,
- Name: TagsEvent,
+ TraceId: Id_23,
+ SpanId: Id_53,
+ Name: internal,
[...]
- ParentId: Id_29,
+ ParentId: Id_52,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
1 occurrences of : - TraceId: Id_21,
- SpanId: Id_31,
- Name: MultipleEvents,
+ TraceId: Id_23,
+ SpanId: Id_54,
+ Name: internal,
[...]
- ParentId: Id_30,
+ ParentId: Id_53,
[...]
- otel.trace_id: Guid_5,
+ otel.trace_id: Guid_6,
2 occurrences of : - Name: Saying hello!,
+ Name: internal,
+ Resource: OperationNameRootSpan,
+ Service: MyServiceName,
+ Type: custom,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
+ _dd.p.dm: -0,
+ _dd.p.tid: 1234567890abcdef
+ },
+ Metrics: {
+ process_id: 0,
+ _dd.agent_psr: 1.0,
+ _dd.top_level: 1.0,
+ _dd.tracer_kr: 1.0,
+ _sampling_priority_v1: 1.0
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_3,
+ Name: http.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_4,
+ Name: http.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_5,
+ Name: redis.query,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: db,
+ ParentId: Id_2,
+ Tags: {
+ db.system: Redis,
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_6,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_7,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_8,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_9,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_10,
+ Name: aws.s3.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.service: S3,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_11,
+ Name: aws.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_12,
+ Name: grpc.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_13,
+ Name: grpc.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_14,
+ Name: aws.my-function.invoke,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.invoked_name: My-Function,
+ faas.invoked_provider: aws,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_15,
+ Name: datasource.invoke,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.trigger: Datasource,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_16,
+ Name: graphql.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ graphql.operation.type: query,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_17,
+ Name: amqp.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_18,
+ Name: server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_19,
+ Name: amqp.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_20,
+ Name: client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_21,
+ Name: internal,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_22,
+ Name: consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_23,
+ Name: producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_24,
+ Name: operationnameoverride,
+ Resource: ResourceNameOverride,
+ Service: ServiceNameOverride,
+ Type: SpanTypeOverride,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ },
+ Metrics: {
+ _dd.top_level: 1.0,
+ _dd1.sr.eausr: 1.0
+ }
+ },
+ {
+ TraceId: Id_25,
+ SpanId: Id_26,
+ Name: saying hello!,
27 occurrences of : - otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_3,
- Name: StartSpan,
+ TraceId: Id_25,
+ SpanId: Id_27,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_4,
- Name: StartSpan2,
+ TraceId: Id_25,
+ SpanId: Id_28,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_5,
- Name: StartRootSpan,
+ TraceId: Id_25,
+ SpanId: Id_29,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_6,
- Name: InnerSpanOk,
+ TraceId: Id_25,
+ SpanId: Id_30,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_7,
- Name: InnerSpanError,
+ TraceId: Id_25,
+ SpanId: Id_31,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_8,
- Name: InnerSpan,
+ TraceId: Id_25,
+ SpanId: Id_32,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_9,
- Name: Response,
+ TraceId: Id_25,
+ SpanId: Id_33,
+ Name: internal,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_1,
- SpanId: Id_10,
- Name: StartActiveSpan.Child,
+ TraceId: Id_25,
+ SpanId: Id_34,
+ Name: internal,
[...]
- ParentId: Id_3,
+ ParentId: Id_27,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
6 occurrences of : - TraceId: Id_11,
- SpanId: Id_12,
- Name: SayHello2,
+ TraceId: Id_35,
+ SpanId: Id_36,
+ Name: internal,
9 occurrences of : - otel.trace_id: Guid_4,
+ otel.trace_id: Guid_5,
6 occurrences of : - TraceId: Id_13,
- SpanId: Id_14,
- Name: SayHello3,
+ TraceId: Id_37,
+ SpanId: Id_38,
+ Name: internal,
6 occurrences of : - TraceId: Id_15,
- SpanId: Id_16,
- Name: Transform,
+ TraceId: Id_39,
+ SpanId: Id_40,
+ Name: internal,
9 occurrences of : - otel.trace_id: Guid_6,
+ otel.trace_id: Guid_7,
4 occurrences of : - Name: Saying hello!,
+ Name: internal,
+ Resource: OperationNameRootSpan,
+ Service: MyServiceName,
+ Type: custom,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
+ _dd.p.dm: -0,
+ _dd.p.tid: 1234567890abcdef
+ },
+ Metrics: {
+ process_id: 0,
+ _dd.agent_psr: 1.0,
+ _dd.top_level: 1.0,
+ _dd.tracer_kr: 1.0,
+ _sampling_priority_v1: 1.0
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_3,
+ Name: http.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_4,
+ Name: http.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_5,
+ Name: redis.query,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: db,
+ ParentId: Id_2,
+ Tags: {
+ db.system: Redis,
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_6,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_7,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_8,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_9,
+ Name: kafka.receive,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_10,
+ Name: aws.s3.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.service: S3,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_11,
+ Name: aws.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_12,
+ Name: grpc.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_13,
+ Name: grpc.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_14,
+ Name: aws.my-function.invoke,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.invoked_name: My-Function,
+ faas.invoked_provider: aws,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_15,
+ Name: datasource.invoke,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.trigger: Datasource,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_16,
+ Name: graphql.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ graphql.operation.type: query,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_17,
+ Name: amqp.server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_18,
+ Name: server.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_19,
+ Name: amqp.client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_20,
+ Name: client.request,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_21,
+ Name: internal,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_22,
+ Name: consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_23,
+ Name: producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_24,
+ Name: operationnameoverride,
+ Resource: ResourceNameOverride,
+ Service: ServiceNameOverride,
+ Type: SpanTypeOverride,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ },
+ Metrics: {
+ _dd.top_level: 1.0,
+ _dd1.sr.eausr: 1.0
+ }
+ },
+ {
+ TraceId: Id_25,
+ SpanId: Id_26,
+ Name: saying hello!,
2 occurrences of : - Name: Saying hello!,
+ Name: MyServiceName.internal,
+ Resource: OperationNameRootSpan,
+ Service: MyServiceName,
+ Type: custom,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
+ _dd.p.dm: -0,
+ _dd.p.tid: 1234567890abcdef
+ },
+ Metrics: {
+ process_id: 0,
+ _dd.agent_psr: 1.0,
+ _dd.top_level: 1.0,
+ _dd.tracer_kr: 1.0,
+ _sampling_priority_v1: 1.0
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_3,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_4,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_5,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: db,
+ ParentId: Id_2,
+ Tags: {
+ db.system: Redis,
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_6,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_7,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_8,
+ Name: MyServiceName.producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_9,
+ Name: MyServiceName.consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_10,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.service: S3,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_11,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_12,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_13,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_14,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.invoked_name: My-Function,
+ faas.invoked_provider: aws,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_15,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.trigger: Datasource,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_16,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ graphql.operation.type: query,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_17,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_18,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_19,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_20,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_21,
+ Name: MyServiceName.internal,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_22,
+ Name: MyServiceName.consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_23,
+ Name: MyServiceName.producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_24,
+ Name: operationnameoverride,
+ Resource: ResourceNameOverride,
+ Service: ServiceNameOverride,
+ Type: SpanTypeOverride,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ },
+ Metrics: {
+ _dd.top_level: 1.0,
+ _dd1.sr.eausr: 1.0
+ }
+ },
+ {
+ TraceId: Id_25,
+ SpanId: Id_26,
+ Name: saying hello!,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_3,
+ TraceId: Id_25,
+ SpanId: Id_27,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_4,
+ TraceId: Id_25,
+ SpanId: Id_28,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_5,
+ TraceId: Id_25,
+ SpanId: Id_29,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_6,
+ TraceId: Id_25,
+ SpanId: Id_30,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_7,
+ TraceId: Id_25,
+ SpanId: Id_31,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_8,
+ TraceId: Id_25,
+ SpanId: Id_32,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_9,
+ TraceId: Id_25,
+ SpanId: Id_33,
[...]
- ParentId: Id_2,
+ ParentId: Id_26,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_1,
- SpanId: Id_10,
+ TraceId: Id_25,
+ SpanId: Id_34,
[...]
- ParentId: Id_3,
+ ParentId: Id_27,
[...]
- otel.trace_id: Guid_1,
+ otel.trace_id: Guid_4,
3 occurrences of : - TraceId: Id_11,
- SpanId: Id_12,
+ TraceId: Id_35,
+ SpanId: Id_36,
3 occurrences of : - TraceId: Id_13,
- SpanId: Id_14,
+ TraceId: Id_37,
+ SpanId: Id_38,
3 occurrences of : - TraceId: Id_15,
- SpanId: Id_16,
+ TraceId: Id_39,
+ SpanId: Id_40,
1 occurrences of : - Name: Saying hello!,
+ Name: MyServiceName.internal,
+ Resource: OperationNameRootSpan,
+ Service: MyServiceName,
+ Type: custom,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
+ _dd.p.dm: -0,
+ _dd.p.tid: 1234567890abcdef
+ },
+ Metrics: {
+ process_id: 0,
+ _dd.agent_psr: 1.0,
+ _dd.top_level: 1.0,
+ _dd.tracer_kr: 1.0,
+ _sampling_priority_v1: 1.0
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_3,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_4,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_5,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: db,
+ ParentId: Id_2,
+ Tags: {
+ db.system: Redis,
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_6,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_7,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_8,
+ Name: MyServiceName.producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_9,
+ Name: MyServiceName.consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ messaging.operation: Receive,
+ messaging.system: Kafka,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_10,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.service: S3,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_11,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: aws-api,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_12,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_13,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ rpc.system: GRPC,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_14,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.invoked_name: My-Function,
+ faas.invoked_provider: aws,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_15,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ faas.trigger: Datasource,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_16,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ graphql.operation.type: query,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_17,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_18,
+ Name: MyServiceName.server,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: web,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_19,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ network.protocol.name: Amqp,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_20,
+ Name: MyServiceName.client,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: http,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: client,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_21,
+ Name: MyServiceName.internal,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: internal,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_22,
+ Name: MyServiceName.consumer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: consumer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_23,
+ Name: MyServiceName.producer,
+ Resource: ResourceName,
+ Service: MyServiceName,
+ Type: custom,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: producer,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ }
+ },
+ {
+ TraceId: Id_1,
+ SpanId: Id_24,
+ Name: operationnameoverride,
+ Resource: ResourceNameOverride,
+ Service: ServiceNameOverride,
+ Type: SpanTypeOverride,
+ ParentId: Id_2,
+ Tags: {
+ env: integration_tests,
+ http.request.method: GET,
+ language: dotnet,
+ otel.library.name: MyServiceName,
+ otel.status_code: STATUS_CODE_UNSET,
+ otel.trace_id: Guid_1,
+ runtime-id: Guid_2,
+ service.instance.id: Guid_3,
+ service.name: MyServiceName,
+ service.version: 1.0.x,
+ span.kind: server,
+ telemetry.sdk.language: dotnet,
+ telemetry.sdk.name: opentelemetry,
+ telemetry.sdk.version: sdk-version,
+ _dd.base_service: CustomServiceName,
+ _dd.git.commit.sha: aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbb,
+ _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet
+ },
+ Metrics: {
+ _dd.top_level: 1.0,
+ _dd1.sr.eausr: 1.0
+ }
+ },
+ {
+ TraceId: Id_25,
+ SpanId: Id_26,
+ Name: saying hello!,
1 occurrences of : - Name: GetAsync,
+ Name: internal,
1 occurrences of : - Name: HttpListener.ReceivedRequest,
+ Name: internal,
26 occurrences of : - Name: WebClient,
+ Name: internal,
|
Throughput/Crank Report:zap: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 (4700) (11.149M) : 0, 11149434
master (11.313M) : 0, 11313032
benchmarks/2.9.0 (11.206M) : 0, 11205757
section Automatic
This PR (4700) (7.522M) : crit ,0, 7522336
master (7.927M) : 0, 7927283
benchmarks/2.9.0 (8.195M) : 0, 8195151
section Trace stats
This PR (4700) (7.874M) : 0, 7874396
master (8.134M) : 0, 8133654
section Manual
This PR (4700) (9.846M) : 0, 9845592
master (9.716M) : 0, 9715816
section Manual + Automatic
This PR (4700) (7.433M) : 0, 7433168
master (7.390M) : 0, 7389541
section Version Conflict
This PR (4700) (6.902M) : 0, 6902355
master (6.724M) : 0, 6723974
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (4700) (9.469M) : 0, 9469300
master (9.505M) : 0, 9504703
benchmarks/2.9.0 (9.617M) : 0, 9617265
section Automatic
This PR (4700) (6.510M) : 0, 6510452
master (6.736M) : 0, 6735587
section Trace stats
This PR (4700) (6.825M) : 0, 6824529
master (6.915M) : 0, 6915011
section Manual
This PR (4700) (8.232M) : 0, 8232075
master (8.457M) : 0, 8456919
section Manual + Automatic
This PR (4700) (6.328M) : 0, 6327811
master (6.373M) : 0, 6372696
section Version Conflict
This PR (4700) (5.827M) : 0, 5827106
master (5.816M) : 0, 5815884
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (4700) (9.911M) : 0, 9910784
master (10.235M) : 0, 10234929
benchmarks/2.9.0 (10.172M) : 0, 10172062
section Automatic
This PR (4700) (6.483M) : crit ,0, 6483185
master (7.217M) : 0, 7217154
benchmarks/2.9.0 (7.462M) : 0, 7462407
section Trace stats
This PR (4700) (7.418M) : 0, 7418151
master (7.589M) : 0, 7588710
section Manual
This PR (4700) (9.004M) : crit ,0, 9004354
master (9.631M) : 0, 9630935
section Manual + Automatic
This PR (4700) (6.963M) : crit ,0, 6963344
master (7.406M) : 0, 7406461
section Version Conflict
This PR (4700) (6.485M) : 0, 6485113
master (6.786M) : 0, 6786446
gantt
title Throughput Linux x64 (ASM) (Total requests)
dateFormat X
axisFormat %s
section Baseline
master (7.394M) : 0, 7394086
benchmarks/2.9.0 (7.868M) : 0, 7868377
section No attack
master (2.103M) : 0, 2102824
benchmarks/2.9.0 (3.213M) : 0, 3212808
section Attack
master (1.661M) : 0, 1660712
benchmarks/2.9.0 (2.484M) : 0, 2484244
section Blocking
master (3.418M) : 0, 3417691
section IAST default
master (6.479M) : 0, 6478556
section IAST full
master (5.946M) : 0, 5945586
section Base vuln
master (0.975M) : 0, 974518
section IAST vuln
master (0.859M) : 0, 859378
|
30913b2
to
da9ca1d
Compare
Datadog ReportBranch report: ✅ |
b6903e4
to
cc48dbd
Compare
Definitely hacky solution for the time being and will require some snapshots to change
It didn't appear to show up
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There several snapshots that got updated - some I'd say are more important than others to review. Specifically:
AzureServiceBus
snapshotsOpenTelemetrySdk
snapshotsNetActivitySdk
snapshots
As all of these have examples of the new operation name mapping - AzureServiceBus
ones especially that is just an OpenTelemetry instrumentation.
|
||
namespace Datadog.Trace.Tagging | ||
{ | ||
internal partial class OpenTelemetryTags : CommonTags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should I copy over the AnalyticsSampleRate
and SetAnalyticsSampleRate
from InstrumentationTags
?
[Metric(Trace.Tags.Analytics)] | |
public double? AnalyticsSampleRate { get; set; } | |
public void SetAnalyticsSampleRate(IntegrationId integration, ImmutableTracerSettings settings, bool enabledWithGlobalSetting) | |
{ | |
if (settings != null) | |
{ | |
#pragma warning disable 618 // App analytics is deprecated, but still used | |
AnalyticsSampleRate = settings.GetIntegrationAnalyticsSampleRate(integration, enabledWithGlobalSetting); | |
#pragma warning restore 618 | |
} |
I didn't inherit from InstrumentationTags
as the SpanKind
needs to be settable
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an interesting question. I wonder if we should be calling SetAnalyticsSampleRate
on the Otel tags when we create them 🤔 For example, I see that the AzureServiceBusTags
have it, which suggests we should to me.
In that case I suggest moving the SetAnalyticsSampleRate
tags from AzureServiceBusTags
to here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm I'm not sure what we're supposed to do with SetAnalyticsSampleRate
and honestly it's been a while since I really understood what this is doing. 🆘 @lucaspimentel
Based on my current understanding, we would set this based on the SpanKind:
- Client/Producer:
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false)
- Server/Consumer:
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: true)
- Internal: ???
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Internal spans would also be enabledWithGlobalSetting: false
. Only server
spans should have their Analytics enabled with the global setting, and I think we can consider consumer
spans similar to server
spans in this context (they're both the entry point into a service).
server/consumer: true
else: false
.Matches(Type, "http")) | ||
.Tags(s => s | ||
.Matches("az.namespace", "Microsoft.ServiceBus") | ||
.IsPresent("az.schema_url") | ||
.IsOptional("messaging.destination.name") | ||
.IfPresentMatchesOneOf("messaging.operation", "publish", "receive", "settle") | ||
.IfPresentMatchesOneOf("messaging.operation", "publish", "settle") |
There was a problem hiding this 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 receive
in any of the snapshots for messaging.operation
before/after this so I removed it - unsure if that is the right thing to do, but thought it may be confusing to see client.request
in there and no name with receive
in it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good find, I think it was accidentally included there on my first implementation. Thanks for cleaning it up!
.Matches(Type, "http")) | ||
.Tags(s => s | ||
.Matches("az.namespace", "Microsoft.ServiceBus") | ||
.IsPresent("az.schema_url") | ||
.IsOptional("messaging.destination.name") | ||
.IfPresentMatchesOneOf("messaging.operation", "publish", "receive", "settle") | ||
.IfPresentMatchesOneOf("messaging.operation", "publish", "settle") |
There was a problem hiding this 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 receive
in any of the snapshots for messaging.operation
before/after this so I removed it - unsure if that is the right thing to do, but thought it may be confusing to see client.request
in there and no name with receive
in it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep looks good, thanks for the cleanup!
@@ -13,7 +13,7 @@ namespace Datadog.Trace.Tagging | |||
{ | |||
// Re-implement InstrumentationTags so the built-in Activity can copy over SpanKind | |||
// without being limited by our tags infrastructure | |||
internal partial class AzureServiceBusTags : CommonTags | |||
internal partial class AzureServiceBusTags : OpenTelemetryTags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just wanted to flag this to make sure I'm not doing something wrong here by inheriting from OpenTelemetryTags
and removing the [Tag]
from SpanKind
and removing MessagingOperation
entirely from this class.
It seems to work fine, but just want to double check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think this this is fine 👍 I just checked the generated code, and it shows that that AzureServiceBusTags
are not printing [SpanKind]
any more, but it then calls the base.
methods, which do.
[Collection(nameof(OpenTelemetryOperationNameMapperTests))] | ||
public class OpenTelemetryOperationNameMapperTests | ||
{ | ||
// Note: These test cases were copy/pasted from parametric tests (with some find/replace to make it work here) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:chef-kiss:
One comment I have is AFAICT that these tests don't test the order of the detection when you have "conflicting" tags.
An "alternative" approach you may want to consider is having a span that has "all" the tags, and then check that "removing" a tag moves you onto the next span type.
e.g.
db.System=Redis
http.request.method=GET
With both these tags, you get http.<server|client>.request
. With the http
tag removed you get redis.query
.
This would apply to the parametric tests to, and you could potentially "build" the test data from the data you have here for each iteration. Just a thought!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay I tried doing this in f26a152
I didn't realize that with inherited Tags
classes you can't access the RemoveTag
call when setting a value to null
so it seems a bit hacky as I have to recreate the tags each time I remove one.
OperationName
for Activity
/OpenTelemetry
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, LGTM, though I'll defer to Zach for the final word!
|
||
namespace Datadog.Trace.Tagging | ||
{ | ||
internal partial class OpenTelemetryTags : CommonTags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an interesting question. I wonder if we should be calling SetAnalyticsSampleRate
on the Otel tags when we create them 🤔 For example, I see that the AzureServiceBusTags
have it, which suggests we should to me.
In that case I suggest moving the SetAnalyticsSampleRate
tags from AzureServiceBusTags
to here
@@ -13,7 +13,7 @@ namespace Datadog.Trace.Tagging | |||
{ | |||
// Re-implement InstrumentationTags so the built-in Activity can copy over SpanKind | |||
// without being limited by our tags infrastructure | |||
internal partial class AzureServiceBusTags : CommonTags | |||
internal partial class AzureServiceBusTags : OpenTelemetryTags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think this this is fine 👍 I just checked the generated code, and it shows that that AzureServiceBusTags
are not printing [SpanKind]
any more, but it then calls the base.
methods, which do.
@@ -21,7 +22,7 @@ public bool ShouldListenTo(string sourceName, string? version) | |||
|
|||
public void ActivityStarted<T>(string sourceName, T activity) | |||
where T : IActivity | |||
=> ActivityHandlerCommon.ActivityStarted(sourceName, activity, tags: null, out _); | |||
=> ActivityHandlerCommon.ActivityStarted(sourceName, activity, tags: new OpenTelemetryTags(), out _); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not super sure whether or not that'll cause issues,
In terms of using inheritance, that should be absolutely fine, we do it with various tags 🙂
The only downside to the approach I can see is the increased memory footprint of the big fat OpenTelemetryTags
instances 😄
} | ||
else if (tags.IsMessaging()) | ||
{ | ||
operationName = $"{tags.MessagingSystem}.{tags.MessagingOperation}"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More a question for the RFC rather than this PR, but is it still preferable to use tags.MessagingSystem
(for example) if we're missing tags.MessagingOperation
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the semantics that we are going off of from OpenTelemetry (still says their status is Experimental
) have it that messaging.operation
and messaging.system
are required tags: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/#messaging-attributes
But after I got the AzureServiceBus
stuff ported over yesterday I think I saw messaging.system
tags with no messaging.operation
and they led to client.request
operation names. So maybe it would be preferable, but I'm not 100% sure what to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A question for @zacharycmontoya perhaps then
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it makes sense for the other operation names to be client.request
. messaging.operation
should be one of a fixed, well-known set, so if a span doesn't have a corresponding operation then it's not really interacting with a message. I left comments below about the existing AzureServiceBus "Message"
span where we may intelligently decorate it. Otherwise, client.request
(low-cardinality) with different resource names seems fine to me.
else if (tags.IsGraphQLServer()) | ||
{ | ||
operationName = "graphql.server.request"; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't recognize IsGraphQLClient()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question, the semantics for this just have it as GraphQL Server
: https://opentelemetry.io/docs/specs/semconv/database/graphql/
When I made the parametric tests I looked at the PR that added the spec (OpenTelemetry) for this and there was some discussion around whether or not it should also be for client
open-telemetry/opentelemetry-specification#2456 (comment)
/// <summary> | ||
/// Helper class to map <see cref="SpanKinds"/> and various tags on an <c>Activity</c> or OpenTelemetry Span to a <see cref="Span.OperationName"/>. | ||
/// </summary> | ||
internal static class OperationNameMapper |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really nice and declarative 👍
@@ -236,7 +236,7 @@ public static Result IsAzureServiceBusInboundV0(this MockSpan span) => Result.Fr | |||
|
|||
public static Result IsAzureServiceBusOutboundV0(this MockSpan span) => Result.FromSpan(span) | |||
.Properties(s => s | |||
.Matches(Name, "Message") | |||
.Matches(Name, "producer") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be interested in what Zach says about this one, because IIRC the way the Message
span is used is... interesting...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For these particular ones, the ResourceName is still "Message"
so I think this is fine. My one suggestion here is to add a Matches
clause to assert that the name is always "Message"
, but unless you have other suggestions it's not worth the CI cycles and re-approval loop 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interestingly, the latest messaging conventions (because they're always a-changing) includes a new operation name for create
which would correspond to these spans: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/#operation-names
If the Azure SDK updates to setting this as the messaging.operation
attribute, then our operation name logic will (correctly) update the operation name to servicebus.create
I do wonder if we should get ahead of that and just add the messaging.operation
attribute ourselves 🤔 Thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we could have this discussion and potentially follow-up work in a separate PR
[Collection(nameof(OpenTelemetryOperationNameMapperTests))] | ||
public class OpenTelemetryOperationNameMapperTests | ||
{ | ||
// Note: These test cases were copy/pasted from parametric tests (with some find/replace to make it work here) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:chef-kiss:
One comment I have is AFAICT that these tests don't test the order of the detection when you have "conflicting" tags.
An "alternative" approach you may want to consider is having a span that has "all" the tags, and then check that "removing" a tag moves you onto the next span type.
e.g.
db.System=Redis
http.request.method=GET
With both these tags, you get http.<server|client>.request
. With the http
tag removed you get redis.query
.
This would apply to the parametric tests to, and you could potentially "build" the test data from the data you have here for each iteration. Just a thought!
Name: http.server.request, | ||
Resource: operation name should be-> http.server.request, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful 😍
Co-authored-by: Andrew Lock <andrew.lock@datadoghq.com>
tags.Add("service.name", "ServiceNameOverride"); | ||
tags.Add("span.type", "SpanTypeOverride"); | ||
tags.Add("analytics.event", "true"); // metric-> _dd1.sr.eausr: 1.0 | ||
using var activity = _source.StartActivity(name: "This name should not be in the snapshot", kind: ActivityKind.Server, tags: tags); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, nice work!
For OpenTelemetry and Activity 5+ we'll always have some span.kind value as Activity.Kind is guranteed. For older Activity objects that lack the .Kind property there may not be a value, but we'll default the OperationName to "internal" instead of "otel_unknown" in those cases.
This reverts commit 1c6c384.
This reverts commit d66ba49.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thumbs up again 👍🏼
Summary of changes
This change aims to craft a more suitable value for our
OperationName
forOpenTelemetry Spans/Activity
. I'm usingOpenTelemetry Span
andActivity
interchangeably here. With this change, the defaultOperationName
will now be calculated from a combination ofActivity.Kind
and various tags/tag values withinActivity.Tags
.This changes the default
Span.OperationName
from being mapped to theActivity.OperationName
to one that more closely resembles the standard DatadogOperationName
.Reason for change
Before this, the
OperationName
was set to one of the following:operation.name
on theActivity.Tags
, if presentActivity.OperationName
$"{Activity.Source.Name}.{Activity.Kind}"
only whenDD_TRACE_OTEL_LEGACY_OPERATION_NAME_ENABLED
was set totrue
$"opentelemetry.{Activity.Kind}"
ifActivity.Source.Name
isn't available andDD_TRACE_OTEL_LEGACY_OPERATION_NAME_ENABLED
was set totrue
The default was changed to
Activity.OperationName
to better align with other Datadog tracing libraries instead of$"{Activity.Source.Name}.{Activity.Kind}"
. This change produced less than desirableOperationName
values.Implementation details
By default,
OperationName
will now be calculated from a combination ofActivity.Kind
and various tags/tag values withinActivity.Tags
.For example, an
Activity
with anActivity.Kind
ofServer
and a tag ofhttp.request.method
will result in anOperationName
ofhttp.server.request
.Refer to our unit tests to see more mapping examples of potential
OperationName
values.Setting the
OperationName
fromActivity
will now be controlled by the following:operation.name
is present with a value, theOperationName
will be set to that.OperationName
.DD_TRACE_OTEL_LEGACY_OPERATION_NAME_ENABLED
is set tofalse
(default), theOperationName
will be determined based onActivity.Kind
and various tags inActivity.Tags
.DD_TRACE_OTEL_LEGACY_OPERATION_NAME_ENABLED
is set totrue
theOperationName
will be set to$"{Activity.Source.Name}.{Activity.Kind}"
or$"opentelemetry.{Activity.Kind}"
Users that currently have
DD_TRACE_OTEL_LEGACY_OPERATION_NAME_ENABLED
set totrue
(not the default) shouldn't see a change in theirOperationName
values from this and they will remain as$"{Activity.Source.Name}.{Activity.Kind}"
or$"opentelemetry.{Activity.Kind}"
.I've added an
OpenTelemetryTags
implementation - this seems a bit different that other...Tags
classes as it isn't really the tags that one will see on these spans, it is all of the tags that are used for the mapping. When theActivity
is closed we copy the tags over to the backingSpan
.I've also made it so that
ActivityStarted
requires anOpenTelemetryTags
instead of anITags
to ensure that we will be able to do the mapping. Also made it so thatAzureServiceBusTags
inherits fromOpenTelemetryTags
so that it gets mapped too.Test coverage
OpenTelemetrySdk
andNetActivitySdk
SamplesActivity
for manual instrumentationOther details
OperationName
parametric tests pass (I tested locally with the NuGet built from one of these runs)