Skip to content

Support reading configurations from files #8338

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 46 commits into from
Feb 24, 2025
Merged

Conversation

mtoffl01
Copy link
Contributor

@mtoffl01 mtoffl01 commented Feb 4, 2025

Motivation

Stable Configuration: Phase 1

Support reading configuration key-vals from user-managed (/etc/datadog-agent/application_monitoring.yaml) and fleet-managed (/etc/datadog-agent/managed/datadog-agent/stable/application_monitoring.yaml) yaml files. All valid configurations found at these file paths will apply to the compatible tracer instances that discover them.

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

paullegranddc and others added 2 commits February 4, 2025 16:59
* Add Stable config source
* Add snakeyaml to parse file
@pr-commenter
Copy link

pr-commenter bot commented Feb 4, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mtoff/stable_config
git_commit_date 1740389515 1740405671
git_commit_sha 2d7d791 eb7618b
release_version 1.47.0-SNAPSHOT~2d7d791511 1.47.0-SNAPSHOT~eb7618b646
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1740408105 1740408105
ci_job_id 819905951 819905951
ci_pipeline_id 56746288 56746288
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pnecau8x-project-304-concurrent-0-r9cw2h8f 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-pnecau8x-project-304-concurrent-0-r9cw2h8f 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 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 59 metrics, 4 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.041 s) : 0, 1041233
Total [baseline] (10.488 s) : 0, 10488107
Agent [candidate] (1.041 s) : 0, 1040821
Total [candidate] (10.473 s) : 0, 10473488
section appsec
Agent [baseline] (1.182 s) : 0, 1182242
Total [baseline] (10.737 s) : 0, 10736750
Agent [candidate] (1.182 s) : 0, 1182201
Total [candidate] (10.773 s) : 0, 10772686
section iast
Agent [baseline] (1.174 s) : 0, 1174371
Total [baseline] (11.023 s) : 0, 11022525
Agent [candidate] (1.178 s) : 0, 1177562
Total [candidate] (11.004 s) : 0, 11003576
section profiling
Agent [baseline] (1.26 s) : 0, 1259562
Total [baseline] (10.84 s) : 0, 10839858
Agent [candidate] (1.263 s) : 0, 1263500
Total [candidate] (10.881 s) : 0, 10880671
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.041 s -
Agent appsec 1.182 s 141.009 ms (13.5%)
Agent iast 1.174 s 133.138 ms (12.8%)
Agent profiling 1.26 s 218.329 ms (21.0%)
Total tracing 10.488 s -
Total appsec 10.737 s 248.643 ms (2.4%)
Total iast 11.023 s 534.419 ms (5.1%)
Total profiling 10.84 s 351.751 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.041 s -
Agent appsec 1.182 s 141.381 ms (13.6%)
Agent iast 1.178 s 136.742 ms (13.1%)
Agent profiling 1.263 s 222.679 ms (21.4%)
Total tracing 10.473 s -
Total appsec 10.773 s 299.199 ms (2.9%)
Total iast 11.004 s 530.088 ms (5.1%)
Total profiling 10.881 s 407.183 ms (3.9%)
gantt
    title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (716.63 ms) : 0, 716630
BytebuddyAgent [candidate] (717.538 ms) : 0, 717538
GlobalTracer [baseline] (239.149 ms) : 0, 239149
GlobalTracer [candidate] (239.387 ms) : 0, 239387
AppSec [baseline] (55.82 ms) : 0, 55820
AppSec [candidate] (55.179 ms) : 0, 55179
Remote Config [baseline] (696.715 µs) : 0, 697
Remote Config [candidate] (688.965 µs) : 0, 689
Telemetry [baseline] (13.745 ms) : 0, 13745
Telemetry [candidate] (13.1 ms) : 0, 13100
section appsec
BytebuddyAgent [baseline] (734.484 ms) : 0, 734484
BytebuddyAgent [candidate] (734.376 ms) : 0, 734376
GlobalTracer [baseline] (236.349 ms) : 0, 236349
GlobalTracer [candidate] (236.275 ms) : 0, 236275
AppSec [baseline] (176.545 ms) : 0, 176545
AppSec [candidate] (176.809 ms) : 0, 176809
Remote Config [baseline] (656.317 µs) : 0, 656
Remote Config [candidate] (666.434 µs) : 0, 666
Telemetry [baseline] (8.221 ms) : 0, 8221
Telemetry [candidate] (8.308 ms) : 0, 8308
IAST [baseline] (21.505 ms) : 0, 21505
IAST [candidate] (21.585 ms) : 0, 21585
section iast
BytebuddyAgent [baseline] (837.753 ms) : 0, 837753
BytebuddyAgent [candidate] (841.885 ms) : 0, 841885
GlobalTracer [baseline] (231.736 ms) : 0, 231736
GlobalTracer [candidate] (230.94 ms) : 0, 230940
AppSec [baseline] (57.319 ms) : 0, 57319
AppSec [candidate] (57.345 ms) : 0, 57345
Remote Config [baseline] (611.182 µs) : 0, 611
Remote Config [candidate] (610.817 µs) : 0, 611
Telemetry [baseline] (8.727 ms) : 0, 8727
Telemetry [candidate] (8.67 ms) : 0, 8670
IAST [baseline] (22.9 ms) : 0, 22900
IAST [candidate] (22.957 ms) : 0, 22957
section profiling
ProfilingAgent [baseline] (95.647 ms) : 0, 95647
ProfilingAgent [candidate] (96.552 ms) : 0, 96552
BytebuddyAgent [baseline] (707.292 ms) : 0, 707292
BytebuddyAgent [candidate] (710.746 ms) : 0, 710746
GlobalTracer [baseline] (349.168 ms) : 0, 349168
GlobalTracer [candidate] (351.255 ms) : 0, 351255
AppSec [baseline] (55.652 ms) : 0, 55652
AppSec [candidate] (54.818 ms) : 0, 54818
Remote Config [baseline] (668.793 µs) : 0, 669
Remote Config [candidate] (665.533 µs) : 0, 666
Telemetry [baseline] (8.863 ms) : 0, 8863
Telemetry [candidate] (8.979 ms) : 0, 8979
Profiling [baseline] (95.671 ms) : 0, 95671
Profiling [candidate] (96.575 ms) : 0, 96575
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.039 s) : 0, 1039369
Total [baseline] (8.656 s) : 0, 8655632
Agent [candidate] (1.038 s) : 0, 1037933
Total [candidate] (8.658 s) : 0, 8657647
section iast
Agent [baseline] (1.173 s) : 0, 1172913
Total [baseline] (9.207 s) : 0, 9207411
Agent [candidate] (1.175 s) : 0, 1175026
Total [candidate] (9.279 s) : 0, 9279328
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.177 s) : 0, 1176594
Total [baseline] (9.235 s) : 0, 9235120
Agent [candidate] (1.169 s) : 0, 1168519
Total [candidate] (9.222 s) : 0, 9221527
section iast_TELEMETRY_OFF
Agent [baseline] (1.176 s) : 0, 1175683
Total [baseline] (9.213 s) : 0, 9212768
Agent [candidate] (1.169 s) : 0, 1168849
Total [candidate] (9.186 s) : 0, 9185727
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.039 s -
Agent iast 1.173 s 133.544 ms (12.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.177 s 137.225 ms (13.2%)
Agent iast_TELEMETRY_OFF 1.176 s 136.314 ms (13.1%)
Total tracing 8.656 s -
Total iast 9.207 s 551.779 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.235 s 579.489 ms (6.7%)
Total iast_TELEMETRY_OFF 9.213 s 557.136 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.038 s -
Agent iast 1.175 s 137.093 ms (13.2%)
Agent iast_HARDCODED_SECRET_DISABLED 1.169 s 130.586 ms (12.6%)
Agent iast_TELEMETRY_OFF 1.169 s 130.916 ms (12.6%)
Total tracing 8.658 s -
Total iast 9.279 s 621.682 ms (7.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.222 s 563.881 ms (6.5%)
Total iast_TELEMETRY_OFF 9.186 s 528.08 ms (6.1%)
gantt
    title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (717.748 ms) : 0, 717748
BytebuddyAgent [candidate] (715.494 ms) : 0, 715494
GlobalTracer [baseline] (239.595 ms) : 0, 239595
GlobalTracer [candidate] (238.604 ms) : 0, 238604
AppSec [baseline] (55.399 ms) : 0, 55399
AppSec [candidate] (55.424 ms) : 0, 55424
Remote Config [baseline] (694.84 µs) : 0, 695
Remote Config [candidate] (685.943 µs) : 0, 686
Telemetry [baseline] (10.726 ms) : 0, 10726
Telemetry [candidate] (12.829 ms) : 0, 12829
section iast
BytebuddyAgent [baseline] (837.583 ms) : 0, 837583
BytebuddyAgent [candidate] (839.689 ms) : 0, 839689
GlobalTracer [baseline] (230.463 ms) : 0, 230463
GlobalTracer [candidate] (230.618 ms) : 0, 230618
IAST [baseline] (22.771 ms) : 0, 22771
IAST [candidate] (22.871 ms) : 0, 22871
AppSec [baseline] (57.4 ms) : 0, 57400
AppSec [candidate] (57.39 ms) : 0, 57390
Remote Config [baseline] (611.672 µs) : 0, 612
Remote Config [candidate] (614.629 µs) : 0, 615
Telemetry [baseline] (8.762 ms) : 0, 8762
Telemetry [candidate] (8.82 ms) : 0, 8820
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (839.205 ms) : 0, 839205
BytebuddyAgent [candidate] (834.436 ms) : 0, 834436
GlobalTracer [baseline] (231.812 ms) : 0, 231812
GlobalTracer [candidate] (229.994 ms) : 0, 229994
IAST [baseline] (23.183 ms) : 0, 23183
IAST [candidate] (22.798 ms) : 0, 22798
AppSec [baseline] (57.63 ms) : 0, 57630
AppSec [candidate] (57.046 ms) : 0, 57046
Remote Config [baseline] (609.072 µs) : 0, 609
Remote Config [candidate] (609.446 µs) : 0, 609
Telemetry [baseline] (8.709 ms) : 0, 8709
Telemetry [candidate] (8.7 ms) : 0, 8700
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (838.907 ms) : 0, 838907
BytebuddyAgent [candidate] (834.983 ms) : 0, 834983
GlobalTracer [baseline] (231.526 ms) : 0, 231526
GlobalTracer [candidate] (230.228 ms) : 0, 230228
IAST [baseline] (24.966 ms) : 0, 24966
IAST [candidate] (24.833 ms) : 0, 24833
AppSec [baseline] (55.439 ms) : 0, 55439
AppSec [candidate] (54.614 ms) : 0, 54614
Remote Config [baseline] (625.753 µs) : 0, 626
Remote Config [candidate] (618.879 µs) : 0, 619
Telemetry [baseline] (8.692 ms) : 0, 8692
Telemetry [candidate] (8.618 ms) : 0, 8618
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-02-24T14:12:06 2025-02-24T14:19:49
git_branch master mtoff/stable_config
git_commit_date 1740389515 1740405671
git_commit_sha 2d7d791 eb7618b
release_version 1.47.0-SNAPSHOT~2d7d791511 1.47.0-SNAPSHOT~eb7618b646
start_time 2025-02-24T14:11:52 2025-02-24T14:19:35
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1740407186 1740407186
ci_job_id 819905952 819905952
ci_pipeline_id 56746288 56746288
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ymzryaqj-project-304-concurrent-0-2astd1f3 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-ymzryaqj-project-304-concurrent-0-2astd1f3 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:profiling worse
[+42.788µs; +95.431µs] or [+2.874%; +6.410%]
unstable
[-628.938op/s; +382.784op/s] or [-19.654%; +11.962%]
1.558ms 3076.923op/s 1.489ms 3200.000op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.349 ms) : 1329, 1368
.   : milestone, 1349,
appsec (1.727 ms) : 1703, 1751
.   : milestone, 1727,
appsec_no_iast (1.757 ms) : 1733, 1780
.   : milestone, 1757,
code_origins (1.671 ms) : 1637, 1704
.   : milestone, 1671,
iast (1.502 ms) : 1477, 1527
.   : milestone, 1502,
profiling (1.489 ms) : 1465, 1513
.   : milestone, 1489,
tracing (1.491 ms) : 1466, 1516
.   : milestone, 1491,
section candidate
no_agent (1.378 ms) : 1358, 1397
.   : milestone, 1378,
appsec (1.75 ms) : 1727, 1774
.   : milestone, 1750,
appsec_no_iast (1.746 ms) : 1722, 1771
.   : milestone, 1746,
code_origins (1.67 ms) : 1637, 1702
.   : milestone, 1670,
iast (1.51 ms) : 1486, 1534
.   : milestone, 1510,
profiling (1.558 ms) : 1533, 1583
.   : milestone, 1558,
tracing (1.484 ms) : 1459, 1509
.   : milestone, 1484,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.349 ms [1.329 ms, 1.368 ms] -
appsec 1.727 ms [1.703 ms, 1.751 ms] 377.776 µs (28.0%)
appsec_no_iast 1.757 ms [1.733 ms, 1.78 ms] 407.756 µs (30.2%)
code_origins 1.671 ms [1.637 ms, 1.704 ms] 322.024 µs (23.9%)
iast 1.502 ms [1.477 ms, 1.527 ms] 152.96 µs (11.3%)
profiling 1.489 ms [1.465 ms, 1.513 ms] 140.06 µs (10.4%)
tracing 1.491 ms [1.466 ms, 1.516 ms] 142.258 µs (10.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.378 ms [1.358 ms, 1.397 ms] -
appsec 1.75 ms [1.727 ms, 1.774 ms] 372.386 µs (27.0%)
appsec_no_iast 1.746 ms [1.722 ms, 1.771 ms] 368.765 µs (26.8%)
code_origins 1.67 ms [1.637 ms, 1.702 ms] 292.012 µs (21.2%)
iast 1.51 ms [1.486 ms, 1.534 ms] 132.169 µs (9.6%)
profiling 1.558 ms [1.533 ms, 1.583 ms] 180.268 µs (13.1%)
tracing 1.484 ms [1.459 ms, 1.509 ms] 106.355 µs (7.7%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511
    dateFormat X
    axisFormat %s
section baseline
no_agent (379.037 µs) : 359, 399
.   : milestone, 379,
iast (503.952 µs) : 482, 526
.   : milestone, 504,
iast_FULL (722.476 µs) : 701, 744
.   : milestone, 722,
iast_GLOBAL (561.892 µs) : 540, 584
.   : milestone, 562,
iast_HARDCODED_SECRET_DISABLED (501.09 µs) : 480, 523
.   : milestone, 501,
iast_INACTIVE (453.408 µs) : 432, 475
.   : milestone, 453,
iast_TELEMETRY_OFF (495.435 µs) : 472, 519
.   : milestone, 495,
tracing (447.093 µs) : 426, 468
.   : milestone, 447,
section candidate
no_agent (382.192 µs) : 363, 402
.   : milestone, 382,
iast (505.806 µs) : 483, 529
.   : milestone, 506,
iast_FULL (727.323 µs) : 705, 749
.   : milestone, 727,
iast_GLOBAL (549.276 µs) : 528, 571
.   : milestone, 549,
iast_HARDCODED_SECRET_DISABLED (505.591 µs) : 483, 528
.   : milestone, 506,
iast_INACTIVE (455.299 µs) : 434, 476
.   : milestone, 455,
iast_TELEMETRY_OFF (495.757 µs) : 473, 519
.   : milestone, 496,
tracing (453.352 µs) : 432, 474
.   : milestone, 453,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 379.037 µs [359.383 µs, 398.691 µs] -
iast 503.952 µs [482.288 µs, 525.615 µs] 124.915 µs (33.0%)
iast_FULL 722.476 µs [700.738 µs, 744.214 µs] 343.439 µs (90.6%)
iast_GLOBAL 561.892 µs [539.997 µs, 583.787 µs] 182.855 µs (48.2%)
iast_HARDCODED_SECRET_DISABLED 501.09 µs [479.514 µs, 522.666 µs] 122.053 µs (32.2%)
iast_INACTIVE 453.408 µs [432.122 µs, 474.693 µs] 74.371 µs (19.6%)
iast_TELEMETRY_OFF 495.435 µs [472.133 µs, 518.737 µs] 116.398 µs (30.7%)
tracing 447.093 µs [426.224 µs, 467.961 µs] 68.056 µs (18.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 382.192 µs [362.613 µs, 401.772 µs] -
iast 505.806 µs [482.987 µs, 528.626 µs] 123.614 µs (32.3%)
iast_FULL 727.323 µs [705.449 µs, 749.196 µs] 345.13 µs (90.3%)
iast_GLOBAL 549.276 µs [527.758 µs, 570.794 µs] 167.084 µs (43.7%)
iast_HARDCODED_SECRET_DISABLED 505.591 µs [483.206 µs, 527.977 µs] 123.399 µs (32.3%)
iast_INACTIVE 455.299 µs [434.189 µs, 476.409 µs] 73.107 µs (19.1%)
iast_TELEMETRY_OFF 495.757 µs [472.58 µs, 518.934 µs] 113.565 µs (29.7%)
tracing 453.352 µs [432.367 µs, 474.338 µs] 71.16 µs (18.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mtoff/stable_config
git_commit_date 1740389515 1740405671
git_commit_sha 2d7d791 eb7618b
release_version 1.47.0-SNAPSHOT~2d7d791511 1.47.0-SNAPSHOT~eb7618b646
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1740407637 1740407637
ci_job_id 819905953 819905953
ci_pipeline_id 56746288 56746288
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-7lztkrbx-project-304-concurrent-0-wertuz88 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-7lztkrbx-project-304-concurrent-0-wertuz88 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 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.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.52 s) : 15520000, 15520000
.   : milestone, 15520000,
appsec (15.12 s) : 15120000, 15120000
.   : milestone, 15120000,
iast (18.987 s) : 18987000, 18987000
.   : milestone, 18987000,
iast_GLOBAL (17.821 s) : 17821000, 17821000
.   : milestone, 17821000,
profiling (15.553 s) : 15553000, 15553000
.   : milestone, 15553000,
tracing (14.917 s) : 14917000, 14917000
.   : milestone, 14917000,
section candidate
no_agent (15.227 s) : 15227000, 15227000
.   : milestone, 15227000,
appsec (15.035 s) : 15035000, 15035000
.   : milestone, 15035000,
iast (19.137 s) : 19137000, 19137000
.   : milestone, 19137000,
iast_GLOBAL (18.156 s) : 18156000, 18156000
.   : milestone, 18156000,
profiling (15.154 s) : 15154000, 15154000
.   : milestone, 15154000,
tracing (15.008 s) : 15008000, 15008000
.   : milestone, 15008000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.52 s [15.52 s, 15.52 s] -
appsec 15.12 s [15.12 s, 15.12 s] -400.0 ms (-2.6%)
iast 18.987 s [18.987 s, 18.987 s] 3.467 s (22.3%)
iast_GLOBAL 17.821 s [17.821 s, 17.821 s] 2.301 s (14.8%)
profiling 15.553 s [15.553 s, 15.553 s] 33.0 ms (0.2%)
tracing 14.917 s [14.917 s, 14.917 s] -603.0 ms (-3.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.227 s [15.227 s, 15.227 s] -
appsec 15.035 s [15.035 s, 15.035 s] -192.0 ms (-1.3%)
iast 19.137 s [19.137 s, 19.137 s] 3.91 s (25.7%)
iast_GLOBAL 18.156 s [18.156 s, 18.156 s] 2.929 s (19.2%)
profiling 15.154 s [15.154 s, 15.154 s] -73.0 ms (-0.5%)
tracing 15.008 s [15.008 s, 15.008 s] -219.0 ms (-1.4%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~eb7618b646, baseline=1.47.0-SNAPSHOT~2d7d791511
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.467 ms) : 1455, 1478
.   : milestone, 1467,
appsec (2.352 ms) : 2308, 2395
.   : milestone, 2352,
iast (2.098 ms) : 2044, 2153
.   : milestone, 2098,
iast_GLOBAL (2.147 ms) : 2092, 2203
.   : milestone, 2147,
profiling (1.966 ms) : 1922, 2011
.   : milestone, 1966,
tracing (1.946 ms) : 1903, 1988
.   : milestone, 1946,
section candidate
no_agent (1.466 ms) : 1455, 1478
.   : milestone, 1466,
appsec (2.355 ms) : 2311, 2398
.   : milestone, 2355,
iast (2.107 ms) : 2052, 2162
.   : milestone, 2107,
iast_GLOBAL (2.151 ms) : 2095, 2206
.   : milestone, 2151,
profiling (1.952 ms) : 1909, 1996
.   : milestone, 1952,
tracing (1.93 ms) : 1888, 1972
.   : milestone, 1930,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.467 ms [1.455 ms, 1.478 ms] -
appsec 2.352 ms [2.308 ms, 2.395 ms] 884.968 µs (60.3%)
iast 2.098 ms [2.044 ms, 2.153 ms] 631.662 µs (43.1%)
iast_GLOBAL 2.147 ms [2.092 ms, 2.203 ms] 680.493 µs (46.4%)
profiling 1.966 ms [1.922 ms, 2.011 ms] 499.432 µs (34.0%)
tracing 1.946 ms [1.903 ms, 1.988 ms] 478.961 µs (32.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.466 ms [1.455 ms, 1.478 ms] -
appsec 2.355 ms [2.311 ms, 2.398 ms] 888.179 µs (60.6%)
iast 2.107 ms [2.052 ms, 2.162 ms] 640.762 µs (43.7%)
iast_GLOBAL 2.151 ms [2.095 ms, 2.206 ms] 684.237 µs (46.7%)
profiling 1.952 ms [1.909 ms, 1.996 ms] 486.028 µs (33.1%)
tracing 1.93 ms [1.888 ms, 1.972 ms] 463.529 µs (31.6%)

mtoffl01 and others added 4 commits February 7, 2025 15:47
…ider/StableConfigSource.java

Co-authored-by: datadog-datadog-prod-us1[bot] <88084959+datadog-datadog-prod-us1[bot]@users.noreply.github.com>
mtoffl01 and others added 3 commits February 10, 2025 14:51
…ider/StableConfigSource.java

Co-authored-by: datadog-datadog-prod-us1[bot] <88084959+datadog-datadog-prod-us1[bot]@users.noreply.github.com>
…ider/StableConfigSource.java

Co-authored-by: datadog-datadog-prod-us1[bot] <88084959+datadog-datadog-prod-us1[bot]@users.noreply.github.com>
@mtoffl01 mtoffl01 requested a review from mcculls February 10, 2025 20:29
trimQuotes(keyValueMatcher.group(2).trim())); // Store key-value pair in map
} else {
// If we encounter a non-indented or non-key-value line, stop processing
apmConfigFound.set(false);
Copy link
Contributor

Choose a reason for hiding this comment

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

we could use an integer (maybe int[1]) to represent three states:

  • 0 - apm config not found
  • 1 - apm config block started
  • -1 - apm config block ended

that could let us short-circuit the rest of the file once the apm config block has been parsed.

But I'm also OK with merging this part as-is for now (maybe using arrays instead of AtomicBoolean) because this will only activate when the file(s) exist - we can continue to iterate on this part of the code in a followup PR.

Copy link
Contributor Author

@mtoffl01 mtoffl01 Feb 20, 2025

Choose a reason for hiding this comment

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

that could let us short-circuit the rest of the file once the apm config block has been parsed.

This could be a problem if the config_id comes after apm_configuration_default, unless we add another condition to hold config_id_found?

In the words of the RFC owner [when asked about whether config_id may ever come after apm_configuration_default]: "I don't know if we should assume any order though"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also: For the user-managed file, we only care about apm_configuration_default. For fleet-managed file, we care about both config_id and apm_configuration_default, so the "early return" conditions differ between these cases.
I could add an argument to the parse function that specifies whether we can return early after apm_configuration_default, or only after both apm_configuration_default and config_id.
Alternatively, I can leave the function signature as-is, and not return early at all (although early return seems ideal to me).

@mtoffl01 mtoffl01 marked this pull request as ready for review February 20, 2025 19:59
@mtoffl01 mtoffl01 requested review from a team as code owners February 20, 2025 19:59
Copy link
Contributor

github-actions bot commented Feb 20, 2025

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.

@mtoffl01 mtoffl01 requested a review from mcculls February 20, 2025 20:41
// Use AtomicBoolean because it's mutable within a lambda expression to
boolean[] apmConfigFound =
new boolean[1]; // Track if we've found 'apm_configuration_default:'
boolean[] configIdFound = new boolean[1]; // Track if we've found 'config_id:'
Copy link
Contributor

Choose a reason for hiding this comment

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

you could just check configId[0] != null to tell if we've found a config id and avoid this extra array

Copy link
Contributor Author

Choose a reason for hiding this comment

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

How do you mean? Like not initialize configIdFound here?

Copy link
Contributor

Choose a reason for hiding this comment

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

replace if (configIdFound[0]) { with if (configId[0] != null) { and then remove configIdFound completely from the rest of the code

Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

Just a couple of suggested improvements, otherwise this is good to merge.

We can look into improving the parser next week via a follow-on PR.

Copy link
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez left a comment

Choose a reason for hiding this comment

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

LGTM

@mtoffl01 mtoffl01 merged commit d57a858 into master Feb 24, 2025
216 checks passed
@mtoffl01 mtoffl01 deleted the mtoff/stable_config branch February 24, 2025 16:54
@github-actions github-actions bot added this to the 1.47.0 milestone Feb 24, 2025
@mtoffl01 mtoffl01 changed the title Stable Configuration implementation Support reading configurations from files Feb 28, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Mar 6, 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.46.1` -> `1.47.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.46.1` -> `1.47.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |

---

### Release Notes

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

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

##### Components

##### Application Security Management (IAST)

- 🐛 Exclude com.stripe.net.HttpURLConnectionClient to solve IAST
SSRF vulnerability false positives
([#&#8203;8483](DataDog/dd-trace-java#8483) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Add exclusion to solve IAST weak randomness vulnerability false
positives
([#&#8203;8462](DataDog/dd-trace-java#8462) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak randomness false positive in Kafka client
([#&#8203;8408](DataDog/dd-trace-java#8408) -
[@&#8203;smola](https://github.com/smola))
- ✨ Fix location for SSRF with Kong Unirest
([#&#8203;8407](DataDog/dd-trace-java#8407) -
[@&#8203;smola](https://github.com/smola))
- ✨ Exclude IBM Instana from IAST
([#&#8203;8406](DataDog/dd-trace-java#8406) -
[@&#8203;smola](https://github.com/smola))
- 🐛 Fix org.json iast instrumentation test for latest dependency
([#&#8203;8347](DataDog/dd-trace-java#8347) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Address cookie vulnerability cardinality issues
([#&#8203;8210](DataDog/dd-trace-java#8210) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Email HTML Injection detection in IAST
([#&#8203;8205](DataDog/dd-trace-java#8205) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Application Security Management (WAF)

- 🐛✨ Ensure usr.exists tag is not overridden when
UsernameNotFoundException is thrown
([#&#8203;8376](DataDog/dd-trace-java#8376) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛✨ Ensure usr.exists tag is not overridden by auto
instrumentation
([#&#8203;8374](DataDog/dd-trace-java#8374) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update appsec metrics with event_rules_version tag
([#&#8203;8354](DataDog/dd-trace-java#8354) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Improve ASM support in vert.x 5.0
([#&#8203;8285](DataDog/dd-trace-java#8285) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update metrics: appsec.waf.updates and appsec.waf.init
([#&#8203;8280](DataDog/dd-trace-java#8280) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))

##### Build & Tooling

- 🐛 Do not generate Muzzle references for primitive arrays in method
body
([#&#8203;8361](DataDog/dd-trace-java#8361) -
[@&#8203;amarziali](https://github.com/amarziali))
- 📖 Improve dev env setup documentation for Windows
([#&#8203;8180](DataDog/dd-trace-java#8180) -
[@&#8203;lucaspimentel](https://github.com/lucaspimentel))

##### Continuous Integration Visibility

- ✨ Add support for skip-EFD tagging
([#&#8203;8487](DataDog/dd-trace-java#8487) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix an NPE in Gradle Android instrumentation
([#&#8203;8484](DataDog/dd-trace-java#8484) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Consider modified tests when applying fail-fast tests
ordering
([#&#8203;8474](DataDog/dd-trace-java#8474) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests reordering for TestNG
([#&#8203;8467](DataDog/dd-trace-java#8467) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Gradle Launcher instrumentation to not interfere with Gradle
Test Kit
([#&#8203;8465](DataDog/dd-trace-java#8465) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Use separate TestEventHandlers per framework in CI Vis
instrumentations
([#&#8203;8451](DataDog/dd-trace-java#8451) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Remove warning log when JUnit 4 test method cannot be
retrieved
([#&#8203;8445](DataDog/dd-trace-java#8445) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Scalatest tracing for tests that are reported asynchronously
([#&#8203;8444](DataDog/dd-trace-java#8444) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement attempt to fix tests
([#&#8203;8393](DataDog/dd-trace-java#8393) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement test disabling
([#&#8203;8377](DataDog/dd-trace-java#8377) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Update CODEOWNERS parser to not log errors on comments with
leading whitespace
([#&#8203;8349](DataDog/dd-trace-java#8349) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Request Test Management tests list
([#&#8203;8345](DataDog/dd-trace-java#8345) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Receive test management settings from CIVis settings
request
([#&#8203;8331](DataDog/dd-trace-java#8331) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement quarantined tests tagging
([#&#8203;8326](DataDog/dd-trace-java#8326) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests quarantining
([#&#8203;8320](DataDog/dd-trace-java#8320) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tag to specify if the user is setting DD_SERVICE
([#&#8203;8318](DataDog/dd-trace-java#8318) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Use Java home of the crashed process to launch crash uploader
([#&#8203;8348](DataDog/dd-trace-java#8348) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Data Streams Monitoring

- 🐛 Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- 🐛 Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;vandonr](https://github.com/vandonr))
- 🐛 Fix service name overrides in consumers
([#&#8203;8387](DataDog/dd-trace-java#8387) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Database Monitoring

- ✨ Add DBMTracePreparedStatements to tracer configuration log
([#&#8203;8508](DataDog/dd-trace-java#8508) -
[@&#8203;cecile75](https://github.com/cecile75))

##### Dynamic Instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Fix Exception Replay with Lambda proxy classes
([#&#8203;8452](DataDog/dd-trace-java#8452) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add support for scanning jar from loaded class
([#&#8203;8370](DataDog/dd-trace-java#8370) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Disable capture of entry values
([#&#8203;8369](DataDog/dd-trace-java#8369) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix CodeOrigin for `@Trace` annotation
([#&#8203;8344](DataDog/dd-trace-java#8344) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix equals/hashCode for CodeOrigin probe
([#&#8203;8319](DataDog/dd-trace-java#8319) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Metrics

- ✨ Create metric: appsec.waf.error
([#&#8203;8381](DataDog/dd-trace-java#8381) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Create metric: appsec.rasp.error
([#&#8203;8364](DataDog/dd-trace-java#8364) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Profiling

- ✨ Bump ddprof library to 1.22.0
([#&#8203;8463](DataDog/dd-trace-java#8463) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- IBM J9 8u361 corresponds to OpenJDK 8u362 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#187
- Fix compatibility with musl libc 1.2.4 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#189
- Modify version extraction by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#179
- Do not write null values to jvminfo event by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#184
- Productize VMStructs-based stack walker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#177
- A few minor downport issues by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#180
- Enable ASGCT by default on fairly safe J9 JDK versions by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#181
- 🐛 Exclude OrderedThreadPoolExecutor from queue-time measurements
([#&#8203;8456](DataDog/dd-trace-java#8456) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Record JVM info on JVMs without JFR
([#&#8203;8431](DataDog/dd-trace-java#8431) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Actually use CleanupTask in TempLocationManager
([#&#8203;8420](DataDog/dd-trace-java#8420) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Adjust JFR checks for J9
([#&#8203;8405](DataDog/dd-trace-java#8405) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🧹 Disable smap RSS parsing by default
([#&#8203;8342](DataDog/dd-trace-java#8342) -
[@&#8203;MattAlp](https://github.com/MattAlp))

##### Telemetry

- 🐛 Add support for JBoss jar:file format to DependencyResolver
([#&#8203;8428](DataDog/dd-trace-java#8428) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Trace context propagation

- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- 🐛 Fix Stable Config telemetry source names
([#&#8203;8460](DataDog/dd-trace-java#8460) -
[@&#8203;BaptisteFoy](https://github.com/BaptisteFoy))
- ✨ Probe trace endpoints with a valid payload of empty arrays
([#&#8203;8414](DataDog/dd-trace-java#8414) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback
([#&#8203;8399](DataDog/dd-trace-java#8399) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate DSM injection calls to context-first APIs
([#&#8203;8383](DataDog/dd-trace-java#8383) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Move continuation capture methods from scope to tracer
([#&#8203;8371](DataDog/dd-trace-java#8371) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate context extraction calls to context-first APIs
([#&#8203;8368](DataDog/dd-trace-java#8368) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Migrate context injection calls to context-first APIs
([#&#8203;8358](DataDog/dd-trace-java#8358) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 💡 Support reading configurations from files
([#&#8203;8338](DataDog/dd-trace-java#8338) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- 💡 Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- 🧹 Combine continuation implementations into one which supports
multiple activations
([#&#8203;8324](DataDog/dd-trace-java#8324) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Remove old context propagation API
([#&#8203;8271](DataDog/dd-trace-java#8271) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Instrumentations

##### AWS Lambda instrumentation

- 🐛 Send error message and stack to Lambda extension
([#&#8203;8417](DataDog/dd-trace-java#8417) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- 🐛 Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- 💡 Inject trace context into AWS Step Functions input
([#&#8203;7585](DataDog/dd-trace-java#7585) -
[@&#8203;DylanLovesCoffee](https://github.com/DylanLovesCoffee))

##### Core Java language instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 💡 Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### gRPC instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Kafka instrumentation

- ✨ Add messaging.destination.name tag to kafka integrations
([#&#8203;8366](DataDog/dd-trace-java#8366) -
[@&#8203;rarguelloF](https://github.com/rarguelloF))

##### Protocol Buffer instrumentation

- 🐛 Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;vandonr](https://github.com/vandonr))

</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**: Disabled by config. Please merge this manually once you
are satisfied.

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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: 108a0f86aa59ab4c938cbac0688dd4c19cb301fa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants