-
Notifications
You must be signed in to change notification settings - Fork 302
Migrate DSM injection calls to context-first APIs #8383
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
public static final NoopDataStreamsMonitoring INSTANCE = new NoopDataStreamsMonitoring(); | ||
|
||
@Override | ||
public void trackBacklog(LinkedHashMap<String, String> sortedTags, long value) {} |
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.
⚪ Code Quality Violation
public void trackBacklog(LinkedHashMap<String, String> sortedTags, long value) {} | |
public void trackBacklog(Map<String, String> sortedTags, long value) {} |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
private static final ContextKey<DataStreamsContext> CONTEXT_KEY = | ||
ContextKey.named("dsm-context-key"); | ||
|
||
final LinkedHashMap<String, String> sortedTags; |
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.
⚪ Code Quality Violation
final LinkedHashMap<String, String> sortedTags; | |
final Map<String, String> sortedTags; |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
* @param sortedTags alphabetically sorted tags for the checkpoint (direction, queue type etc) | ||
* @return the created context. | ||
*/ | ||
public static DataStreamsContext fromTags(LinkedHashMap<String, String> sortedTags) { |
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.
⚪ Code Quality Violation
public static DataStreamsContext fromTags(LinkedHashMap<String, String> sortedTags) { | |
public static DataStreamsContext fromTags(Map<String, String> sortedTags) { |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
this.sendCheckpoint = sendCheckpoint; | ||
} | ||
|
||
public LinkedHashMap<String, String> sortedTags() { |
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.
⚪ Code Quality Violation
public LinkedHashMap<String, String> sortedTags() { | |
public Map<String, String> sortedTags() { |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
return span.with(dsmContext); | ||
} | ||
|
||
private LinkedHashMap<String, String> getTags(String queueUrl) { |
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.
⚪ Code Quality Violation
private LinkedHashMap<String, String> getTags(String queueUrl) { | |
private Map<String, String> getTags(String queueUrl) { |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
|
||
// That's basically a record for now | ||
private DataStreamsContext( | ||
LinkedHashMap<String, String> sortedTags, |
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.
⚪ Code Quality Violation
LinkedHashMap<String, String> sortedTags, | |
Map<String, String> sortedTags, |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
} | ||
|
||
public static DataStreamsContext fromTagsWithoutCheckpoint( | ||
LinkedHashMap<String, String> sortedTags) { |
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.
⚪ Code Quality Violation
LinkedHashMap<String, String> sortedTags) { | |
Map<String, String> sortedTags) { |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
* @return the created context. | ||
*/ | ||
public static DataStreamsContext create( | ||
LinkedHashMap<String, String> sortedTags, long defaultTimestamp, long payloadSizeBytes) { |
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.
⚪ Code Quality Violation
LinkedHashMap<String, String> sortedTags, long defaultTimestamp, long payloadSizeBytes) { | |
Map<String, String> sortedTags, long defaultTimestamp, long payloadSizeBytes) { |
Avoid using a specific implementation type; use the more general Map instead (...read more)
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
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~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.037 s) : 0, 1036599
Total [baseline] (10.458 s) : 0, 10457695
Agent [candidate] (1.039 s) : 0, 1038774
Total [candidate] (10.472 s) : 0, 10472335
section appsec
Agent [baseline] (1.183 s) : 0, 1182660
Total [baseline] (10.826 s) : 0, 10826491
Agent [candidate] (1.192 s) : 0, 1191972
Total [candidate] (10.747 s) : 0, 10747491
section iast
Agent [baseline] (1.179 s) : 0, 1178939
Total [baseline] (10.988 s) : 0, 10988033
Agent [candidate] (1.174 s) : 0, 1173790
Total [candidate] (11.053 s) : 0, 11052893
section profiling
Agent [baseline] (1.273 s) : 0, 1273092
Total [baseline] (10.814 s) : 0, 10814461
Agent [candidate] (1.26 s) : 0, 1260498
Total [candidate] (10.856 s) : 0, 10856047
gantt
title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (715.157 ms) : 0, 715157
BytebuddyAgent [candidate] (717.354 ms) : 0, 717354
GlobalTracer [baseline] (238.726 ms) : 0, 238726
GlobalTracer [candidate] (238.946 ms) : 0, 238946
AppSec [baseline] (55.416 ms) : 0, 55416
AppSec [candidate] (55.259 ms) : 0, 55259
Remote Config [baseline] (688.689 µs) : 0, 689
Remote Config [candidate] (689.82 µs) : 0, 690
Telemetry [baseline] (11.455 ms) : 0, 11455
Telemetry [candidate] (11.352 ms) : 0, 11352
section appsec
BytebuddyAgent [baseline] (734.358 ms) : 0, 734358
BytebuddyAgent [candidate] (741.296 ms) : 0, 741296
GlobalTracer [baseline] (236.415 ms) : 0, 236415
GlobalTracer [candidate] (237.748 ms) : 0, 237748
AppSec [baseline] (177.061 ms) : 0, 177061
AppSec [candidate] (177.901 ms) : 0, 177901
Remote Config [baseline] (659.436 µs) : 0, 659
Remote Config [candidate] (655.347 µs) : 0, 655
Telemetry [baseline] (8.255 ms) : 0, 8255
Telemetry [candidate] (8.219 ms) : 0, 8219
IAST [baseline] (21.397 ms) : 0, 21397
IAST [candidate] (21.695 ms) : 0, 21695
section iast
BytebuddyAgent [baseline] (842.545 ms) : 0, 842545
BytebuddyAgent [candidate] (837.111 ms) : 0, 837111
GlobalTracer [baseline] (231.58 ms) : 0, 231580
GlobalTracer [candidate] (231.874 ms) : 0, 231874
AppSec [baseline] (56.899 ms) : 0, 56899
AppSec [candidate] (57.372 ms) : 0, 57372
Remote Config [baseline] (615.866 µs) : 0, 616
Remote Config [candidate] (617.118 µs) : 0, 617
Telemetry [baseline] (8.819 ms) : 0, 8819
Telemetry [candidate] (8.716 ms) : 0, 8716
IAST [baseline] (23.105 ms) : 0, 23105
IAST [candidate] (22.873 ms) : 0, 22873
section profiling
BytebuddyAgent [baseline] (716.991 ms) : 0, 716991
BytebuddyAgent [candidate] (708.846 ms) : 0, 708846
GlobalTracer [baseline] (353.122 ms) : 0, 353122
GlobalTracer [candidate] (349.742 ms) : 0, 349742
AppSec [baseline] (55.042 ms) : 0, 55042
AppSec [candidate] (54.451 ms) : 0, 54451
Remote Config [baseline] (669.168 µs) : 0, 669
Remote Config [candidate] (659.308 µs) : 0, 659
Telemetry [baseline] (8.952 ms) : 0, 8952
Telemetry [candidate] (8.884 ms) : 0, 8884
ProfilingAgent [baseline] (95.579 ms) : 0, 95579
ProfilingAgent [candidate] (95.722 ms) : 0, 95722
Profiling [baseline] (95.603 ms) : 0, 95603
Profiling [candidate] (95.746 ms) : 0, 95746
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.045 s) : 0, 1045331
Total [baseline] (8.637 s) : 0, 8637475
Agent [candidate] (1.04 s) : 0, 1040289
Total [candidate] (8.698 s) : 0, 8698212
section iast
Agent [baseline] (1.168 s) : 0, 1168328
Total [baseline] (9.216 s) : 0, 9215813
Agent [candidate] (1.169 s) : 0, 1168806
Total [candidate] (9.276 s) : 0, 9276022
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.17 s) : 0, 1169751
Total [baseline] (9.178 s) : 0, 9178410
Agent [candidate] (1.189 s) : 0, 1188917
Total [candidate] (9.301 s) : 0, 9300710
section iast_TELEMETRY_OFF
Agent [baseline] (1.167 s) : 0, 1167023
Total [baseline] (9.193 s) : 0, 9192502
Agent [candidate] (1.168 s) : 0, 1168150
Total [candidate] (9.262 s) : 0, 9261525
gantt
title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.872 ms) : 0, 722872
BytebuddyAgent [candidate] (717.675 ms) : 0, 717675
GlobalTracer [baseline] (239.091 ms) : 0, 239091
GlobalTracer [candidate] (239.197 ms) : 0, 239197
AppSec [baseline] (55.445 ms) : 0, 55445
AppSec [candidate] (55.498 ms) : 0, 55498
Remote Config [baseline] (689.25 µs) : 0, 689
Remote Config [candidate] (704.511 µs) : 0, 705
Telemetry [baseline] (11.979 ms) : 0, 11979
Telemetry [candidate] (12.024 ms) : 0, 12024
section iast
BytebuddyAgent [baseline] (834.461 ms) : 0, 834461
BytebuddyAgent [candidate] (835.306 ms) : 0, 835306
GlobalTracer [baseline] (229.776 ms) : 0, 229776
GlobalTracer [candidate] (229.371 ms) : 0, 229371
AppSec [baseline] (56.853 ms) : 0, 56853
AppSec [candidate] (56.864 ms) : 0, 56864
Remote Config [baseline] (605.57 µs) : 0, 606
Remote Config [candidate] (607.354 µs) : 0, 607
Telemetry [baseline] (8.684 ms) : 0, 8684
Telemetry [candidate] (8.708 ms) : 0, 8708
IAST [baseline] (22.754 ms) : 0, 22754
IAST [candidate] (22.691 ms) : 0, 22691
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (835.237 ms) : 0, 835237
BytebuddyAgent [candidate] (850.332 ms) : 0, 850332
GlobalTracer [baseline] (229.936 ms) : 0, 229936
GlobalTracer [candidate] (232.48 ms) : 0, 232480
AppSec [baseline] (57.16 ms) : 0, 57160
AppSec [candidate] (57.862 ms) : 0, 57862
Remote Config [baseline] (600.517 µs) : 0, 601
Remote Config [candidate] (629.011 µs) : 0, 629
Telemetry [baseline] (8.66 ms) : 0, 8660
Telemetry [candidate] (8.796 ms) : 0, 8796
IAST [baseline] (22.865 ms) : 0, 22865
IAST [candidate] (23.335 ms) : 0, 23335
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (833.214 ms) : 0, 833214
BytebuddyAgent [candidate] (835.007 ms) : 0, 835007
GlobalTracer [baseline] (230.334 ms) : 0, 230334
GlobalTracer [candidate] (230.06 ms) : 0, 230060
AppSec [baseline] (53.664 ms) : 0, 53664
AppSec [candidate] (51.871 ms) : 0, 51871
Remote Config [baseline] (610.657 µs) : 0, 611
Remote Config [candidate] (610.65 µs) : 0, 611
Telemetry [baseline] (8.539 ms) : 0, 8539
Telemetry [candidate] (8.597 ms) : 0, 8597
IAST [baseline] (25.428 ms) : 0, 25428
IAST [candidate] (26.759 ms) : 0, 26759
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 15 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section baseline
no_agent (1.389 ms) : 1369, 1410
. : milestone, 1389,
appsec (1.775 ms) : 1751, 1799
. : milestone, 1775,
appsec_no_iast (1.776 ms) : 1751, 1800
. : milestone, 1776,
iast (1.519 ms) : 1495, 1544
. : milestone, 1519,
profiling (1.543 ms) : 1520, 1566
. : milestone, 1543,
tracing (1.507 ms) : 1482, 1531
. : milestone, 1507,
section candidate
no_agent (1.376 ms) : 1355, 1397
. : milestone, 1376,
appsec (1.765 ms) : 1742, 1789
. : milestone, 1765,
appsec_no_iast (1.782 ms) : 1759, 1805
. : milestone, 1782,
iast (1.508 ms) : 1484, 1532
. : milestone, 1508,
profiling (1.529 ms) : 1505, 1553
. : milestone, 1529,
tracing (1.506 ms) : 1482, 1530
. : milestone, 1506,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section baseline
no_agent (389.884 µs) : 370, 410
. : milestone, 390,
iast (523.359 µs) : 502, 545
. : milestone, 523,
iast_FULL (739.679 µs) : 718, 762
. : milestone, 740,
iast_GLOBAL (576.192 µs) : 554, 599
. : milestone, 576,
iast_HARDCODED_SECRET_DISABLED (520.081 µs) : 499, 542
. : milestone, 520,
iast_INACTIVE (470.866 µs) : 449, 493
. : milestone, 471,
iast_TELEMETRY_OFF (505.969 µs) : 483, 529
. : milestone, 506,
tracing (461.734 µs) : 441, 482
. : milestone, 462,
section candidate
no_agent (393.193 µs) : 374, 413
. : milestone, 393,
iast (530.319 µs) : 507, 553
. : milestone, 530,
iast_FULL (740.058 µs) : 718, 762
. : milestone, 740,
iast_GLOBAL (572.814 µs) : 550, 596
. : milestone, 573,
iast_HARDCODED_SECRET_DISABLED (517.556 µs) : 495, 540
. : milestone, 518,
iast_INACTIVE (471.201 µs) : 450, 492
. : milestone, 471,
iast_TELEMETRY_OFF (505.349 µs) : 482, 528
. : milestone, 505,
tracing (464.414 µs) : 443, 486
. : milestone, 464,
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~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section baseline
no_agent (15.211 s) : 15211000, 15211000
. : milestone, 15211000,
appsec (15.115 s) : 15115000, 15115000
. : milestone, 15115000,
iast (18.999 s) : 18999000, 18999000
. : milestone, 18999000,
iast_GLOBAL (17.76 s) : 17760000, 17760000
. : milestone, 17760000,
profiling (15.018 s) : 15018000, 15018000
. : milestone, 15018000,
tracing (15.001 s) : 15001000, 15001000
. : milestone, 15001000,
section candidate
no_agent (15.462 s) : 15462000, 15462000
. : milestone, 15462000,
appsec (14.849 s) : 14849000, 14849000
. : milestone, 14849000,
iast (18.679 s) : 18679000, 18679000
. : milestone, 18679000,
iast_GLOBAL (18.011 s) : 18011000, 18011000
. : milestone, 18011000,
profiling (15.031 s) : 15031000, 15031000
. : milestone, 15031000,
tracing (14.869 s) : 14869000, 14869000
. : milestone, 14869000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~997d94e0fd, baseline=1.47.0-SNAPSHOT~e6c6eaf266
dateFormat X
axisFormat %s
section baseline
no_agent (1.471 ms) : 1460, 1483
. : milestone, 1471,
appsec (2.359 ms) : 2315, 2402
. : milestone, 2359,
iast (2.11 ms) : 2055, 2165
. : milestone, 2110,
iast_GLOBAL (2.15 ms) : 2095, 2205
. : milestone, 2150,
profiling (1.999 ms) : 1954, 2044
. : milestone, 1999,
tracing (1.957 ms) : 1914, 1999
. : milestone, 1957,
section candidate
no_agent (1.466 ms) : 1455, 1478
. : milestone, 1466,
appsec (2.363 ms) : 2320, 2407
. : milestone, 2363,
iast (2.115 ms) : 2060, 2170
. : milestone, 2115,
iast_GLOBAL (2.149 ms) : 2094, 2204
. : milestone, 2149,
profiling (1.984 ms) : 1939, 2029
. : milestone, 1984,
tracing (1.95 ms) : 1908, 1993
. : milestone, 1950,
|
Kafka / consumer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
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.
The logic makes sense to me.
Given the amount of changes, I think it would be worth to do some manual QA in our test environment on top of the integration tests already present. I'm happy to help with that.
Remove DSM injection method from AgentPropagation Make checkpoint use DataStreamsContext
dbe9364
to
997d94e
Compare
Kafka / producer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
Sure! I updated the PR and it is ready to test on your test env 🙏 |
Manual QA on the test env was successful: https://github.com/DataDog/data-streams-dev/pull/174 |
| 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
What Does This Do
This PR continues the migration to the context-first APIs by migrating the DSM injection calls to the new propagator API.
In particular:
AgentPropgation
are migrated to the new propagator APIDataStreamsContext
objectDataStreamsContext
object as parameterNow, when injecting context, both tracing and DSM information will be stored into context and injected seamlessly at the same time. Only DSM context can also be injected alone using the DSM propagator when needed.
Motivation
Continue the migration and get rid of the old context propagation API.
DSM code is now regrouped and identified as a dedicated feature instead of relying under tracing.
Additional Notes
CorePropagation
is removed and the old API will be cleaned in the next PR.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: LANGPLAT-297