-
Notifications
You must be signed in to change notification settings - Fork 312
Add new parser for DD_TAGS
and prioritizing DD_SERVICE
#8296
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 58 metrics, 5 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.052 s) : 0, 1052452
Total [baseline] (8.761 s) : 0, 8760501
Agent [candidate] (1.044 s) : 0, 1044239
Total [candidate] (8.683 s) : 0, 8683001
section iast
Agent [baseline] (1.171 s) : 0, 1171178
Total [baseline] (9.289 s) : 0, 9288760
Agent [candidate] (1.182 s) : 0, 1182083
Total [candidate] (9.277 s) : 0, 9277199
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.187 s) : 0, 1186884
Total [baseline] (9.223 s) : 0, 9223471
Agent [candidate] (1.176 s) : 0, 1176149
Total [candidate] (9.215 s) : 0, 9215340
section iast_TELEMETRY_OFF
Agent [baseline] (1.169 s) : 0, 1169312
Total [baseline] (9.332 s) : 0, 9331915
Agent [candidate] (1.179 s) : 0, 1178653
Total [candidate] (9.416 s) : 0, 9416000
gantt
title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (725.7 ms) : 0, 725700
BytebuddyAgent [candidate] (719.331 ms) : 0, 719331
GlobalTracer [baseline] (242.852 ms) : 0, 242852
GlobalTracer [candidate] (239.89 ms) : 0, 239890
AppSec [baseline] (55.852 ms) : 0, 55852
AppSec [candidate] (55.138 ms) : 0, 55138
Remote Config [baseline] (704.464 µs) : 0, 704
Remote Config [candidate] (681.178 µs) : 0, 681
Telemetry [baseline] (12.379 ms) : 0, 12379
Telemetry [candidate] (14.328 ms) : 0, 14328
section iast
BytebuddyAgent [baseline] (837.236 ms) : 0, 837236
BytebuddyAgent [candidate] (845.692 ms) : 0, 845692
GlobalTracer [baseline] (229.718 ms) : 0, 229718
GlobalTracer [candidate] (232.35 ms) : 0, 232350
IAST [baseline] (22.685 ms) : 0, 22685
IAST [candidate] (22.896 ms) : 0, 22896
AppSec [baseline] (57.211 ms) : 0, 57211
AppSec [candidate] (56.821 ms) : 0, 56821
Remote Config [baseline] (623.494 µs) : 0, 623
Remote Config [candidate] (614.645 µs) : 0, 615
Telemetry [baseline] (8.863 ms) : 0, 8863
Telemetry [candidate] (8.712 ms) : 0, 8712
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (850.503 ms) : 0, 850503
BytebuddyAgent [candidate] (840.667 ms) : 0, 840667
GlobalTracer [baseline] (231.76 ms) : 0, 231760
GlobalTracer [candidate] (231.941 ms) : 0, 231941
IAST [baseline] (23.128 ms) : 0, 23128
IAST [candidate] (23.563 ms) : 0, 23563
AppSec [baseline] (57.021 ms) : 0, 57021
AppSec [candidate] (55.719 ms) : 0, 55719
Remote Config [baseline] (622.34 µs) : 0, 622
Remote Config [candidate] (605.447 µs) : 0, 605
Telemetry [baseline] (8.73 ms) : 0, 8730
Telemetry [candidate] (8.718 ms) : 0, 8718
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (835.488 ms) : 0, 835488
BytebuddyAgent [candidate] (841.847 ms) : 0, 841847
GlobalTracer [baseline] (230.559 ms) : 0, 230559
GlobalTracer [candidate] (232.143 ms) : 0, 232143
IAST [baseline] (22.215 ms) : 0, 22215
IAST [candidate] (22.645 ms) : 0, 22645
AppSec [baseline] (56.898 ms) : 0, 56898
AppSec [candidate] (57.648 ms) : 0, 57648
Remote Config [baseline] (615.602 µs) : 0, 616
Remote Config [candidate] (628.987 µs) : 0, 629
Telemetry [baseline] (8.64 ms) : 0, 8640
Telemetry [candidate] (8.77 ms) : 0, 8770
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.043 s) : 0, 1043472
Total [baseline] (10.467 s) : 0, 10466639
Agent [candidate] (1.05 s) : 0, 1049708
Total [candidate] (10.464 s) : 0, 10463890
section appsec
Agent [baseline] (1.186 s) : 0, 1185782
Total [baseline] (10.783 s) : 0, 10782936
Agent [candidate] (1.187 s) : 0, 1186816
Total [candidate] (10.77 s) : 0, 10769909
section iast
Agent [baseline] (1.176 s) : 0, 1175874
Total [baseline] (11.078 s) : 0, 11077741
Agent [candidate] (1.175 s) : 0, 1174529
Total [candidate] (11.039 s) : 0, 11038865
section profiling
Agent [baseline] (1.261 s) : 0, 1261159
Total [baseline] (10.891 s) : 0, 10891374
Agent [candidate] (1.273 s) : 0, 1272527
Total [candidate] (10.896 s) : 0, 10896332
gantt
title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (718.7 ms) : 0, 718700
BytebuddyAgent [candidate] (725.456 ms) : 0, 725456
GlobalTracer [baseline] (240.148 ms) : 0, 240148
GlobalTracer [candidate] (240.206 ms) : 0, 240206
AppSec [baseline] (55.475 ms) : 0, 55475
AppSec [candidate] (54.929 ms) : 0, 54929
Remote Config [baseline] (707.203 µs) : 0, 707
Remote Config [candidate] (684.8 µs) : 0, 685
Telemetry [baseline] (13.593 ms) : 0, 13593
Telemetry [candidate] (13.483 ms) : 0, 13483
section appsec
BytebuddyAgent [baseline] (738.484 ms) : 0, 738484
BytebuddyAgent [candidate] (737.776 ms) : 0, 737776
GlobalTracer [baseline] (236.41 ms) : 0, 236410
GlobalTracer [candidate] (237.207 ms) : 0, 237207
IAST [baseline] (21.481 ms) : 0, 21481
IAST [candidate] (21.698 ms) : 0, 21698
AppSec [baseline] (176.329 ms) : 0, 176329
AppSec [candidate] (177.134 ms) : 0, 177134
Remote Config [baseline] (663.732 µs) : 0, 664
Remote Config [candidate] (677.711 µs) : 0, 678
Telemetry [baseline] (8.283 ms) : 0, 8283
Telemetry [candidate] (8.307 ms) : 0, 8307
section iast
BytebuddyAgent [baseline] (841.31 ms) : 0, 841310
BytebuddyAgent [candidate] (839.376 ms) : 0, 839376
GlobalTracer [baseline] (230.644 ms) : 0, 230644
GlobalTracer [candidate] (231.361 ms) : 0, 231361
IAST [baseline] (22.831 ms) : 0, 22831
IAST [candidate] (22.829 ms) : 0, 22829
AppSec [baseline] (56.786 ms) : 0, 56786
AppSec [candidate] (56.815 ms) : 0, 56815
Remote Config [baseline] (618.294 µs) : 0, 618
Remote Config [candidate] (616.25 µs) : 0, 616
Telemetry [baseline] (8.756 ms) : 0, 8756
Telemetry [candidate] (8.708 ms) : 0, 8708
section profiling
BytebuddyAgent [baseline] (710.217 ms) : 0, 710217
BytebuddyAgent [candidate] (720.159 ms) : 0, 720159
GlobalTracer [baseline] (349.681 ms) : 0, 349681
GlobalTracer [candidate] (351.457 ms) : 0, 351457
AppSec [baseline] (54.969 ms) : 0, 54969
AppSec [candidate] (53.979 ms) : 0, 53979
Remote Config [baseline] (670.538 µs) : 0, 671
Remote Config [candidate] (678.821 µs) : 0, 679
Telemetry [baseline] (8.837 ms) : 0, 8837
Telemetry [candidate] (8.964 ms) : 0, 8964
ProfilingAgent [baseline] (96.471 ms) : 0, 96471
ProfilingAgent [candidate] (96.382 ms) : 0, 96382
Profiling [baseline] (96.496 ms) : 0, 96496
Profiling [candidate] (96.405 ms) : 0, 96405
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 18 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section baseline
no_agent (1.353 ms) : 1333, 1373
. : milestone, 1353,
appsec (1.737 ms) : 1714, 1761
. : milestone, 1737,
appsec_no_iast (1.734 ms) : 1709, 1760
. : milestone, 1734,
code_origins (1.675 ms) : 1647, 1703
. : milestone, 1675,
iast (1.528 ms) : 1504, 1553
. : milestone, 1528,
profiling (1.561 ms) : 1536, 1586
. : milestone, 1561,
tracing (1.479 ms) : 1454, 1504
. : milestone, 1479,
section candidate
no_agent (1.373 ms) : 1354, 1392
. : milestone, 1373,
appsec (1.736 ms) : 1713, 1760
. : milestone, 1736,
appsec_no_iast (1.717 ms) : 1692, 1741
. : milestone, 1717,
code_origins (1.674 ms) : 1647, 1702
. : milestone, 1674,
iast (1.509 ms) : 1486, 1533
. : milestone, 1509,
profiling (1.512 ms) : 1488, 1535
. : milestone, 1512,
tracing (1.49 ms) : 1466, 1515
. : milestone, 1490,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~04f1bfd9eb, baseline=1.48.0-SNAPSHOT~ab73c4495d
dateFormat X
axisFormat %s
section baseline
no_agent (358.839 µs) : 338, 380
. : milestone, 359,
iast (507.2 µs) : 485, 529
. : milestone, 507,
iast_FULL (730.205 µs) : 708, 752
. : milestone, 730,
iast_GLOBAL (554.852 µs) : 533, 576
. : milestone, 555,
iast_HARDCODED_SECRET_DISABLED (510.253 µs) : 489, 532
. : milestone, 510,
iast_INACTIVE (458.63 µs) : 438, 480
. : milestone, 459,
iast_TELEMETRY_OFF (500.817 µs) : 479, 523
. : milestone, 501,
tracing (452.528 µs) : 432, 473
. : milestone, 453,
section candidate
no_agent (378.918 µs) : 359, 399
. : milestone, 379,
iast (518.24 µs) : 497, 540
. : milestone, 518,
iast_FULL (726.987 µs) : 705, 749
. : milestone, 727,
iast_GLOBAL (562.659 µs) : 540, 585
. : milestone, 563,
iast_HARDCODED_SECRET_DISABLED (510.267 µs) : 488, 532
. : milestone, 510,
iast_INACTIVE (463.877 µs) : 442, 486
. : milestone, 464,
iast_TELEMETRY_OFF (502.309 µs) : 480, 524
. : milestone, 502,
tracing (461.619 µs) : 440, 483
. : milestone, 462,
Dacapo |
DD_TAGS
and prioritizing DD_SERVICE
50cad0a
to
5dbe976
Compare
@@ -68,7 +68,12 @@ static List<String> parseList(final String str, final String separator) { | |||
|
|||
@Nonnull | |||
static Map<String, String> parseMap(final String str, final String settingName) { | |||
return parseMap(str, settingName, ':'); | |||
if (settingName.equals( | |||
"trace.tags")) { // if we are parsing dd.tags, use the tags specific parser |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think putting tag name conditional logic in this method is not durable. Instead, what about just calling parseTraceTagsMap
from the config class where those tags are extracted?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would involve creating a new getMergedMap
to let trace.tags
take precedence over tags
. This seems a little repetitive to me, but I agree that the conditional logic used currently isn't the best. I'm wondering if there is an alternate solution for this? WDYT?
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/ConfigConverter.java
Show resolved
Hide resolved
internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/ConfigConverterTest.groovy
Outdated
Show resolved
Hide resolved
internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/ConfigConverterTest.groovy
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/config/provider/ConfigConverter.java
Outdated
Show resolved
Hide resolved
internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/ConfigConverterTest.groovy
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM from the logic side, not necessarily the Java expert side 😄
* testing * cleanup * first iteration on parser * initial working parsing for DD_TAGS * cleanup part 1 * cleanup pt 2 * adding traceTagsParser as separate parser due to different rule * dd_service override * reverting irrelevant changes * cleanup * reverting irrelevant changes * cleanup again * adding edge cases tests and creating specific tags mergedtags function * updating comment for clarity and removing irrelevant args * cleanup * updating DD_TAGS to belong under breaking change flag
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </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: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
Creates a new parser to parse
DD_TAGS
by prioritizing comma separated K/V pairs, and falling back to space separated K/V pairs. See this reference doc for how it is already implemented in dd-trace-go.Additionally, if both
DD_SERVICE
and theservice
key inDD_TAGS
are set, this PR prioritizesDD_SERVICE
as the service name. This effectively is the same as not settingservice
inDD_TAGS
. However, if a customer still wanted to manually override the service name withsetTag
, the service name would still be updated by theTagInterceptor
.Motivation
Our goal is to make the implementation of configuration variables consistent for all languages as part of the config consistency effort listed in the following RFC.
Additional Notes
Tested with additional and existing unit tests, as well as parametric and weblog tests.
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: APMAPI-1039