Skip to content

Enable kotlin_coroutine integration by default #8848

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 22, 2025

Conversation

mcculls
Copy link
Contributor

@mcculls mcculls commented May 19, 2025

Motivation

The Kotlin coroutines integration is now considered stable enough to enable by default.

Doing so avoids an extra configuration step for users of Kotlin coroutines.

If necessary the integration can be disabled with this JVM option:

-Ddd.integration.kotlin_coroutine.enabled=false

or by setting this environment variable:

DD_INTEGRATION_KOTLIN_COROUTINE_ENABLED=false

Note: using @Trace or DD_TRACE_METHODS on functions using Kotlin Coroutines currently result in separate spans for the function, before and after suspend points.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@mcculls mcculls added type: enhancement inst: kotlin Kotlin instrumentation labels May 19, 2025
@mcculls mcculls changed the title Enable Kotlin coroutines integration by default Enable kotlin_coroutine integration by default May 19, 2025
@mcculls mcculls force-pushed the mcculls/enable-kotlin-coroutines-by-default branch from 4d0a2e4 to 6541f54 Compare May 19, 2025 17:22
@pr-commenter
Copy link

pr-commenter bot commented May 19, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/enable-kotlin-coroutines-by-default
git_commit_date 1747906691 1747906704
git_commit_sha 4ca8a41 65f8541
release_version 1.50.0-SNAPSHOT~4ca8a4184f 1.50.0-SNAPSHOT~65f8541029
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747909045 1747909045
ci_job_id 949713418 949713418
ci_pipeline_id 65832664 65832664
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-uyk5tteg-project-304-concurrent-0-oogjg059 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-uyk5tteg-project-304-concurrent-0-oogjg059 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.027 s) : 0, 1026630
Total [baseline] (10.494 s) : 0, 10494376
Agent [candidate] (1.024 s) : 0, 1024120
Total [candidate] (10.526 s) : 0, 10525613
section appsec
Agent [baseline] (1.162 s) : 0, 1161854
Total [baseline] (10.745 s) : 0, 10745252
Agent [candidate] (1.164 s) : 0, 1164321
Total [candidate] (10.682 s) : 0, 10682101
section iast
Agent [baseline] (1.161 s) : 0, 1160987
Total [baseline] (10.94 s) : 0, 10940161
Agent [candidate] (1.149 s) : 0, 1149320
Total [candidate] (10.963 s) : 0, 10962812
section profiling
Agent [baseline] (1.275 s) : 0, 1274782
Total [baseline] (10.809 s) : 0, 10808539
Agent [candidate] (1.266 s) : 0, 1266291
Total [candidate] (10.886 s) : 0, 10885949
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.027 s -
Agent appsec 1.162 s 135.223 ms (13.2%)
Agent iast 1.161 s 134.357 ms (13.1%)
Agent profiling 1.275 s 248.151 ms (24.2%)
Total tracing 10.494 s -
Total appsec 10.745 s 250.876 ms (2.4%)
Total iast 10.94 s 445.784 ms (4.2%)
Total profiling 10.809 s 314.163 ms (3.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.024 s -
Agent appsec 1.164 s 140.201 ms (13.7%)
Agent iast 1.149 s 125.2 ms (12.2%)
Agent profiling 1.266 s 242.171 ms (23.6%)
Total tracing 10.526 s -
Total appsec 10.682 s 156.488 ms (1.5%)
Total iast 10.963 s 437.199 ms (4.2%)
Total profiling 10.886 s 360.336 ms (3.4%)
gantt
    title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (687.093 ms) : 0, 687093
BytebuddyAgent [candidate] (684.8 ms) : 0, 684800
GlobalTracer [baseline] (241.646 ms) : 0, 241646
GlobalTracer [candidate] (240.69 ms) : 0, 240690
AppSec [baseline] (55.729 ms) : 0, 55729
AppSec [candidate] (54.628 ms) : 0, 54628
Debugger [baseline] (6.975 ms) : 0, 6975
Debugger [candidate] (9.944 ms) : 0, 9944
Remote Config [baseline] (723.563 µs) : 0, 724
Remote Config [candidate] (704.736 µs) : 0, 705
Telemetry [baseline] (10.694 ms) : 0, 10694
Telemetry [candidate] (9.79 ms) : 0, 9790
section appsec
BytebuddyAgent [baseline] (700.628 ms) : 0, 700628
BytebuddyAgent [candidate] (702.199 ms) : 0, 702199
GlobalTracer [baseline] (237.021 ms) : 0, 237021
GlobalTracer [candidate] (237.258 ms) : 0, 237258
AppSec [baseline] (175.423 ms) : 0, 175423
AppSec [candidate] (176.143 ms) : 0, 176143
Debugger [baseline] (5.973 ms) : 0, 5973
Debugger [candidate] (5.969 ms) : 0, 5969
Remote Config [baseline] (626.032 µs) : 0, 626
Remote Config [candidate] (617.983 µs) : 0, 618
Telemetry [baseline] (7.753 ms) : 0, 7753
Telemetry [candidate] (7.746 ms) : 0, 7746
IAST [baseline] (21.686 ms) : 0, 21686
IAST [candidate] (21.596 ms) : 0, 21596
section iast
BytebuddyAgent [baseline] (810.518 ms) : 0, 810518
BytebuddyAgent [candidate] (802.287 ms) : 0, 802287
GlobalTracer [baseline] (232.792 ms) : 0, 232792
GlobalTracer [candidate] (230.45 ms) : 0, 230450
AppSec [baseline] (53.094 ms) : 0, 53094
AppSec [candidate] (50.318 ms) : 0, 50318
Debugger [baseline] (5.951 ms) : 0, 5951
Debugger [candidate] (5.911 ms) : 0, 5911
Remote Config [baseline] (586.528 µs) : 0, 587
Remote Config [candidate] (598.728 µs) : 0, 599
Telemetry [baseline] (7.927 ms) : 0, 7927
Telemetry [candidate] (7.876 ms) : 0, 7876
IAST [baseline] (26.319 ms) : 0, 26319
IAST [candidate] (28.441 ms) : 0, 28441
section profiling
BytebuddyAgent [baseline] (679.665 ms) : 0, 679665
BytebuddyAgent [candidate] (674.378 ms) : 0, 674378
GlobalTracer [baseline] (362.686 ms) : 0, 362686
GlobalTracer [candidate] (360.934 ms) : 0, 360934
AppSec [baseline] (62.082 ms) : 0, 62082
AppSec [candidate] (62.1 ms) : 0, 62100
Debugger [baseline] (6.373 ms) : 0, 6373
Debugger [candidate] (6.255 ms) : 0, 6255
Remote Config [baseline] (667.467 µs) : 0, 667
Remote Config [candidate] (648.01 µs) : 0, 648
Telemetry [baseline] (8.328 ms) : 0, 8328
Telemetry [candidate] (8.217 ms) : 0, 8217
ProfilingAgent [baseline] (103.605 ms) : 0, 103605
ProfilingAgent [candidate] (102.784 ms) : 0, 102784
Profiling [baseline] (103.629 ms) : 0, 103629
Profiling [candidate] (102.809 ms) : 0, 102809
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.018 s) : 0, 1018295
Total [baseline] (8.702 s) : 0, 8701996
Agent [candidate] (1.028 s) : 0, 1027605
Total [candidate] (8.675 s) : 0, 8675392
section iast
Agent [baseline] (1.164 s) : 0, 1163923
Total [baseline] (9.325 s) : 0, 9324870
Agent [candidate] (1.148 s) : 0, 1148000
Total [candidate] (9.28 s) : 0, 9280489
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.15 s) : 0, 1149771
Total [baseline] (9.261 s) : 0, 9260828
Agent [candidate] (1.151 s) : 0, 1151006
Total [candidate] (9.214 s) : 0, 9213761
section iast_TELEMETRY_OFF
Agent [baseline] (1.151 s) : 0, 1150660
Total [baseline] (9.261 s) : 0, 9261381
Agent [candidate] (1.147 s) : 0, 1146631
Total [candidate] (9.244 s) : 0, 9243995
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.018 s -
Agent iast 1.164 s 145.628 ms (14.3%)
Agent iast_HARDCODED_SECRET_DISABLED 1.15 s 131.476 ms (12.9%)
Agent iast_TELEMETRY_OFF 1.151 s 132.364 ms (13.0%)
Total tracing 8.702 s -
Total iast 9.325 s 622.874 ms (7.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.261 s 558.831 ms (6.4%)
Total iast_TELEMETRY_OFF 9.261 s 559.385 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.028 s -
Agent iast 1.148 s 120.395 ms (11.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.151 s 123.401 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.147 s 119.026 ms (11.6%)
Total tracing 8.675 s -
Total iast 9.28 s 605.097 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.214 s 538.37 ms (6.2%)
Total iast_TELEMETRY_OFF 9.244 s 568.603 ms (6.6%)
gantt
    title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (681.765 ms) : 0, 681765
BytebuddyAgent [candidate] (687.319 ms) : 0, 687319
GlobalTracer [baseline] (240.274 ms) : 0, 240274
GlobalTracer [candidate] (242.087 ms) : 0, 242087
AppSec [baseline] (55.878 ms) : 0, 55878
AppSec [candidate] (55.519 ms) : 0, 55519
Debugger [baseline] (6.889 ms) : 0, 6889
Debugger [candidate] (8.399 ms) : 0, 8399
Remote Config [baseline] (697.1 µs) : 0, 697
Remote Config [candidate] (706.984 µs) : 0, 707
Telemetry [baseline] (9.124 ms) : 0, 9124
Telemetry [candidate] (9.852 ms) : 0, 9852
section iast
BytebuddyAgent [baseline] (813.196 ms) : 0, 813196
BytebuddyAgent [candidate] (801.196 ms) : 0, 801196
GlobalTracer [baseline] (233.121 ms) : 0, 233121
GlobalTracer [candidate] (230.623 ms) : 0, 230623
IAST [baseline] (26.43 ms) : 0, 26430
IAST [candidate] (29.875 ms) : 0, 29875
AppSec [baseline] (49.769 ms) : 0, 49769
AppSec [candidate] (48.548 ms) : 0, 48548
Debugger [baseline] (5.937 ms) : 0, 5937
Debugger [candidate] (5.867 ms) : 0, 5867
Remote Config [baseline] (604.697 µs) : 0, 605
Remote Config [candidate] (596.78 µs) : 0, 597
Telemetry [baseline] (7.939 ms) : 0, 7939
Telemetry [candidate] (7.842 ms) : 0, 7842
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (801.982 ms) : 0, 801982
BytebuddyAgent [candidate] (802.635 ms) : 0, 802635
GlobalTracer [baseline] (231.06 ms) : 0, 231060
GlobalTracer [candidate] (231.776 ms) : 0, 231776
IAST [baseline] (29.987 ms) : 0, 29987
IAST [candidate] (27.587 ms) : 0, 27587
AppSec [baseline] (48.866 ms) : 0, 48866
AppSec [candidate] (51.15 ms) : 0, 51150
Debugger [baseline] (5.868 ms) : 0, 5868
Debugger [candidate] (5.859 ms) : 0, 5859
Remote Config [baseline] (587.226 µs) : 0, 587
Remote Config [candidate] (579.337 µs) : 0, 579
Telemetry [baseline] (7.872 ms) : 0, 7872
Telemetry [candidate] (7.904 ms) : 0, 7904
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (802.012 ms) : 0, 802012
BytebuddyAgent [candidate] (798.992 ms) : 0, 798992
GlobalTracer [baseline] (231.677 ms) : 0, 231677
GlobalTracer [candidate] (231.013 ms) : 0, 231013
IAST [baseline] (24.1 ms) : 0, 24100
IAST [candidate] (22.439 ms) : 0, 22439
AppSec [baseline] (54.96 ms) : 0, 54960
AppSec [candidate] (56.223 ms) : 0, 56223
Debugger [baseline] (5.998 ms) : 0, 5998
Debugger [candidate] (5.988 ms) : 0, 5988
Remote Config [baseline] (617.73 µs) : 0, 618
Remote Config [candidate] (597.919 µs) : 0, 598
Telemetry [baseline] (7.812 ms) : 0, 7812
Telemetry [candidate] (7.789 ms) : 0, 7789
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-05-22T09:49:33 2025-05-22T09:57:21
git_branch master mcculls/enable-kotlin-coroutines-by-default
git_commit_date 1747906691 1747906704
git_commit_sha 4ca8a41 65f8541
release_version 1.50.0-SNAPSHOT~4ca8a4184f 1.50.0-SNAPSHOT~65f8541029
start_time 2025-05-22T09:49:19 2025-05-22T09:57:07
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747908240 1747908240
ci_job_id 949713419 949713419
ci_pipeline_id 65832664 65832664
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-xffk-g1f-project-304-concurrent-0-ruuu3it2 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-xffk-g1f-project-304-concurrent-0-ruuu3it2 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f
    dateFormat X
    axisFormat %s
section baseline
no_agent (375.938 µs) : 356, 396
.   : milestone, 376,
iast (516.725 µs) : 495, 538
.   : milestone, 517,
iast_FULL (735.662 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (561.105 µs) : 539, 583
.   : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (531.437 µs) : 508, 554
.   : milestone, 531,
iast_INACTIVE (472.205 µs) : 450, 495
.   : milestone, 472,
iast_TELEMETRY_OFF (519.667 µs) : 497, 542
.   : milestone, 520,
tracing (454.754 µs) : 434, 475
.   : milestone, 455,
section candidate
no_agent (380.906 µs) : 361, 401
.   : milestone, 381,
iast (527.895 µs) : 504, 552
.   : milestone, 528,
iast_FULL (735.932 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (560.948 µs) : 539, 583
.   : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (508.996 µs) : 486, 532
.   : milestone, 509,
iast_INACTIVE (462.768 µs) : 440, 485
.   : milestone, 463,
iast_TELEMETRY_OFF (518.454 µs) : 495, 542
.   : milestone, 518,
tracing (461.759 µs) : 440, 484
.   : milestone, 462,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 375.938 µs [355.566 µs, 396.309 µs] -
iast 516.725 µs [495.053 µs, 538.398 µs] 140.788 µs (37.4%)
iast_FULL 735.662 µs [713.776 µs, 757.548 µs] 359.724 µs (95.7%)
iast_GLOBAL 561.105 µs [539.355 µs, 582.855 µs] 185.168 µs (49.3%)
iast_HARDCODED_SECRET_DISABLED 531.437 µs [508.391 µs, 554.484 µs] 155.5 µs (41.4%)
iast_INACTIVE 472.205 µs [449.63 µs, 494.78 µs] 96.267 µs (25.6%)
iast_TELEMETRY_OFF 519.667 µs [497.445 µs, 541.89 µs] 143.73 µs (38.2%)
tracing 454.754 µs [434.132 µs, 475.375 µs] 78.816 µs (21.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 380.906 µs [361.054 µs, 400.759 µs] -
iast 527.895 µs [504.268 µs, 551.523 µs] 146.989 µs (38.6%)
iast_FULL 735.932 µs [713.93 µs, 757.935 µs] 355.026 µs (93.2%)
iast_GLOBAL 560.948 µs [538.853 µs, 583.044 µs] 180.042 µs (47.3%)
iast_HARDCODED_SECRET_DISABLED 508.996 µs [485.965 µs, 532.027 µs] 128.09 µs (33.6%)
iast_INACTIVE 462.768 µs [440.349 µs, 485.187 µs] 81.862 µs (21.5%)
iast_TELEMETRY_OFF 518.454 µs [494.994 µs, 541.914 µs] 137.548 µs (36.1%)
tracing 461.759 µs [439.621 µs, 483.897 µs] 80.853 µs (21.2%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.352 ms) : 1332, 1372
.   : milestone, 1352,
appsec (1.74 ms) : 1716, 1764
.   : milestone, 1740,
appsec_no_iast (1.73 ms) : 1707, 1754
.   : milestone, 1730,
code_origins (1.656 ms) : 1629, 1683
.   : milestone, 1656,
iast (1.502 ms) : 1477, 1526
.   : milestone, 1502,
profiling (1.538 ms) : 1514, 1563
.   : milestone, 1538,
tracing (1.494 ms) : 1469, 1519
.   : milestone, 1494,
section candidate
no_agent (1.379 ms) : 1361, 1398
.   : milestone, 1379,
appsec (1.738 ms) : 1714, 1762
.   : milestone, 1738,
appsec_no_iast (1.726 ms) : 1703, 1749
.   : milestone, 1726,
code_origins (1.652 ms) : 1625, 1679
.   : milestone, 1652,
iast (1.506 ms) : 1482, 1530
.   : milestone, 1506,
profiling (1.538 ms) : 1513, 1563
.   : milestone, 1538,
tracing (1.483 ms) : 1457, 1508
.   : milestone, 1483,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.352 ms [1.332 ms, 1.372 ms] -
appsec 1.74 ms [1.716 ms, 1.764 ms] 387.861 µs (28.7%)
appsec_no_iast 1.73 ms [1.707 ms, 1.754 ms] 378.077 µs (28.0%)
code_origins 1.656 ms [1.629 ms, 1.683 ms] 304.099 µs (22.5%)
iast 1.502 ms [1.477 ms, 1.526 ms] 149.525 µs (11.1%)
profiling 1.538 ms [1.514 ms, 1.563 ms] 186.184 µs (13.8%)
tracing 1.494 ms [1.469 ms, 1.519 ms] 141.625 µs (10.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.379 ms [1.361 ms, 1.398 ms] -
appsec 1.738 ms [1.714 ms, 1.762 ms] 358.868 µs (26.0%)
appsec_no_iast 1.726 ms [1.703 ms, 1.749 ms] 346.805 µs (25.1%)
code_origins 1.652 ms [1.625 ms, 1.679 ms] 272.877 µs (19.8%)
iast 1.506 ms [1.482 ms, 1.53 ms] 126.878 µs (9.2%)
profiling 1.538 ms [1.513 ms, 1.563 ms] 158.594 µs (11.5%)
tracing 1.483 ms [1.457 ms, 1.508 ms] 103.364 µs (7.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/enable-kotlin-coroutines-by-default
git_commit_date 1747906691 1747906704
git_commit_sha 4ca8a41 65f8541
release_version 1.50.0-SNAPSHOT~4ca8a4184f 1.50.0-SNAPSHOT~65f8541029
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1747908656 1747908656
ci_job_id 949713420 949713420
ci_pipeline_id 65832664 65832664
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-uyk5tteg-project-304-concurrent-1-jwfwsnjf 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-uyk5tteg-project-304-concurrent-1-jwfwsnjf 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.32 s) : 15320000, 15320000
.   : milestone, 15320000,
appsec (15.037 s) : 15037000, 15037000
.   : milestone, 15037000,
iast (18.571 s) : 18571000, 18571000
.   : milestone, 18571000,
iast_GLOBAL (17.859 s) : 17859000, 17859000
.   : milestone, 17859000,
profiling (15.077 s) : 15077000, 15077000
.   : milestone, 15077000,
tracing (15.095 s) : 15095000, 15095000
.   : milestone, 15095000,
section candidate
no_agent (15.02 s) : 15020000, 15020000
.   : milestone, 15020000,
appsec (14.817 s) : 14817000, 14817000
.   : milestone, 14817000,
iast (18.452 s) : 18452000, 18452000
.   : milestone, 18452000,
iast_GLOBAL (17.935 s) : 17935000, 17935000
.   : milestone, 17935000,
profiling (14.909 s) : 14909000, 14909000
.   : milestone, 14909000,
tracing (14.919 s) : 14919000, 14919000
.   : milestone, 14919000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.32 s [15.32 s, 15.32 s] -
appsec 15.037 s [15.037 s, 15.037 s] -283.0 ms (-1.8%)
iast 18.571 s [18.571 s, 18.571 s] 3.251 s (21.2%)
iast_GLOBAL 17.859 s [17.859 s, 17.859 s] 2.539 s (16.6%)
profiling 15.077 s [15.077 s, 15.077 s] -243.0 ms (-1.6%)
tracing 15.095 s [15.095 s, 15.095 s] -225.0 ms (-1.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.02 s [15.02 s, 15.02 s] -
appsec 14.817 s [14.817 s, 14.817 s] -203.0 ms (-1.4%)
iast 18.452 s [18.452 s, 18.452 s] 3.432 s (22.8%)
iast_GLOBAL 17.935 s [17.935 s, 17.935 s] 2.915 s (19.4%)
profiling 14.909 s [14.909 s, 14.909 s] -111.0 ms (-0.7%)
tracing 14.919 s [14.919 s, 14.919 s] -101.0 ms (-0.7%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~65f8541029, baseline=1.50.0-SNAPSHOT~4ca8a4184f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.474 ms) : 1463, 1486
.   : milestone, 1474,
appsec (2.4 ms) : 2352, 2449
.   : milestone, 2400,
iast (2.169 ms) : 2108, 2230
.   : milestone, 2169,
iast_GLOBAL (2.219 ms) : 2158, 2281
.   : milestone, 2219,
profiling (2.032 ms) : 1983, 2081
.   : milestone, 2032,
tracing (2.001 ms) : 1954, 2048
.   : milestone, 2001,
section candidate
no_agent (1.477 ms) : 1465, 1489
.   : milestone, 1477,
appsec (2.401 ms) : 2352, 2450
.   : milestone, 2401,
iast (2.172 ms) : 2110, 2234
.   : milestone, 2172,
iast_GLOBAL (2.224 ms) : 2162, 2285
.   : milestone, 2224,
profiling (2.022 ms) : 1973, 2071
.   : milestone, 2022,
tracing (1.997 ms) : 1950, 2044
.   : milestone, 1997,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.463 ms, 1.486 ms] -
appsec 2.4 ms [2.352 ms, 2.449 ms] 926.096 µs (62.8%)
iast 2.169 ms [2.108 ms, 2.23 ms] 694.734 µs (47.1%)
iast_GLOBAL 2.219 ms [2.158 ms, 2.281 ms] 744.906 µs (50.5%)
profiling 2.032 ms [1.983 ms, 2.081 ms] 558.024 µs (37.9%)
tracing 2.001 ms [1.954 ms, 2.048 ms] 526.385 µs (35.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.465 ms, 1.489 ms] -
appsec 2.401 ms [2.352 ms, 2.45 ms] 924.005 µs (62.6%)
iast 2.172 ms [2.11 ms, 2.234 ms] 695.183 µs (47.1%)
iast_GLOBAL 2.224 ms [2.162 ms, 2.285 ms] 746.638 µs (50.6%)
profiling 2.022 ms [1.973 ms, 2.071 ms] 545.061 µs (36.9%)
tracing 1.997 ms [1.95 ms, 2.044 ms] 519.925 µs (35.2%)

@mcculls mcculls force-pushed the mcculls/enable-kotlin-coroutines-by-default branch 2 times, most recently from 4d0a2e4 to 055485a Compare May 21, 2025 23:14
@mcculls mcculls marked this pull request as ready for review May 21, 2025 23:25
@mcculls mcculls requested a review from a team as a code owner May 21, 2025 23:25
@mcculls mcculls force-pushed the mcculls/enable-kotlin-coroutines-by-default branch from 055485a to ad97f20 Compare May 22, 2025 07:10
@mcculls mcculls merged commit 9830e20 into master May 22, 2025
590 of 591 checks passed
@mcculls mcculls deleted the mcculls/enable-kotlin-coroutines-by-default branch May 22, 2025 12:21
@github-actions github-actions bot added this to the 1.50.0 milestone May 22, 2025
@pcasaes
Copy link

pcasaes commented Jun 18, 2025

tested 1.49.0 with coroutines enabled

Looks like this issue holds true
#7755

traces don't correlate when above coroutines 1.8.1. On 1.8.1 it works fine.

@mcculls
Copy link
Contributor Author

mcculls commented Jun 18, 2025

@pcasaes have you tried the 1.50.0 pre-release snapshot?

dd-java-agent-1.50.0-20250618.151601-167.jar

svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jun 20, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.49.0` -> `1.50.0` |

---

### Release Notes

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.50.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.50.0):
1.50.0

### Deprecation Notice

> \[!NOTE]
> `DD_RUNTIME_ID_ENABLED` has been deprecated and will be removed in
future releases. Please use `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED`
instead.

### Components

#### Application Security Management (WAF)

- 🐛 Add String length truncation limit to ObjectIntrospector and
update truncation metrics
([#&#8203;8825](DataDog/dd-trace-java#8825) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Adapt standalone ASM to support API Security
([#&#8203;8804](DataDog/dd-trace-java#8804) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add appsec.waf.input\_truncated metric
([#&#8203;8791](DataDog/dd-trace-java#8791) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request body collection
([#&#8203;8748](DataDog/dd-trace-java#8748) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request/response headers collection
([#&#8203;8724](DataDog/dd-trace-java#8724) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Build & Tooling

- ✨ Add artifacts to public s3 bucket
([#&#8203;8947](DataDog/dd-trace-java#8947) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Continuous Integration Visibility

- ✨ Improve PR information building
([#&#8203;8908](DataDog/dd-trace-java#8908) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Truncate span stack traces when Test Optimization is
enabled
([#&#8203;8903](DataDog/dd-trace-java#8903) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Ensure auto-detected service name is the same for every process
in the same build
([#&#8203;8902](DataDog/dd-trace-java#8902) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Use tag as fallback in api requests if no branch is available
([#&#8203;8876](DataDog/dd-trace-java#8876) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add support for JUnit 5.13-RC1
([#&#8203;8865](DataDog/dd-trace-java#8865),
[#&#8203;8871](DataDog/dd-trace-java#8871) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement attempt to fix v3 and v4 and bump capability
version
([#&#8203;8824](DataDog/dd-trace-java#8824) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Align retry logic for all test framework instrumentations
([#&#8203;8803](DataDog/dd-trace-java#8803) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Always build ci workspace without trailing separator
([#&#8203;8788](DataDog/dd-trace-java#8788) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add commit discrepancies telemetry when building repository
git information
([#&#8203;8763](DataDog/dd-trace-java#8763) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Data Streams Monitoring

- 💡 Surface process tags in dsm payloads and use them for base hash
calculation
([#&#8203;8836](DataDog/dd-trace-java#8836) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Dynamic Instrumentation

- ✨ Optimized allocations for collection filter functions
([#&#8203;8896](DataDog/dd-trace-java#8896) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix SymDB upload size check
([#&#8203;8887](DataDog/dd-trace-java#8887) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for Set in filter function
([#&#8203;8873](DataDog/dd-trace-java#8873) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for isDefined in log template
([#&#8203;8859](DataDog/dd-trace-java#8859) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix Max captured frames for Exception Replay
([#&#8203;8856](DataDog/dd-trace-java#8856) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Remove static inherited fields collection
([#&#8203;8832](DataDog/dd-trace-java#8832) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 💡 Add process tags to dynamic instrumentation intake payload
([#&#8203;8779](DataDog/dd-trace-java#8779) -
[@&#8203;amarziali](https://github.com/amarziali))

#### GraalVM native-image

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add JMXFetch support for GraalVM Native
([#&#8203;8569](DataDog/dd-trace-java#8569) -
[@&#8203;ygree](https://github.com/ygree))

#### JMX fetch

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))

#### Library Injection

- ✨ Deny oracle db jvm based tools
([#&#8203;8909](DataDog/dd-trace-java#8909) -
[@&#8203;bric3](https://github.com/bric3))

#### OpenTracing

- 🐛 Fix OT packaging for exception replay
([#&#8203;8912](DataDog/dd-trace-java#8912) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Profiling

- ✨ Bump ddprof to 1.27.0
([#&#8203;8893](DataDog/dd-trace-java#8893) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Properly handle the adaptive sampling interval overflow by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#213
- Fix [#&#8203;200](DataDog/dd-trace-java#200)
Crash related to aligned\_alloc and free in context by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#208
- Explicitly initialize empty context page by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#210
- Re-connect crash recursion protection with VM stackwalker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#214
- ✨ Enable ZSTD compression for profiling
([#&#8203;8862](DataDog/dd-trace-java#8862) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 💡 Collect process tags for profiling upload requests
([#&#8203;8780](DataDog/dd-trace-java#8780) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Telemetry

- 💡 Surface process tags on telemetry payloads
([#&#8203;8837](DataDog/dd-trace-java#8837) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Trace context propagation

- ✨ Migrating all HttpClient Instrumentations to Inject Full
Context
([#&#8203;8826](DataDog/dd-trace-java#8826) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Migrating all HttpServer Instrumentations to Extract full
Context
([#&#8203;8820](DataDog/dd-trace-java#8820) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer core

- ✨⚡ Skip JAXB generated classes classloader
([#&#8203;9003](DataDog/dd-trace-java#9003) -
[@&#8203;bric3](https://github.com/bric3))
- ✨ Add DD\_RUNTIME\_METRICS\_RUNTIME\_ID\_ENABLED alias for
runtime id generation
([#&#8203;8981](DataDog/dd-trace-java#8981) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Use resolved address for peer.hostname when available without
hitting the cache
([#&#8203;8915](DataDog/dd-trace-java#8915) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface server name process tag for tomcat
([#&#8203;8894](DataDog/dd-trace-java#8894) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface websphere cell and server name on process tags
([#&#8203;8880](DataDog/dd-trace-java#8880) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Added special lightweight pre-main class that skips
installation on incompatible JVMs.
([#&#8203;8855](DataDog/dd-trace-java#8855) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- 💡 Add entrypoint type to process tags
([#&#8203;8839](DataDog/dd-trace-java#8839) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Notify listeners when the scope top changes after switching
scope stacks
([#&#8203;8797](DataDog/dd-trace-java#8797) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Read hsperfdata for Java PIDs if jvmstat is unavailable
([#&#8203;8792](DataDog/dd-trace-java#8792) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Turn JDK socket support on by default
([#&#8203;8752](DataDog/dd-trace-java#8752) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Simplify context propagation
([#&#8203;8719](DataDog/dd-trace-java#8719) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Add JSON parsing support
([#&#8203;8579](DataDog/dd-trace-java#8579) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer internal logging

- ✨ Fix printing format of span identifiers
([#&#8203;8897](DataDog/dd-trace-java#8897) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Tracer public API

- 💡 Track the source of installation
([#&#8203;8956](DataDog/dd-trace-java#8956) -
[@&#8203;mabdinur](https://github.com/mabdinur))
- ✨ Enforce size limit on application\_monitoring.yaml files
([#&#8203;8789](DataDog/dd-trace-java#8789) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Enabling baggage cache to support limits and non-ascii
characters
([#&#8203;8713](DataDog/dd-trace-java#8713) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

#### AWS Lambda instrumentation

- ✨ Pass Lambda Request ID to Extension
([#&#8203;8814](DataDog/dd-trace-java#8814) -
[@&#8203;nhulston](https://github.com/nhulston))

#### Core Java language instrumentation

- ✨ Ensure ClassloadingInstrumentation is always applied even
with `DD_TRACE_ENABLED=false`
([#&#8203;8863](DataDog/dd-trace-java#8863) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Eclipse Vert.x instrumentation

- 🐛 Do not override route with / in vertx instrumentation
([#&#8203;8881](DataDog/dd-trace-java#8881) -
[@&#8203;vandonr](https://github.com/vandonr))

#### IBM Liberty

- 🐛 Fix error mark on http status for IBM liberty
([#&#8203;8822](DataDog/dd-trace-java#8822) -
[@&#8203;amarziali](https://github.com/amarziali))

#### JDBC instrumentation

- 🐛 Do not prepend DBM <> APM trace comment in SQLCommenter if there
is a pg plan hint
([#&#8203;8864](DataDog/dd-trace-java#8864) -
[@&#8203;edengorevoy](https://github.com/edengorevoy))

#### JMS instrumentation

- ✨ Add jms as an extra integration name where there is JMS
involved
([#&#8203;8933](DataDog/dd-trace-java#8933) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Kotlin instrumentation

- ✨ Enable kotlin\_coroutine integration by default
([#&#8203;8848](DataDog/dd-trace-java#8848) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🧹 Rework Kotlin coroutines instrumentation around coroutine
context
([#&#8203;8774](DataDog/dd-trace-java#8774) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🐛 Support WithSpan inheritContext attribute
([#&#8203;8858](DataDog/dd-trace-java#8858) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Play Framework instrumentation

- 🐛 Fix the Play Framework's span resource name priority so that the
client JAX-RS 404 cannot override it
([#&#8203;8591](DataDog/dd-trace-java#8591) -
[@&#8203;ygree](https://github.com/ygree))

#### Quarkus Instrumentation

- 🐛 Ignore quarkus jaxrs stubs and cdi wrapper proxies
([#&#8203;8891](DataDog/dd-trace-java#8891) -
[@&#8203;amarziali](https://github.com/amarziali))

#### ServiceTalk

- ✨ Improve ServiceTalk Captured Context API Instrumentation
for v0.42.56+
([#&#8203;8821](DataDog/dd-trace-java#8821) -
[@&#8203;ygree](https://github.com/ygree))

#### Spring instrumentation

- ✨ Supporting Baggage for Instrumentations used in Weblog
Tests
([#&#8203;8773](DataDog/dd-trace-java#8773) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### WebSocket Instrumentation

- 💡 Trace websocket for spring webflux reactive handlers
([#&#8203;8831](DataDog/dd-trace-java#8831) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡:test\_tube: WebSocket support for Netty
([#&#8203;8632](DataDog/dd-trace-java#8632) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Zio Instrumentation

- 🧹 Cleanup Zio fiber instrumentation to avoid repeated activation
of continuation
([#&#8203;8798](DataDog/dd-trace-java#8798) -
[@&#8203;mcculls](https://github.com/mcculls))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 9207366cdb6a1bd098082305d354a0a3c4622d7a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inst: kotlin Kotlin instrumentation type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants