Fix swapped SpanKinds and missing tags in IbmMqHelper#8369
Conversation
BenchmarksBenchmark execution time: 2026-03-26 07:57:40 Comparing candidate commit 1f189a1 in PR branch Found 7 performance improvements and 8 performance regressions! Performance is the same for 256 metrics, 17 unstable metrics.
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8369) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (72ms) : 70, 75
master - mean (72ms) : 70, 75
section Bailout
This PR (8369) - mean (76ms) : 74, 78
master - mean (76ms) : 75, 77
section CallTarget+Inlining+NGEN
This PR (8369) - mean (1,080ms) : 1031, 1129
master - mean (1,077ms) : 1028, 1127
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (113ms) : 109, 117
master - mean (113ms) : 108, 117
section Bailout
This PR (8369) - mean (114ms) : 111, 117
master - mean (114ms) : 111, 117
section CallTarget+Inlining+NGEN
This PR (8369) - mean (794ms) : 773, 816
master - mean (796ms) : 778, 813
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (99ms) : 96, 102
master - mean (99ms) : 95, 103
section Bailout
This PR (8369) - mean (100ms) : 97, 103
master - mean (100ms) : 97, 102
section CallTarget+Inlining+NGEN
This PR (8369) - mean (787ms) : 768, 806
master - mean (786ms) : 764, 808
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (99ms) : 96, 101
master - mean (99ms) : 94, 103
section Bailout
This PR (8369) - mean (100ms) : 97, 103
master - mean (99ms) : 97, 101
section CallTarget+Inlining+NGEN
This PR (8369) - mean (691ms) : 666, 716
master - mean (690ms) : 670, 710
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (194ms) : 189, 198
master - mean (194ms) : 190, 198
section Bailout
This PR (8369) - mean (198ms) : 195, 200
master - mean (197ms) : 195, 199
section CallTarget+Inlining+NGEN
This PR (8369) - mean (1,160ms) : 1113, 1207
master - mean (1,160ms) : 1104, 1215
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (279ms) : 273, 284
master - mean (277ms) : 272, 281
section Bailout
This PR (8369) - mean (279ms) : 273, 284
master - mean (278ms) : 273, 283
section CallTarget+Inlining+NGEN
This PR (8369) - mean (950ms) : 926, 975
master - mean (949ms) : 924, 975
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (273ms) : 267, 279
master - mean (272ms) : 267, 277
section Bailout
This PR (8369) - mean (271ms) : 267, 276
master - mean (272ms) : 267, 277
section CallTarget+Inlining+NGEN
This PR (8369) - mean (975ms) : 944, 1006
master - mean (973ms) : 949, 996
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8369) - mean (270ms) : 265, 276
master - mean (271ms) : 266, 276
section Bailout
This PR (8369) - mean (271ms) : 266, 275
master - mean (269ms) : 265, 274
section CallTarget+Inlining+NGEN
This PR (8369) - mean (856ms) : 828, 884
master - mean (856ms) : 824, 887
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bouwkast
left a comment
There was a problem hiding this comment.
We don't have sample / tests for this, would probably be nice to revisit that again to see if we could do that without having to manually create them each time
Co-authored-by: Steven Bouwkamp <[email protected]>
Just noticed that we should not according to the slack comments. |
Summary of changes
Fix three pre-existing bugs in
IbmMqHelper:CreateProducerScopepassedSpanKinds.ConsumerandCreateConsumerScopepassedSpanKinds.ProducertoCreateIbmMqTags— now corrected.CreateProducerScopecreated and populatedIbmMqTagsbut never passed them toStartActiveInternal, so tags (includingTopicName) were silently discarded.Reason for change
Producer spans were tagged as consumers and vice versa, and producer spans were missing messaging-specific tags entirely.
Implementation details
SpanKinds.Consumer→SpanKinds.ProducerinCreateProducerScope(line 71)SpanKinds.Producer→SpanKinds.ConsumerinCreateConsumerScope(line 138)tags: tagsparameter toStartActiveInternalinCreateProducerScopeTest coverage
Existing integration tests cover IBM MQ span creation. No new tests required — this is a straightforward value correction.
Other details
Pre-existing bugs, not introduced by any recent PR.