Skip to content

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

Merged
merged 7 commits into from
Feb 24, 2025

Conversation

PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Feb 13, 2025

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:

  • The DSM-specific injection API from AgentPropgation are migrated to the new propagator API
  • The previous input parameters moved to a DataStreamsContext object
  • Checkpointing now use the DataStreamsContext object as parameter
  • All DSM classes moved to their own packages and such packages are now owned by the DSM team from CODEOWNERS

Now, 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

Jira ticket: LANGPLAT-297

public static final NoopDataStreamsMonitoring INSTANCE = new NoopDataStreamsMonitoring();

@Override
public void trackBacklog(LinkedHashMap<String, String> sortedTags, long value) {}
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

private static final ContextKey<DataStreamsContext> CONTEXT_KEY =
ContextKey.named("dsm-context-key");

final LinkedHashMap<String, String> sortedTags;
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

* @param sortedTags alphabetically sorted tags for the checkpoint (direction, queue type etc)
* @return the created context.
*/
public static DataStreamsContext fromTags(LinkedHashMap<String, String> sortedTags) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

this.sendCheckpoint = sendCheckpoint;
}

public LinkedHashMap<String, String> sortedTags() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

return span.with(dsmContext);
}

private LinkedHashMap<String, String> getTags(String queueUrl) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation


// That's basically a record for now
private DataStreamsContext(
LinkedHashMap<String, String> sortedTags,
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

}

public static DataStreamsContext fromTagsWithoutCheckpoint(
LinkedHashMap<String, String> sortedTags) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

* @return the created context.
*/
public static DataStreamsContext create(
LinkedHashMap<String, String> sortedTags, long defaultTimestamp, long payloadSizeBytes) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Suggested change
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.

View in Datadog  Leave us feedback  Documentation

@PerfectSlayer PerfectSlayer requested review from a team and mcculls February 13, 2025 14:33
@pr-commenter
Copy link

pr-commenter bot commented Feb 13, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-propagation-step6
git_commit_date 1739983586 1739985142
git_commit_sha e6c6eaf 997d94e
release_version 1.47.0-SNAPSHOT~e6c6eaf266 1.47.0-SNAPSHOT~997d94e0fd
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1739987725 1739987725
ci_job_id 814487364 814487364
ci_pipeline_id 56327700 56327700
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-b8yb1s2y-project-304-concurrent-1-6pw89ska 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-b8yb1s2y-project-304-concurrent-1-6pw89ska 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.037 s -
Agent appsec 1.183 s 146.06 ms (14.1%)
Agent iast 1.179 s 142.34 ms (13.7%)
Agent profiling 1.273 s 236.493 ms (22.8%)
Total tracing 10.458 s -
Total appsec 10.826 s 368.796 ms (3.5%)
Total iast 10.988 s 530.338 ms (5.1%)
Total profiling 10.814 s 356.766 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.039 s -
Agent appsec 1.192 s 153.198 ms (14.7%)
Agent iast 1.174 s 135.016 ms (13.0%)
Agent profiling 1.26 s 221.724 ms (21.3%)
Total tracing 10.472 s -
Total appsec 10.747 s 275.156 ms (2.6%)
Total iast 11.053 s 580.558 ms (5.5%)
Total profiling 10.856 s 383.712 ms (3.7%)
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
Loading
Startup time reports for insecure-bank
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.045 s -
Agent iast 1.168 s 122.997 ms (11.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.17 s 124.42 ms (11.9%)
Agent iast_TELEMETRY_OFF 1.167 s 121.693 ms (11.6%)
Total tracing 8.637 s -
Total iast 9.216 s 578.338 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.178 s 540.935 ms (6.3%)
Total iast_TELEMETRY_OFF 9.193 s 555.028 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.04 s -
Agent iast 1.169 s 128.517 ms (12.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.189 s 148.628 ms (14.3%)
Agent iast_TELEMETRY_OFF 1.168 s 127.861 ms (12.3%)
Total tracing 8.698 s -
Total iast 9.276 s 577.811 ms (6.6%)
Total iast_HARDCODED_SECRET_DISABLED 9.301 s 602.499 ms (6.9%)
Total iast_TELEMETRY_OFF 9.262 s 563.314 ms (6.5%)
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
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-02-19T17:25:35 2025-02-19T17:32:44
git_branch master bbujon/context-propagation-step6
git_commit_date 1739983586 1739985142
git_commit_sha e6c6eaf 997d94e
release_version 1.47.0-SNAPSHOT~e6c6eaf266 1.47.0-SNAPSHOT~997d94e0fd
start_time 2025-02-19T17:25:21 2025-02-19T17:32:30
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1739986724 1739986724
ci_job_id 814487369 814487369
ci_pipeline_id 56327700 56327700
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-g83w1pfg-project-304-concurrent-3-x1qnzu5k 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-g83w1pfg-project-304-concurrent-3-x1qnzu5k 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for petclinic
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.389 ms [1.369 ms, 1.41 ms] -
appsec 1.775 ms [1.751 ms, 1.799 ms] 385.59 µs (27.8%)
appsec_no_iast 1.776 ms [1.751 ms, 1.8 ms] 386.159 µs (27.8%)
iast 1.519 ms [1.495 ms, 1.544 ms] 129.888 µs (9.3%)
profiling 1.543 ms [1.52 ms, 1.566 ms] 153.51 µs (11.0%)
tracing 1.507 ms [1.482 ms, 1.531 ms] 117.222 µs (8.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.376 ms [1.355 ms, 1.397 ms] -
appsec 1.765 ms [1.742 ms, 1.789 ms] 389.529 µs (28.3%)
appsec_no_iast 1.782 ms [1.759 ms, 1.805 ms] 406.108 µs (29.5%)
iast 1.508 ms [1.484 ms, 1.532 ms] 131.992 µs (9.6%)
profiling 1.529 ms [1.505 ms, 1.553 ms] 153.153 µs (11.1%)
tracing 1.506 ms [1.482 ms, 1.53 ms] 129.832 µs (9.4%)
Request duration reports for insecure-bank
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 389.884 µs [370.175 µs, 409.593 µs] -
iast 523.359 µs [501.825 µs, 544.894 µs] 133.475 µs (34.2%)
iast_FULL 739.679 µs [717.597 µs, 761.761 µs] 349.795 µs (89.7%)
iast_GLOBAL 576.192 µs [553.735 µs, 598.649 µs] 186.308 µs (47.8%)
iast_HARDCODED_SECRET_DISABLED 520.081 µs [498.576 µs, 541.585 µs] 130.197 µs (33.4%)
iast_INACTIVE 470.866 µs [449.229 µs, 492.503 µs] 80.982 µs (20.8%)
iast_TELEMETRY_OFF 505.969 µs [483.035 µs, 528.902 µs] 116.084 µs (29.8%)
tracing 461.734 µs [441.04 µs, 482.429 µs] 71.85 µs (18.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 393.193 µs [373.619 µs, 412.767 µs] -
iast 530.319 µs [507.25 µs, 553.388 µs] 137.127 µs (34.9%)
iast_FULL 740.058 µs [718.005 µs, 762.111 µs] 346.865 µs (88.2%)
iast_GLOBAL 572.814 µs [549.896 µs, 595.732 µs] 179.621 µs (45.7%)
iast_HARDCODED_SECRET_DISABLED 517.556 µs [494.905 µs, 540.207 µs] 124.363 µs (31.6%)
iast_INACTIVE 471.201 µs [450.066 µs, 492.335 µs] 78.008 µs (19.8%)
iast_TELEMETRY_OFF 505.349 µs [482.369 µs, 528.329 µs] 112.156 µs (28.5%)
tracing 464.414 µs [443.229 µs, 485.599 µs] 71.221 µs (18.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-propagation-step6
git_commit_date 1739983586 1739985142
git_commit_sha e6c6eaf 997d94e
release_version 1.47.0-SNAPSHOT~e6c6eaf266 1.47.0-SNAPSHOT~997d94e0fd
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1739987326 1739987326
ci_job_id 814487372 814487372
ci_pipeline_id 56327700 56327700
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-b8yb1s2y-project-304-concurrent-2-ywqvyqkx 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-b8yb1s2y-project-304-concurrent-2-ywqvyqkx 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.211 s [15.211 s, 15.211 s] -
appsec 15.115 s [15.115 s, 15.115 s] -96.0 ms (-0.6%)
iast 18.999 s [18.999 s, 18.999 s] 3.788 s (24.9%)
iast_GLOBAL 17.76 s [17.76 s, 17.76 s] 2.549 s (16.8%)
profiling 15.018 s [15.018 s, 15.018 s] -193.0 ms (-1.3%)
tracing 15.001 s [15.001 s, 15.001 s] -210.0 ms (-1.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.462 s [15.462 s, 15.462 s] -
appsec 14.849 s [14.849 s, 14.849 s] -613.0 ms (-4.0%)
iast 18.679 s [18.679 s, 18.679 s] 3.217 s (20.8%)
iast_GLOBAL 18.011 s [18.011 s, 18.011 s] 2.549 s (16.5%)
profiling 15.031 s [15.031 s, 15.031 s] -431.0 ms (-2.8%)
tracing 14.869 s [14.869 s, 14.869 s] -593.0 ms (-3.8%)
Execution time for tomcat
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 2.359 ms [2.315 ms, 2.402 ms] 887.466 µs (60.3%)
iast 2.11 ms [2.055 ms, 2.165 ms] 639.03 µs (43.4%)
iast_GLOBAL 2.15 ms [2.095 ms, 2.205 ms] 678.965 µs (46.2%)
profiling 1.999 ms [1.954 ms, 2.044 ms] 527.513 µs (35.9%)
tracing 1.957 ms [1.914 ms, 1.999 ms] 485.585 µs (33.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.466 ms [1.455 ms, 1.478 ms] -
appsec 2.363 ms [2.32 ms, 2.407 ms] 897.106 µs (61.2%)
iast 2.115 ms [2.06 ms, 2.17 ms] 649.188 µs (44.3%)
iast_GLOBAL 2.149 ms [2.094 ms, 2.204 ms] 683.003 µs (46.6%)
profiling 1.984 ms [1.939 ms, 2.029 ms] 517.971 µs (35.3%)
tracing 1.95 ms [1.908 ms, 1.993 ms] 484.244 µs (33.0%)

@pr-commenter
Copy link

pr-commenter bot commented Feb 13, 2025

Kafka / consumer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-propagation-step6
git_commit_date 1739983586 1739985142
git_commit_sha e6c6eaf 997d94e
See matching parameters
Baseline Candidate
ci_job_date 1739986404 1739986404
ci_job_id 814487380 814487380
ci_pipeline_id 56327700 56327700
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.25 11.0.25
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/consumer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/consumer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.25+9-post-Ubuntu-1ubuntu122.04 11.0.25+9-post-Ubuntu-1ubuntu122.04

Summary

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

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaConsumerBenchmark.benchConsume unsure
[+2132.266op/s; +17304.048op/s] or [+0.693%; +5.625%]
scenario:only-tracing-dsm-enabled-benchmarks/KafkaConsumerBenchmark.benchConsume same

Copy link
Contributor

@piochelepiotr piochelepiotr left a 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.

@PerfectSlayer PerfectSlayer force-pushed the bbujon/context-propagation-step6 branch from dbe9364 to 997d94e Compare February 19, 2025 17:13
@pr-commenter
Copy link

pr-commenter bot commented Feb 19, 2025

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-propagation-step6
git_commit_date 1739983586 1739985142
git_commit_sha e6c6eaf 997d94e
See matching parameters
Baseline Candidate
ci_job_date 1739986359 1739986359
ci_job_id 814487378 814487378
ci_pipeline_id 56327700 56327700
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.25 11.0.25
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/producer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/producer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.25+9-post-Ubuntu-1ubuntu122.04 11.0.25+9-post-Ubuntu-1ubuntu122.04

Summary

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

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce unsure
[-64889.749op/s; -2154.484op/s] or [-3.560%; -0.118%]
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

@PerfectSlayer
Copy link
Contributor Author

Sure! I updated the PR and it is ready to test on your test env 🙏

@PerfectSlayer
Copy link
Contributor Author

Manual QA on the test env was successful: https://github.com/DataDog/data-streams-dev/pull/174
I will merge the PR then 👍

@PerfectSlayer PerfectSlayer merged commit 2d7d791 into master Feb 24, 2025
205 checks passed
@PerfectSlayer PerfectSlayer deleted the bbujon/context-propagation-step6 branch February 24, 2025 09:31
@github-actions github-actions bot added this to the 1.47.0 milestone Feb 24, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Mar 6, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.46.1` -> `1.47.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.46.1` -> `1.47.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |

---

### Release Notes

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

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

##### Components

##### Application Security Management (IAST)

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

##### Application Security Management (WAF)

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

##### Build & Tooling

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

##### Continuous Integration Visibility

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

##### Crash tracking

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

##### Data Streams Monitoring

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

##### Database Monitoring

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

##### Dynamic Instrumentation

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

##### Metrics

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

##### Profiling

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

##### Telemetry

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

##### Trace context propagation

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

##### Tracer core

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

##### Instrumentations

##### AWS Lambda instrumentation

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

##### AWS SDK instrumentation

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

##### Core Java language instrumentation

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

##### gRPC instrumentation

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

##### Kafka instrumentation

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

##### Protocol Buffer instrumentation

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

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

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

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

---

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

---

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

GitOrigin-RevId: 108a0f86aa59ab4c938cbac0688dd4c19cb301fa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants