-
Notifications
You must be signed in to change notification settings - Fork 150
[IBM MQ] Fix queue naming by removing URI prefix #8080
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
base: master
Are you sure you want to change the base?
Conversation
Sanitize IBM MQ queue names by stripping `queue://` and `topic://` URI scheme prefixes from queue names in DSM edge tags, span tags, and resource names. This aligns with how other messaging integrations report queue/topic names and matches the expected format in the Datadog UI. Before: `queue://my_ibmmq.queue.1` After: `my_ibmmq.queue.1` Co-Authored-By: Claude Opus 4.5 <[email protected]>
| /// </summary> | ||
| internal static string SanitizeQueueName(string? queueName) | ||
| { | ||
| if (queueName is null || queueName.Length == 0) |
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.
[nit] string.IsNullOrEmpty(queueName)instead
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.
Actually changed this on purpose because got a compiler error with what you're suggesting
error CS8602: Dereference of a possibly null reference.
BenchmarksBenchmark execution time: 2026-01-16 22:45:33 Comparing candidate commit 140c7e6 in PR branch Found 9 performance improvements and 14 performance regressions! Performance is the same for 157 metrics, 12 unstable metrics. scenario:Benchmarks.Trace.ActivityBenchmark.StartStopWithChild netcoreapp3.1
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs net6.0
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs netcoreapp3.1
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice net472
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net472
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net6.0
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice net6.0
scenario:Benchmarks.Trace.Log4netBenchmark.EnrichedLog netcoreapp3.1
scenario:Benchmarks.Trace.RedisBenchmark.SendReceive net6.0
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8080) 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 (8080) - mean (68ms) : 67, 70
master - mean (68ms) : 67, 70
section Bailout
This PR (8080) - mean (72ms) : 71, 73
master - mean (72ms) : 71, 73
section CallTarget+Inlining+NGEN
This PR (8080) - mean (1,028ms) : 935, 1120
master - mean (1,020ms) : 938, 1101
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 (8080) - mean (106ms) : 104, 108
master - mean (106ms) : 103, 109
section Bailout
This PR (8080) - mean (107ms) : 106, 108
master - mean (107ms) : 105, 108
section CallTarget+Inlining+NGEN
This PR (8080) - mean (743ms) : 692, 793
master - mean (745ms) : 699, 791
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8080) - mean (94ms) : 92, 96
master - mean (94ms) : 91, 96
section Bailout
This PR (8080) - mean (94ms) : 93, 95
master - mean (94ms) : 93, 95
section CallTarget+Inlining+NGEN
This PR (8080) - mean (719ms) : 702, 735
master - mean (710ms) : 655, 765
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8080) - mean (92ms) : 90, 95
master - mean (92ms) : 89, 95
section Bailout
This PR (8080) - mean (93ms) : 92, 95
master - mean (93ms) : 91, 94
section CallTarget+Inlining+NGEN
This PR (8080) - mean (636ms) : 621, 650
master - mean (636ms) : 621, 651
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 (8080) - mean (194ms) : 190, 198
master - mean (195ms) : 190, 200
section Bailout
This PR (8080) - mean (197ms) : 195, 199
master - mean (198ms) : 193, 204
section CallTarget+Inlining+NGEN
This PR (8080) - mean (1,129ms) : 1069, 1190
master - mean (1,150ms) : 1074, 1226
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 (8080) - mean (278ms) : 273, 283
master - mean (285ms) : 271, 298
section Bailout
This PR (8080) - mean (279ms) : 274, 283
master - mean (284ms) : 268, 300
section CallTarget+Inlining+NGEN
This PR (8080) - mean (936ms) : 884, 988
master - mean (941ms) : 886, 996
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8080) - mean (272ms) : 265, 278
master - mean (274ms) : 268, 280
section Bailout
This PR (8080) - mean (272ms) : 267, 276
master - mean (273ms) : 269, 278
section CallTarget+Inlining+NGEN
This PR (8080) - mean (925ms) : 870, 980
master - mean (931ms) : 884, 978
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8080) - mean (269ms) : 264, 273
master - mean (272ms) : 265, 279
section Bailout
This PR (8080) - mean (270ms) : 266, 275
master - mean (273ms) : 266, 281
section CallTarget+Inlining+NGEN
This PR (8080) - mean (831ms) : 811, 851
master - mean (842ms) : 812, 873
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Summary
queue://andtopic://URI scheme prefixesBefore:
queue://my_ibmmq.queue.1After:
my_ibmmq.queue.1Changes
SanitizeQueueName()method toIbmMqHelper.csPutIntegration.csandGetIntegration.csto use sanitized names in DSM edge tagsCreateProducerScope()andCreateConsumerScope()to use sanitized namesTest plan
SanitizeQueueNamemethod covering:queue://prefix removal (case insensitive)topic://prefix removal (case insensitive)🤖 Generated with Claude Code