Skip to content

Conversation

@johannbotha
Copy link
Contributor

@johannbotha johannbotha commented Jan 8, 2026

Summary

When using Kafka Connect with IBM MQ connectors, DSM was reporting incorrect queue names with schema-derived suffixes like _messagebody_0. For example:

  • Incorrect: trainmgt.dispatch.trnsheet.p30.v1.pub_messagebody_0
  • Expected: trainmgt.dispatch.trnsheet.p30.v1.pub

How IBM MQ and Kafka Connect are linked

Kafka Connect IBM MQ connectors (from Confluent or IBM) bridge IBM MQ and Kafka:

┌─────────────┐    ┌─────────────────────────┐    ┌─────────────┐
│   IBM MQ    │◄──►│  Kafka Connect Worker   │◄──►│    Kafka    │
│   Queue     │    │  (with MQ connector)    │    │    Topic    │
└─────────────┘    └─────────────────────────┘    └─────────────┘
                              │
                              │ Uses JMS API internally
                              │ (com.ibm.mq.jms.*)
                              ▼
                   ┌─────────────────────────┐
                   │  dd-trace-java agent    │
                   │  instruments JMS calls  │
                   └─────────────────────────┘

The connector internally uses JMS to communicate with IBM MQ. When dd-trace-java is attached to the Kafka Connect worker JVM, it instruments these JMS calls and creates DSM checkpoints using Queue.getQueueName().

Hypothesis

When the connector creates JMS Queue objects, somehow the queue name returned by getQueueName() includes schema-derived suffixes. This could happen if:

  1. Dynamic destination routing - connector derives queue name from Kafka record fields
  2. Schema field contamination - Kafka Connect's schema converters add _0 suffixes to union/optional fields like messageBody, and this leaks into the destination name
  3. Connector bug - the connector is constructing Queue objects with incorrect names

Why pure Java apps work

Pure Java apps create queues directly:

Queue queue = session.createQueue("my.actual.queue.name");
// getQueueName() returns "my.actual.queue.name" ✓

With Kafka Connect, the connector creates the Queue internally, and something in that process adds the suffix.

Changes

Added sanitization in JMSDecorator.getDestinationName() to strip these suffixes:

  • _messagebody_N
  • _text_N
  • _bytes_N
  • _map_N
  • _value_N

Uses a string-based approach with lastIndexOf() and regionMatches() for performance (avoids Pattern/Matcher overhead).

Test plan

  • Added unit tests in JMSDecoratorTest.groovy covering:
    • Customer's exact queue name from ticket
    • Various schema suffix patterns
    • Edge cases (no suffix, suffix not at end, unknown suffixes)
  • Verify with customer's environment (if possible)

References

  • Fixes Zendesk ticket #2429181
  • JIRA: DSMS-122

🤖 Generated with Claude Code

When using Kafka Connect with IBM MQ connectors, DSM was reporting
incorrect queue names with schema-derived suffixes like _messagebody_0.
This occurred because Kafka Connect schema converters add index suffixes
to field names for union/optional types.

This fix sanitizes queue/topic names to remove these suffixes:
- _messagebody_N
- _text_N
- _bytes_N
- _map_N
- _value_N

Fixes Zendesk ticket #2429181

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@pr-commenter
Copy link

pr-commenter bot commented Jan 8, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jj.botha/fix-dsm-ibmmq-kafka-connect-queue-name
git_commit_date 1767890844 1768278471
git_commit_sha 372ceb0 078e8d1
release_version 1.59.0-SNAPSHOT~372ceb0ed6 1.59.0-SNAPSHOT~078e8d1842
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768280365 1768280365
ci_job_id 1345269189 1345269189
ci_pipeline_id 90342551 90342551
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-olx52zja 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-olx52zja 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 60 metrics, 5 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.092 s) : 0, 1092286
Total [baseline] (8.728 s) : 0, 8727872
Agent [candidate] (1.086 s) : 0, 1085633
Total [candidate] (8.751 s) : 0, 8751215
section iast
Agent [baseline] (1.224 s) : 0, 1224475
Total [baseline] (9.292 s) : 0, 9292369
Agent [candidate] (1.226 s) : 0, 1225934
Total [candidate] (9.283 s) : 0, 9282932
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.092 s -
Agent iast 1.224 s 132.19 ms (12.1%)
Total tracing 8.728 s -
Total iast 9.292 s 564.496 ms (6.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.086 s -
Agent iast 1.226 s 140.301 ms (12.9%)
Total tracing 8.751 s -
Total iast 9.283 s 531.717 ms (6.1%)
gantt
    title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.208 ms) : 0, 1208
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (656.541 ms) : 0, 656541
BytebuddyAgent [candidate] (652.476 ms) : 0, 652476
GlobalTracer [baseline] (284.206 ms) : 0, 284206
GlobalTracer [candidate] (282.958 ms) : 0, 282958
AppSec [baseline] (33.121 ms) : 0, 33121
AppSec [candidate] (32.674 ms) : 0, 32674
Debugger [baseline] (68.003 ms) : 0, 68003
Debugger [candidate] (67.409 ms) : 0, 67409
Remote Config [baseline] (606.591 µs) : 0, 607
Remote Config [candidate] (613.051 µs) : 0, 613
Telemetry [baseline] (8.994 ms) : 0, 8994
Telemetry [candidate] (8.937 ms) : 0, 8937
Flare Poller [baseline] (3.795 ms) : 0, 3795
Flare Poller [candidate] (3.713 ms) : 0, 3713
section iast
crashtracking [baseline] (1.188 ms) : 0, 1188
crashtracking [candidate] (1.19 ms) : 0, 1190
BytebuddyAgent [baseline] (792.385 ms) : 0, 792385
BytebuddyAgent [candidate] (792.885 ms) : 0, 792885
GlobalTracer [baseline] (256.465 ms) : 0, 256465
GlobalTracer [candidate] (256.598 ms) : 0, 256598
AppSec [baseline] (34.272 ms) : 0, 34272
AppSec [candidate] (35.469 ms) : 0, 35469
Debugger [baseline] (64.956 ms) : 0, 64956
Debugger [candidate] (64.29 ms) : 0, 64290
Remote Config [baseline] (579.625 µs) : 0, 580
Remote Config [candidate] (602.469 µs) : 0, 602
Telemetry [baseline] (8.443 ms) : 0, 8443
Telemetry [candidate] (8.576 ms) : 0, 8576
Flare Poller [baseline] (3.561 ms) : 0, 3561
Flare Poller [candidate] (3.599 ms) : 0, 3599
IAST [baseline] (27.07 ms) : 0, 27070
IAST [candidate] (27.247 ms) : 0, 27247
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.085 s) : 0, 1085120
Total [baseline] (10.822 s) : 0, 10821510
Agent [candidate] (1.086 s) : 0, 1086433
Total [candidate] (10.845 s) : 0, 10844873
section appsec
Agent [baseline] (1.27 s) : 0, 1269812
Total [baseline] (10.934 s) : 0, 10933860
Agent [candidate] (1.275 s) : 0, 1274843
Total [candidate] (10.983 s) : 0, 10983082
section iast
Agent [baseline] (1.227 s) : 0, 1226754
Total [baseline] (11.198 s) : 0, 11198245
Agent [candidate] (1.233 s) : 0, 1232966
Total [candidate] (11.128 s) : 0, 11127603
section profiling
Agent [baseline] (1.215 s) : 0, 1214729
Total [baseline] (11.001 s) : 0, 11001195
Agent [candidate] (1.211 s) : 0, 1211382
Total [candidate] (10.904 s) : 0, 10904268
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.085 s -
Agent appsec 1.27 s 184.692 ms (17.0%)
Agent iast 1.227 s 141.634 ms (13.1%)
Agent profiling 1.215 s 129.609 ms (11.9%)
Total tracing 10.822 s -
Total appsec 10.934 s 112.35 ms (1.0%)
Total iast 11.198 s 376.735 ms (3.5%)
Total profiling 11.001 s 179.685 ms (1.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.086 s -
Agent appsec 1.275 s 188.409 ms (17.3%)
Agent iast 1.233 s 146.533 ms (13.5%)
Agent profiling 1.211 s 124.949 ms (11.5%)
Total tracing 10.845 s -
Total appsec 10.983 s 138.209 ms (1.3%)
Total iast 11.128 s 282.73 ms (2.6%)
Total profiling 10.904 s 59.396 ms (0.5%)
gantt
    title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.179 ms) : 0, 1179
crashtracking [candidate] (1.187 ms) : 0, 1187
BytebuddyAgent [baseline] (651.173 ms) : 0, 651173
BytebuddyAgent [candidate] (652.472 ms) : 0, 652472
GlobalTracer [baseline] (282.454 ms) : 0, 282454
GlobalTracer [candidate] (282.685 ms) : 0, 282685
AppSec [baseline] (32.637 ms) : 0, 32637
AppSec [candidate] (32.805 ms) : 0, 32805
Debugger [baseline] (68.69 ms) : 0, 68690
Debugger [candidate] (68.364 ms) : 0, 68364
Remote Config [baseline] (624.906 µs) : 0, 625
Remote Config [candidate] (628.515 µs) : 0, 629
Telemetry [baseline] (9.048 ms) : 0, 9048
Telemetry [candidate] (8.992 ms) : 0, 8992
Flare Poller [baseline] (3.835 ms) : 0, 3835
Flare Poller [candidate] (3.748 ms) : 0, 3748
section appsec
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.188 ms) : 0, 1188
BytebuddyAgent [baseline] (693.541 ms) : 0, 693541
BytebuddyAgent [candidate] (696.498 ms) : 0, 696498
GlobalTracer [baseline] (259.234 ms) : 0, 259234
GlobalTracer [candidate] (260.127 ms) : 0, 260127
AppSec [baseline] (174.795 ms) : 0, 174795
AppSec [candidate] (175.558 ms) : 0, 175558
Debugger [baseline] (66.865 ms) : 0, 66865
Debugger [candidate] (66.971 ms) : 0, 66971
Remote Config [baseline] (746.446 µs) : 0, 746
Remote Config [candidate] (777.13 µs) : 0, 777
Telemetry [baseline] (9.498 ms) : 0, 9498
Telemetry [candidate] (9.436 ms) : 0, 9436
Flare Poller [baseline] (3.753 ms) : 0, 3753
Flare Poller [candidate] (3.788 ms) : 0, 3788
IAST [baseline] (24.634 ms) : 0, 24634
IAST [candidate] (24.893 ms) : 0, 24893
section iast
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (792.67 ms) : 0, 792670
BytebuddyAgent [candidate] (797.785 ms) : 0, 797785
GlobalTracer [baseline] (256.682 ms) : 0, 256682
GlobalTracer [candidate] (257.938 ms) : 0, 257938
AppSec [baseline] (34.526 ms) : 0, 34526
AppSec [candidate] (34.023 ms) : 0, 34023
Debugger [baseline] (66.115 ms) : 0, 66115
Debugger [candidate] (66.521 ms) : 0, 66521
Remote Config [baseline] (577.672 µs) : 0, 578
Remote Config [candidate] (569.555 µs) : 0, 570
Telemetry [baseline] (8.603 ms) : 0, 8603
Telemetry [candidate] (8.487 ms) : 0, 8487
Flare Poller [baseline] (3.578 ms) : 0, 3578
Flare Poller [candidate] (3.484 ms) : 0, 3484
IAST [baseline] (27.343 ms) : 0, 27343
IAST [candidate] (27.34 ms) : 0, 27340
section profiling
ProfilingAgent [baseline] (98.431 ms) : 0, 98431
ProfilingAgent [candidate] (96.779 ms) : 0, 96779
crashtracking [baseline] (1.233 ms) : 0, 1233
crashtracking [candidate] (1.222 ms) : 0, 1222
BytebuddyAgent [baseline] (708.781 ms) : 0, 708781
BytebuddyAgent [candidate] (707.633 ms) : 0, 707633
GlobalTracer [baseline] (221.557 ms) : 0, 221557
GlobalTracer [candidate] (221.741 ms) : 0, 221741
AppSec [baseline] (32.433 ms) : 0, 32433
AppSec [candidate] (32.287 ms) : 0, 32287
Debugger [baseline] (68.765 ms) : 0, 68765
Debugger [candidate] (68.346 ms) : 0, 68346
Remote Config [baseline] (649.149 µs) : 0, 649
Remote Config [candidate] (640.719 µs) : 0, 641
Telemetry [baseline] (8.886 ms) : 0, 8886
Telemetry [candidate] (8.847 ms) : 0, 8847
Flare Poller [baseline] (3.687 ms) : 0, 3687
Flare Poller [candidate] (3.701 ms) : 0, 3701
Profiling [baseline] (99.018 ms) : 0, 99018
Profiling [candidate] (97.346 ms) : 0, 97346
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jj.botha/fix-dsm-ibmmq-kafka-connect-queue-name
git_commit_date 1767890844 1768278471
git_commit_sha 372ceb0 078e8d1
release_version 1.59.0-SNAPSHOT~372ceb0ed6 1.59.0-SNAPSHOT~078e8d1842
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768280865 1768280865
ci_job_id 1345269190 1345269190
ci_pipeline_id 90342551 90342551
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-zkm12nnl 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-zkm12nnl 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 2 performance improvements and 1 performance regressions! Performance is the same for 17 metrics, 16 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:petclinic:no_agent:high_load worse
[+1.390ms; +2.773ms] or [+8.317%; +16.587%]
unstable
[+0.249ms; +3.431ms] or [+0.858%; +11.809%]
unstable
[-58.610op/s; +2.235op/s] or [-21.723%; +0.828%]
18.798ms 30.893ms 241.625op/s 16.716ms 29.053ms 269.812op/s
scenario:load:petclinic:appsec:high_load better
[-1.284ms; -0.741ms] or [-6.666%; -3.846%]
better
[-2.214ms; -0.903ms] or [-7.085%; -2.889%]
unstable
[-16.985op/s; +39.110op/s] or [-7.105%; +16.360%]
18.253ms 29.694ms 250.125op/s 19.265ms 31.252ms 239.062op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6
    dateFormat X
    axisFormat %s
section baseline
no_agent (17.292 ms) : 17114, 17469
.   : milestone, 17292,
appsec (19.532 ms) : 19335, 19729
.   : milestone, 19532,
code_origins (17.625 ms) : 17449, 17802
.   : milestone, 17625,
iast (17.732 ms) : 17560, 17905
.   : milestone, 17732,
profiling (19.114 ms) : 18922, 19307
.   : milestone, 19114,
tracing (17.658 ms) : 17483, 17833
.   : milestone, 17658,
section candidate
no_agent (19.322 ms) : 19124, 19521
.   : milestone, 19322,
appsec (18.658 ms) : 18471, 18845
.   : milestone, 18658,
code_origins (17.834 ms) : 17656, 18012
.   : milestone, 17834,
iast (17.71 ms) : 17531, 17889
.   : milestone, 17710,
profiling (18.54 ms) : 18354, 18726
.   : milestone, 18540,
tracing (17.892 ms) : 17715, 18068
.   : milestone, 17892,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.292 ms [17.114 ms, 17.469 ms] -
appsec 19.532 ms [19.335 ms, 19.729 ms] 2.24 ms (13.0%)
code_origins 17.625 ms [17.449 ms, 17.802 ms] 333.685 µs (1.9%)
iast 17.732 ms [17.56 ms, 17.905 ms] 440.56 µs (2.5%)
profiling 19.114 ms [18.922 ms, 19.307 ms] 1.822 ms (10.5%)
tracing 17.658 ms [17.483 ms, 17.833 ms] 366.021 µs (2.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.322 ms [19.124 ms, 19.521 ms] -
appsec 18.658 ms [18.471 ms, 18.845 ms] -664.321 µs (-3.4%)
code_origins 17.834 ms [17.656 ms, 18.012 ms] -1.488 ms (-7.7%)
iast 17.71 ms [17.531 ms, 17.889 ms] -1.612 ms (-8.3%)
profiling 18.54 ms [18.354 ms, 18.726 ms] -782.079 µs (-4.0%)
tracing 17.892 ms [17.715 ms, 18.068 ms] -1.43 ms (-7.4%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.195 ms) : 1183, 1206
.   : milestone, 1195,
iast (3.114 ms) : 3076, 3152
.   : milestone, 3114,
iast_FULL (5.906 ms) : 5847, 5966
.   : milestone, 5906,
iast_GLOBAL (3.587 ms) : 3536, 3638
.   : milestone, 3587,
profiling (1.937 ms) : 1919, 1955
.   : milestone, 1937,
tracing (1.891 ms) : 1875, 1907
.   : milestone, 1891,
section candidate
no_agent (1.187 ms) : 1175, 1198
.   : milestone, 1187,
iast (3.081 ms) : 3042, 3119
.   : milestone, 3081,
iast_FULL (5.747 ms) : 5689, 5804
.   : milestone, 5747,
iast_GLOBAL (3.605 ms) : 3553, 3657
.   : milestone, 3605,
profiling (1.997 ms) : 1979, 2015
.   : milestone, 1997,
tracing (1.787 ms) : 1772, 1802
.   : milestone, 1787,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.195 ms [1.183 ms, 1.206 ms] -
iast 3.114 ms [3.076 ms, 3.152 ms] 1.92 ms (160.7%)
iast_FULL 5.906 ms [5.847 ms, 5.966 ms] 4.712 ms (394.4%)
iast_GLOBAL 3.587 ms [3.536 ms, 3.638 ms] 2.393 ms (200.3%)
profiling 1.937 ms [1.919 ms, 1.955 ms] 742.346 µs (62.1%)
tracing 1.891 ms [1.875 ms, 1.907 ms] 696.472 µs (58.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.187 ms [1.175 ms, 1.198 ms] -
iast 3.081 ms [3.042 ms, 3.119 ms] 1.894 ms (159.6%)
iast_FULL 5.747 ms [5.689 ms, 5.804 ms] 4.56 ms (384.2%)
iast_GLOBAL 3.605 ms [3.553 ms, 3.657 ms] 2.418 ms (203.8%)
profiling 1.997 ms [1.979 ms, 2.015 ms] 810.408 µs (68.3%)
tracing 1.787 ms [1.772 ms, 1.802 ms] 600.438 µs (50.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jj.botha/fix-dsm-ibmmq-kafka-connect-queue-name
git_commit_date 1767890844 1768278471
git_commit_sha 372ceb0 078e8d1
release_version 1.59.0-SNAPSHOT~372ceb0ed6 1.59.0-SNAPSHOT~078e8d1842
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1768280754 1768280754
ci_job_id 1345269191 1345269191
ci_pipeline_id 90342551 90342551
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-2-dqbo6xpw 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-2-dqbo6xpw 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.481 ms) : 1470, 1493
.   : milestone, 1481,
appsec (3.738 ms) : 3517, 3959
.   : milestone, 3738,
iast (2.225 ms) : 2160, 2290
.   : milestone, 2225,
iast_GLOBAL (2.281 ms) : 2215, 2346
.   : milestone, 2281,
profiling (2.468 ms) : 2251, 2685
.   : milestone, 2468,
tracing (2.054 ms) : 2002, 2105
.   : milestone, 2054,
section candidate
no_agent (1.479 ms) : 1467, 1490
.   : milestone, 1479,
appsec (3.751 ms) : 3525, 3977
.   : milestone, 3751,
iast (2.226 ms) : 2161, 2292
.   : milestone, 2226,
iast_GLOBAL (2.269 ms) : 2204, 2335
.   : milestone, 2269,
profiling (2.088 ms) : 2034, 2143
.   : milestone, 2088,
tracing (2.051 ms) : 2000, 2102
.   : milestone, 2051,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.481 ms [1.47 ms, 1.493 ms] -
appsec 3.738 ms [3.517 ms, 3.959 ms] 2.257 ms (152.3%)
iast 2.225 ms [2.16 ms, 2.29 ms] 743.54 µs (50.2%)
iast_GLOBAL 2.281 ms [2.215 ms, 2.346 ms] 799.276 µs (54.0%)
profiling 2.468 ms [2.251 ms, 2.685 ms] 986.743 µs (66.6%)
tracing 2.054 ms [2.002 ms, 2.105 ms] 572.162 µs (38.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.479 ms [1.467 ms, 1.49 ms] -
appsec 3.751 ms [3.525 ms, 3.977 ms] 2.272 ms (153.7%)
iast 2.226 ms [2.161 ms, 2.292 ms] 747.574 µs (50.6%)
iast_GLOBAL 2.269 ms [2.204 ms, 2.335 ms] 790.598 µs (53.5%)
profiling 2.088 ms [2.034 ms, 2.143 ms] 609.53 µs (41.2%)
tracing 2.051 ms [2.0 ms, 2.102 ms] 572.218 µs (38.7%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~078e8d1842, baseline=1.59.0-SNAPSHOT~372ceb0ed6
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.259 s) : 15259000, 15259000
.   : milestone, 15259000,
appsec (14.807 s) : 14807000, 14807000
.   : milestone, 14807000,
iast (18.369 s) : 18369000, 18369000
.   : milestone, 18369000,
iast_GLOBAL (17.829 s) : 17829000, 17829000
.   : milestone, 17829000,
profiling (15.363 s) : 15363000, 15363000
.   : milestone, 15363000,
tracing (14.656 s) : 14656000, 14656000
.   : milestone, 14656000,
section candidate
no_agent (15.677 s) : 15677000, 15677000
.   : milestone, 15677000,
appsec (14.493 s) : 14493000, 14493000
.   : milestone, 14493000,
iast (18.066 s) : 18066000, 18066000
.   : milestone, 18066000,
iast_GLOBAL (18.228 s) : 18228000, 18228000
.   : milestone, 18228000,
profiling (14.83 s) : 14830000, 14830000
.   : milestone, 14830000,
tracing (14.675 s) : 14675000, 14675000
.   : milestone, 14675000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.259 s [15.259 s, 15.259 s] -
appsec 14.807 s [14.807 s, 14.807 s] -452.0 ms (-3.0%)
iast 18.369 s [18.369 s, 18.369 s] 3.11 s (20.4%)
iast_GLOBAL 17.829 s [17.829 s, 17.829 s] 2.57 s (16.8%)
profiling 15.363 s [15.363 s, 15.363 s] 104.0 ms (0.7%)
tracing 14.656 s [14.656 s, 14.656 s] -603.0 ms (-4.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.677 s [15.677 s, 15.677 s] -
appsec 14.493 s [14.493 s, 14.493 s] -1.184 s (-7.6%)
iast 18.066 s [18.066 s, 18.066 s] 2.389 s (15.2%)
iast_GLOBAL 18.228 s [18.228 s, 18.228 s] 2.551 s (16.3%)
profiling 14.83 s [14.83 s, 14.83 s] -847.0 ms (-5.4%)
tracing 14.675 s [14.675 s, 14.675 s] -1.002 s (-6.4%)

@PerfectSlayer PerfectSlayer added the tag: ai generated Largely based on code generated by an AI or LLM label Jan 9, 2026
// Pattern to match Kafka Connect schema-derived suffixes like _messagebody_0, _text_0, _bytes_0
// These suffixes are added by Kafka Connect converters when handling union/optional fields
private static final java.util.regex.Pattern KAFKA_CONNECT_SCHEMA_SUFFIX_PATTERN =
java.util.regex.Pattern.compile("_(?:messagebody|text|bytes|map|value)_\\d+$", java.util.regex.Pattern.CASE_INSENSITIVE);
Copy link
Contributor

Choose a reason for hiding this comment

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

🎯 suggestion:Pattern usage is not recommended for performance reason.
It seems the pattern you're looking for would be easy to find as the last characters would be a number.
I would implement the clean up using String.lastIndexOf() and String.substring() instead of Pattern, Matcher and String.replaceFirst() which also use a pattern internally.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good, updated it to no longer use a regex pattern.

…mance

Address review feedback to avoid Pattern/Matcher usage for performance reasons.
Use lastIndexOf() and regionMatches() instead of regex to strip Kafka Connect
schema-derived suffixes from queue names.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@johannbotha johannbotha marked this pull request as ready for review January 9, 2026 23:03
@johannbotha johannbotha requested a review from a team as a code owner January 9, 2026 23:03
@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2026

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@PerfectSlayer PerfectSlayer added type: bug Bug report and fix comp: data streams Data Streams Monitoring labels Jan 12, 2026
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Looking good, thanks for the follow up changes

Group len==5 cases together (bytes, value) before len==3 case (map).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@johannbotha johannbotha enabled auto-merge (squash) January 13, 2026 04:29
@johannbotha johannbotha merged commit 985a79b into master Jan 13, 2026
563 checks passed
@johannbotha johannbotha deleted the jj.botha/fix-dsm-ibmmq-kafka-connect-queue-name branch January 13, 2026 05:20
@github-actions github-actions bot added this to the 1.59.0 milestone Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: data streams Data Streams Monitoring tag: ai generated Largely based on code generated by an AI or LLM type: bug Bug report and fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants