Support reading configurations from files#8338
Conversation
* Add Stable config source * Add snakeyaml to parse file
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 4 unstable metrics. Startup time reports for petclinicgantt
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
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
Startup time reports for insecure-bankgantt
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
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
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 10 metrics, 19 unstable metrics.
Request duration reports for petclinicgantt
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,
Request duration reports for insecure-bankgantt
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,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
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,
Execution time for tomcatgantt
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,
|
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
…ider/StableConfigSource.java Co-authored-by: datadog-datadog-prod-us1[bot] <88084959+datadog-datadog-prod-us1[bot]@users.noreply.github.com>
…a into mtoff/stable_config
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
…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>
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy
Outdated
Show resolved
Hide resolved
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java
Outdated
Show resolved
Hide resolved
| 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); |
There was a problem hiding this comment.
we could use an integer (maybe int[1]) to represent three states:
0- apm config not found1- 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.
There was a problem hiding this comment.
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"
There was a problem hiding this comment.
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).
…ider/StableConfigSource.java Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java
Outdated
Show resolved
Hide resolved
| // 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:' |
There was a problem hiding this comment.
you could just check configId[0] != null to tell if we've found a config id and avoid this extra array
There was a problem hiding this comment.
How do you mean? Like not initialize configIdFound here?
There was a problem hiding this comment.
replace if (configIdFound[0]) { with if (configId[0] != null) { and then remove configIdFound completely from the rest of the code
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigParser.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigSource.java
Show resolved
Hide resolved
mcculls
left a comment
There was a problem hiding this comment.
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.
…strap/Agent.java Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
…ider/StableConfigSource.java Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
…ider/StableConfigSource.java Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
| 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 ([#​8483](DataDog/dd-trace-java#8483) - [@​jandro996](https://github.com/jandro996)) - 🐛 Add exclusion to solve IAST weak randomness vulnerability false positives ([#​8462](DataDog/dd-trace-java#8462) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness false positive in Kafka client ([#​8408](DataDog/dd-trace-java#8408) - [@​smola](https://github.com/smola)) - ✨ Fix location for SSRF with Kong Unirest ([#​8407](DataDog/dd-trace-java#8407) - [@​smola](https://github.com/smola)) - ✨ Exclude IBM Instana from IAST ([#​8406](DataDog/dd-trace-java#8406) - [@​smola](https://github.com/smola)) - 🐛 Fix org.json iast instrumentation test for latest dependency ([#​8347](DataDog/dd-trace-java#8347) - [@​jandro996](https://github.com/jandro996)) - ✨ Configuration to Disable APM Tracing ([#​8219](DataDog/dd-trace-java#8219) - [@​jandro996](https://github.com/jandro996)) - ✨ Address cookie vulnerability cardinality issues ([#​8210](DataDog/dd-trace-java#8210) - [@​jandro996](https://github.com/jandro996)) - ✨ Email HTML Injection detection in IAST ([#​8205](DataDog/dd-trace-java#8205) - [@​sezen-datadog](https://github.com/sezen-datadog)) ##### Application Security Management (WAF) - 🐛✨ Ensure usr.exists tag is not overridden when UsernameNotFoundException is thrown ([#​8376](DataDog/dd-trace-java#8376) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛✨ Ensure usr.exists tag is not overridden by auto instrumentation ([#​8374](DataDog/dd-trace-java#8374) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Update appsec metrics with event_rules_version tag ([#​8354](DataDog/dd-trace-java#8354) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Update metrics: appsec.waf.requests ([#​8353](DataDog/dd-trace-java#8353) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Improve ASM support in vert.x 5.0 ([#​8285](DataDog/dd-trace-java#8285) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Update metrics: appsec.waf.updates and appsec.waf.init ([#​8280](DataDog/dd-trace-java#8280) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Configuration to Disable APM Tracing ([#​8219](DataDog/dd-trace-java#8219) - [@​jandro996](https://github.com/jandro996)) ##### Build & Tooling - 🐛 Do not generate Muzzle references for primitive arrays in method body ([#​8361](DataDog/dd-trace-java#8361) - [@​amarziali](https://github.com/amarziali)) - 📖 Improve dev env setup documentation for Windows ([#​8180](DataDog/dd-trace-java#8180) - [@​lucaspimentel](https://github.com/lucaspimentel)) ##### Continuous Integration Visibility - ✨ Add support for skip-EFD tagging ([#​8487](DataDog/dd-trace-java#8487) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix an NPE in Gradle Android instrumentation ([#​8484](DataDog/dd-trace-java#8484) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Consider modified tests when applying fail-fast tests ordering ([#​8474](DataDog/dd-trace-java#8474) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement tests reordering for TestNG ([#​8467](DataDog/dd-trace-java#8467) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Gradle Launcher instrumentation to not interfere with Gradle Test Kit ([#​8465](DataDog/dd-trace-java#8465) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Use separate TestEventHandlers per framework in CI Vis instrumentations ([#​8451](DataDog/dd-trace-java#8451) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Remove warning log when JUnit 4 test method cannot be retrieved ([#​8445](DataDog/dd-trace-java#8445) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Scalatest tracing for tests that are reported asynchronously ([#​8444](DataDog/dd-trace-java#8444) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement attempt to fix tests ([#​8393](DataDog/dd-trace-java#8393) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement test disabling ([#​8377](DataDog/dd-trace-java#8377) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Update CODEOWNERS parser to not log errors on comments with leading whitespace ([#​8349](DataDog/dd-trace-java#8349) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Request Test Management tests list ([#​8345](DataDog/dd-trace-java#8345) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Receive test management settings from CIVis settings request ([#​8331](DataDog/dd-trace-java#8331) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement quarantined tests tagging ([#​8326](DataDog/dd-trace-java#8326) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement tests quarantining ([#​8320](DataDog/dd-trace-java#8320) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add tag to specify if the user is setting DD_SERVICE ([#​8318](DataDog/dd-trace-java#8318) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) ##### Crash tracking - ✨ Only fork jps when required ([#​8419](DataDog/dd-trace-java#8419) - [@​mcculls](https://github.com/mcculls)) - 🐛 Use Java home of the crashed process to launch crash uploader ([#​8348](DataDog/dd-trace-java#8348) - [@​jbachorik](https://github.com/jbachorik)) ##### Data Streams Monitoring - 🐛 Fix error happening when sqs message attributes are readonly ([#​8473](DataDog/dd-trace-java#8473) - [@​vandonr](https://github.com/vandonr)) - 🐛 Fix bug on proto schema extraction ([#​8403](DataDog/dd-trace-java#8403) - [@​vandonr](https://github.com/vandonr)) - 🐛 Fix service name overrides in consumers ([#​8387](DataDog/dd-trace-java#8387) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### Database Monitoring - ✨ Add DBMTracePreparedStatements to tracer configuration log ([#​8508](DataDog/dd-trace-java#8508) - [@​cecile75](https://github.com/cecile75)) ##### Dynamic Instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) - 🐛 Fix Exception Replay with Lambda proxy classes ([#​8452](DataDog/dd-trace-java#8452) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add code origin support for spring-webmvc ([#​8416](DataDog/dd-trace-java#8416) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Add support for scanning jar from loaded class ([#​8370](DataDog/dd-trace-java#8370) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Disable capture of entry values ([#​8369](DataDog/dd-trace-java#8369) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Fix CodeOrigin for `@Trace` annotation ([#​8344](DataDog/dd-trace-java#8344) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Fix equals/hashCode for CodeOrigin probe ([#​8319](DataDog/dd-trace-java#8319) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add code origin support to kafka message listeners ([#​8301](DataDog/dd-trace-java#8301) - [@​evanchooly](https://github.com/evanchooly)) ##### Metrics - ✨ Create metric: appsec.waf.error ([#​8381](DataDog/dd-trace-java#8381) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Create metric: appsec.rasp.error ([#​8364](DataDog/dd-trace-java#8364) - [@​sezen-datadog](https://github.com/sezen-datadog)) ##### Profiling - ✨ Bump ddprof library to 1.22.0 ([#​8463](DataDog/dd-trace-java#8463) - [@​jbachorik](https://github.com/jbachorik)) - IBM J9 8u361 corresponds to OpenJDK 8u362 by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#187 - Fix compatibility with musl libc 1.2.4 by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#189 - Modify version extraction by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#179 - Do not write null values to jvminfo event by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#184 - Productize VMStructs-based stack walker by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#177 - A few minor downport issues by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#180 - Enable ASGCT by default on fairly safe J9 JDK versions by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#181 - 🐛 Exclude OrderedThreadPoolExecutor from queue-time measurements ([#​8456](DataDog/dd-trace-java#8456) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Record JVM info on JVMs without JFR ([#​8431](DataDog/dd-trace-java#8431) - [@​jbachorik](https://github.com/jbachorik)) - 🐛 Actually use CleanupTask in TempLocationManager ([#​8420](DataDog/dd-trace-java#8420) - [@​mcculls](https://github.com/mcculls)) - ✨ Only fork jps when required ([#​8419](DataDog/dd-trace-java#8419) - [@​mcculls](https://github.com/mcculls)) - 🐛 Adjust JFR checks for J9 ([#​8405](DataDog/dd-trace-java#8405) - [@​jbachorik](https://github.com/jbachorik)) - 🧹 Disable smap RSS parsing by default ([#​8342](DataDog/dd-trace-java#8342) - [@​MattAlp](https://github.com/MattAlp)) ##### Telemetry - 🐛 Add support for JBoss jar:file format to DependencyResolver ([#​8428](DataDog/dd-trace-java#8428) - [@​jandro996](https://github.com/jandro996)) - ✨ Update metrics: appsec.waf.requests ([#​8353](DataDog/dd-trace-java#8353) - [@​Mariovido](https://github.com/Mariovido)) ##### Trace context propagation - ✨ Introduce tracing propagator ([#​8313](DataDog/dd-trace-java#8313) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Tracer core - 🐛 Fix Stable Config telemetry source names ([#​8460](DataDog/dd-trace-java#8460) - [@​BaptisteFoy](https://github.com/BaptisteFoy)) - ✨ Probe trace endpoints with a valid payload of empty arrays ([#​8414](DataDog/dd-trace-java#8414) - [@​mcculls](https://github.com/mcculls)) - ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback ([#​8399](DataDog/dd-trace-java#8399) - [@​mcculls](https://github.com/mcculls)) - ✨ Migrate DSM injection calls to context-first APIs ([#​8383](DataDog/dd-trace-java#8383) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 🧹 Move continuation capture methods from scope to tracer ([#​8371](DataDog/dd-trace-java#8371) - [@​mcculls](https://github.com/mcculls)) - ✨ Migrate context extraction calls to context-first APIs ([#​8368](DataDog/dd-trace-java#8368) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 🧹 Migrate context injection calls to context-first APIs ([#​8358](DataDog/dd-trace-java#8358) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 💡 Support reading configurations from files ([#​8338](DataDog/dd-trace-java#8338) - [@​mtoffl01](https://github.com/mtoffl01)) - 💡 Implementation of BaggagePropagator and BaggageContext ([#​8330](DataDog/dd-trace-java#8330) - [@​mhlidd](https://github.com/mhlidd)) - 🧹 Combine continuation implementations into one which supports multiple activations ([#​8324](DataDog/dd-trace-java#8324) - [@​mcculls](https://github.com/mcculls)) - ✨ Introduce tracing propagator ([#​8313](DataDog/dd-trace-java#8313) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Remove old context propagation API ([#​8271](DataDog/dd-trace-java#8271) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Instrumentations ##### AWS Lambda instrumentation - 🐛 Send error message and stack to Lambda extension ([#​8417](DataDog/dd-trace-java#8417) - [@​nhulston](https://github.com/nhulston)) ##### AWS SDK instrumentation - 🐛 Fix error happening when sqs message attributes are readonly ([#​8473](DataDog/dd-trace-java#8473) - [@​vandonr](https://github.com/vandonr)) - 💡 Inject trace context into AWS Step Functions input ([#​7585](DataDog/dd-trace-java#7585) - [@​DylanLovesCoffee](https://github.com/DylanLovesCoffee)) ##### Core Java language instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Add code origin support for spring-webmvc ([#​8416](DataDog/dd-trace-java#8416) - [@​evanchooly](https://github.com/evanchooly)) - 💡 Implementation of BaggagePropagator and BaggageContext ([#​8330](DataDog/dd-trace-java#8330) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Add code origin support to kafka message listeners ([#​8301](DataDog/dd-trace-java#8301) - [@​evanchooly](https://github.com/evanchooly)) ##### gRPC instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) ##### Kafka instrumentation - ✨ Add messaging.destination.name tag to kafka integrations ([#​8366](DataDog/dd-trace-java#8366) - [@​rarguelloF](https://github.com/rarguelloF)) ##### Protocol Buffer instrumentation - 🐛 Fix bug on proto schema extraction ([#​8403](DataDog/dd-trace-java#8403) - [@​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
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
type:and (comp:orinst:) labels in addition to any usefull labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]