-
Notifications
You must be signed in to change notification settings - Fork 291
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
Add Data Streams support in AWS SQS without raw message delivery #8071
Conversation
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 52 metrics, 11 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.093 s) : 0, 1093280
Total [baseline] (10.537 s) : 0, 10536845
Agent [candidate] (1.096 s) : 0, 1095504
Total [candidate] (10.471 s) : 0, 10471443
section appsec
Agent [baseline] (1.235 s) : 0, 1234651
Total [baseline] (10.76 s) : 0, 10759808
Agent [candidate] (1.238 s) : 0, 1238344
Total [candidate] (10.777 s) : 0, 10776903
section iast
Agent [baseline] (1.223 s) : 0, 1222906
Total [baseline] (11.015 s) : 0, 11014644
Agent [candidate] (1.224 s) : 0, 1223678
Total [candidate] (10.995 s) : 0, 10995362
section profiling
Agent [baseline] (1.324 s) : 0, 1324002
Total [baseline] (10.94 s) : 0, 10939521
Agent [candidate] (1.333 s) : 0, 1333220
Total [candidate] (10.909 s) : 0, 10909459
gantt
title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (695.342 ms) : 0, 695342
BytebuddyAgent [candidate] (697.199 ms) : 0, 697199
GlobalTracer [baseline] (318.963 ms) : 0, 318963
GlobalTracer [candidate] (319.738 ms) : 0, 319738
AppSec [baseline] (54.559 ms) : 0, 54559
AppSec [candidate] (54.952 ms) : 0, 54952
Remote Config [baseline] (709.06 µs) : 0, 709
Remote Config [candidate] (683.619 µs) : 0, 684
Telemetry [baseline] (9.88 ms) : 0, 9880
Telemetry [candidate] (9.139 ms) : 0, 9139
section appsec
BytebuddyAgent [baseline] (718.204 ms) : 0, 718204
BytebuddyAgent [candidate] (720.172 ms) : 0, 720172
GlobalTracer [baseline] (316.715 ms) : 0, 316715
GlobalTracer [candidate] (317.236 ms) : 0, 317236
AppSec [baseline] (167.521 ms) : 0, 167521
AppSec [candidate] (168.182 ms) : 0, 168182
Remote Config [baseline] (652.668 µs) : 0, 653
Remote Config [candidate] (676.32 µs) : 0, 676
Telemetry [baseline] (7.796 ms) : 0, 7796
Telemetry [candidate] (7.863 ms) : 0, 7863
IAST [baseline] (19.787 ms) : 0, 19787
IAST [candidate] (20.617 ms) : 0, 20617
section iast
BytebuddyAgent [baseline] (814.883 ms) : 0, 814883
BytebuddyAgent [candidate] (815.24 ms) : 0, 815240
GlobalTracer [baseline] (307.254 ms) : 0, 307254
GlobalTracer [candidate] (307.834 ms) : 0, 307834
AppSec [baseline] (56.905 ms) : 0, 56905
AppSec [candidate] (57.695 ms) : 0, 57695
Remote Config [baseline] (647.155 µs) : 0, 647
Remote Config [candidate] (645.659 µs) : 0, 646
Telemetry [baseline] (7.55 ms) : 0, 7550
Telemetry [candidate] (7.508 ms) : 0, 7508
IAST [baseline] (21.875 ms) : 0, 21875
IAST [candidate] (20.956 ms) : 0, 20956
section profiling
ProfilingAgent [baseline] (94.132 ms) : 0, 94132
ProfilingAgent [candidate] (94.939 ms) : 0, 94939
BytebuddyAgent [baseline] (692.177 ms) : 0, 692177
BytebuddyAgent [candidate] (699.582 ms) : 0, 699582
GlobalTracer [baseline] (436.37 ms) : 0, 436370
GlobalTracer [candidate] (436.311 ms) : 0, 436311
AppSec [baseline] (53.726 ms) : 0, 53726
AppSec [candidate] (54.13 ms) : 0, 54130
Remote Config [baseline] (660.867 µs) : 0, 661
Remote Config [candidate] (680.753 µs) : 0, 681
Telemetry [baseline] (7.718 ms) : 0, 7718
Telemetry [candidate] (7.845 ms) : 0, 7845
Profiling [baseline] (94.156 ms) : 0, 94156
Profiling [candidate] (94.964 ms) : 0, 94964
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.108 s) : 0, 1108008
Total [baseline] (8.776 s) : 0, 8775867
Agent [candidate] (1.104 s) : 0, 1104284
Total [candidate] (8.735 s) : 0, 8734500
section iast
Agent [baseline] (1.223 s) : 0, 1222790
Total [baseline] (9.231 s) : 0, 9231087
Agent [candidate] (1.223 s) : 0, 1222992
Total [candidate] (9.241 s) : 0, 9241161
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.231 s) : 0, 1231310
Total [baseline] (9.249 s) : 0, 9248949
Agent [candidate] (1.23 s) : 0, 1230217
Total [candidate] (9.206 s) : 0, 9205636
section iast_TELEMETRY_OFF
Agent [baseline] (1.219 s) : 0, 1218923
Total [baseline] (9.24 s) : 0, 9239690
Agent [candidate] (1.219 s) : 0, 1219328
Total [candidate] (9.275 s) : 0, 9274574
gantt
title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (706.59 ms) : 0, 706590
BytebuddyAgent [candidate] (701.996 ms) : 0, 701996
GlobalTracer [baseline] (323.381 ms) : 0, 323381
GlobalTracer [candidate] (321.332 ms) : 0, 321332
AppSec [baseline] (54.789 ms) : 0, 54789
AppSec [candidate] (54.811 ms) : 0, 54811
Remote Config [baseline] (692.764 µs) : 0, 693
Remote Config [candidate] (686.942 µs) : 0, 687
Telemetry [baseline] (8.556 ms) : 0, 8556
Telemetry [candidate] (11.504 ms) : 0, 11504
section iast
BytebuddyAgent [baseline] (814.768 ms) : 0, 814768
BytebuddyAgent [candidate] (814.308 ms) : 0, 814308
GlobalTracer [baseline] (307.056 ms) : 0, 307056
GlobalTracer [candidate] (307.403 ms) : 0, 307403
AppSec [baseline] (57.947 ms) : 0, 57947
AppSec [candidate] (57.51 ms) : 0, 57510
Remote Config [baseline] (635.127 µs) : 0, 635
Remote Config [candidate] (647.186 µs) : 0, 647
Telemetry [baseline] (7.541 ms) : 0, 7541
Telemetry [candidate] (7.566 ms) : 0, 7566
IAST [baseline] (20.969 ms) : 0, 20969
IAST [candidate] (21.69 ms) : 0, 21690
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (820.948 ms) : 0, 820948
BytebuddyAgent [candidate] (820.145 ms) : 0, 820145
GlobalTracer [baseline] (308.599 ms) : 0, 308599
GlobalTracer [candidate] (308.39 ms) : 0, 308390
AppSec [baseline] (55.776 ms) : 0, 55776
AppSec [candidate] (57.476 ms) : 0, 57476
Remote Config [baseline] (657.706 µs) : 0, 658
Remote Config [candidate] (665.022 µs) : 0, 665
Telemetry [baseline] (7.654 ms) : 0, 7654
Telemetry [candidate] (7.587 ms) : 0, 7587
IAST [baseline] (23.771 ms) : 0, 23771
IAST [candidate] (21.843 ms) : 0, 21843
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (811.145 ms) : 0, 811145
BytebuddyAgent [candidate] (811.603 ms) : 0, 811603
GlobalTracer [baseline] (307.335 ms) : 0, 307335
GlobalTracer [candidate] (307.021 ms) : 0, 307021
AppSec [baseline] (58.116 ms) : 0, 58116
AppSec [candidate] (57.301 ms) : 0, 57301
Remote Config [baseline] (621.697 µs) : 0, 622
Remote Config [candidate] (638.73 µs) : 0, 639
Telemetry [baseline] (7.495 ms) : 0, 7495
Telemetry [candidate] (7.538 ms) : 0, 7538
IAST [baseline] (20.414 ms) : 0, 20414
IAST [candidate] (21.372 ms) : 0, 21372
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 16 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section baseline
no_agent (1.372 ms) : 1352, 1392
. : milestone, 1372,
appsec (1.759 ms) : 1733, 1784
. : milestone, 1759,
appsec_no_iast (1.746 ms) : 1720, 1771
. : milestone, 1746,
iast (1.502 ms) : 1480, 1525
. : milestone, 1502,
profiling (1.548 ms) : 1523, 1573
. : milestone, 1548,
tracing (1.486 ms) : 1462, 1510
. : milestone, 1486,
section candidate
no_agent (1.347 ms) : 1327, 1367
. : milestone, 1347,
appsec (1.756 ms) : 1731, 1782
. : milestone, 1756,
appsec_no_iast (1.748 ms) : 1723, 1772
. : milestone, 1748,
iast (1.494 ms) : 1471, 1516
. : milestone, 1494,
profiling (1.504 ms) : 1480, 1527
. : milestone, 1504,
tracing (1.498 ms) : 1474, 1522
. : milestone, 1498,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section baseline
no_agent (375.347 µs) : 354, 397
. : milestone, 375,
iast (491.857 µs) : 470, 513
. : milestone, 492,
iast_FULL (651.091 µs) : 629, 673
. : milestone, 651,
iast_GLOBAL (523.027 µs) : 501, 545
. : milestone, 523,
iast_HARDCODED_SECRET_DISABLED (492.06 µs) : 470, 514
. : milestone, 492,
iast_INACTIVE (451.822 µs) : 431, 472
. : milestone, 452,
iast_TELEMETRY_OFF (478.27 µs) : 457, 500
. : milestone, 478,
tracing (451.066 µs) : 430, 472
. : milestone, 451,
section candidate
no_agent (378.839 µs) : 359, 399
. : milestone, 379,
iast (492.37 µs) : 471, 514
. : milestone, 492,
iast_FULL (652.605 µs) : 631, 674
. : milestone, 653,
iast_GLOBAL (514.706 µs) : 493, 536
. : milestone, 515,
iast_HARDCODED_SECRET_DISABLED (496.284 µs) : 475, 518
. : milestone, 496,
iast_INACTIVE (456.38 µs) : 434, 478
. : milestone, 456,
iast_TELEMETRY_OFF (483.98 µs) : 463, 505
. : milestone, 484,
tracing (444.587 µs) : 423, 466
. : milestone, 445,
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.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section baseline
no_agent (15.212 s) : 15212000, 15212000
. : milestone, 15212000,
appsec (14.845 s) : 14845000, 14845000
. : milestone, 14845000,
iast (18.937 s) : 18937000, 18937000
. : milestone, 18937000,
iast_GLOBAL (18.135 s) : 18135000, 18135000
. : milestone, 18135000,
profiling (15.382 s) : 15382000, 15382000
. : milestone, 15382000,
tracing (14.918 s) : 14918000, 14918000
. : milestone, 14918000,
section candidate
no_agent (15.285 s) : 15285000, 15285000
. : milestone, 15285000,
appsec (14.787 s) : 14787000, 14787000
. : milestone, 14787000,
iast (18.86 s) : 18860000, 18860000
. : milestone, 18860000,
iast_GLOBAL (18.066 s) : 18066000, 18066000
. : milestone, 18066000,
profiling (14.983 s) : 14983000, 14983000
. : milestone, 14983000,
tracing (15.164 s) : 15164000, 15164000
. : milestone, 15164000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
dateFormat X
axisFormat %s
section baseline
no_agent (1.472 ms) : 1460, 1483
. : milestone, 1472,
appsec (2.344 ms) : 2302, 2385
. : milestone, 2344,
iast (2.09 ms) : 2037, 2143
. : milestone, 2090,
iast_GLOBAL (2.127 ms) : 2074, 2179
. : milestone, 2127,
profiling (1.952 ms) : 1909, 1994
. : milestone, 1952,
tracing (1.932 ms) : 1891, 1973
. : milestone, 1932,
section candidate
no_agent (1.467 ms) : 1456, 1479
. : milestone, 1467,
appsec (2.344 ms) : 2302, 2385
. : milestone, 2344,
iast (2.087 ms) : 2035, 2140
. : milestone, 2087,
iast_GLOBAL (2.133 ms) : 2080, 2186
. : milestone, 2133,
profiling (1.97 ms) : 1927, 2013
. : milestone, 1970,
tracing (1.929 ms) : 1889, 1969
. : milestone, 1929,
|
|
||
public void forEachKeyInBody(String body, AgentPropagation.KeyClassifier classifier) | ||
throws IOException { | ||
ObjectMapper objectMapper = new ObjectMapper(); |
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 should be statically created since it can be reused. Recently @PerfectSlayer also added (or he's adding) a json parser api you can access from the tracer instead using jackson even it should be fine for aws sdk
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.
Bruce's JSON component has been merged, and should be used for basic JSON parsing going forwards (if you need a feature it doesn't provide then it could be extended, but ideally try to see how far you can get with the initial API)
Scratch that, the above PR was for producing JSON - the parsing piece isn't available yet
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.
Yeah, parsing is yet another topic... I haven’t seen a loot usage yet to justify implementing it.
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.
Oh cool, it would be useful here, since for SQS v2 doesn't have Jackson, so I'm not sure how to add the same support for v2.
JsonNode rootNode = objectMapper.readTree(body); | ||
|
||
// Navigate to MessageAttributes._datadog | ||
JsonNode messageAttributes = rootNode.path("MessageAttributes").path("_datadog"); |
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.
what if MessageAttributes
is not present?
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.
It returns an empty MissingNode
in that case. I added a test case to make sure nothing goes wrong in this case.
Note that if the message is not in a Json format, it throws an IOException that is caught by the caller of this method. So it also works.
@@ -159,5 +159,7 @@ public final class TraceInstrumentationConfig { | |||
/** If set, the instrumentation will set its resource name on the local root too. */ | |||
public static final String AXIS_PROMOTE_RESOURCE_NAME = "trace.axis.promote.resource-name"; | |||
|
|||
public static final String SQS_BODY_PROPAGATION_ENABLED = "sqs.body.propagation.enabled"; |
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 would have prefixed by trace
try { | ||
this.forEachKeyInBody(carrier.getBody(), classifier); | ||
} catch (IOException e) { | ||
log.warn("Error extracting Datadog context from SQS message body", e); |
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.
It is maybe too noisy in warn if it fails since it's for each message
} else if (SHOULD_EXTRACT_CONTEXT_FROM_BODY) { | ||
try { | ||
this.forEachKeyInBody(carrier.getBody(), classifier); | ||
} catch (IOException e) { |
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 would have widen to Throwable
just in case
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.49.0` -> `2.50.0` | | [com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.48.0` -> `2.49.0` | | [com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `6.82.0` -> `6.83.0` | | [com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.20.7` -> `3.21.0` | | [com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.24.3` -> `2.25.1` | | [com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.48.0` -> `2.49.0` | | [com.google.api:gax](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.58.0` -> `2.59.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` -> `2.6.1` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.43.0` -> `1.44.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.43.0` -> `1.44.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | --- ### Release Notes <details> <summary>googleapis/sdk-platform-java (com.google.api.grpc:proto-google-common-protos)</summary> ### [`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14) ##### Features - Add experimental S2A integration in client libraries grpc transport ([#​3326](googleapis/sdk-platform-java#3326)) ([1138ca6](googleapis/sdk-platform-java@1138ca6)) - enable selective generation based on service config include list ([#​3323](googleapis/sdk-platform-java#3323)) ([0cddadb](googleapis/sdk-platform-java@0cddadb)) - introduce `java.time` to java-core ([#​3330](googleapis/sdk-platform-java#3330)) ([f202c3b](googleapis/sdk-platform-java@f202c3b)) - Update Gapic-Generator to generate libraries using `java.time` methods ([#​3321](googleapis/sdk-platform-java#3321)) ([b21c9a4](googleapis/sdk-platform-java@b21c9a4)) ##### Bug Fixes - Fix flaky test ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart ([#​3335](googleapis/sdk-platform-java#3335)) ([e73740d](googleapis/sdk-platform-java@e73740d)) - httpjson callables to trace attempts (started, failed) ([#​3300](googleapis/sdk-platform-java#3300)) ([15a64ee](googleapis/sdk-platform-java@15a64ee)) - instantiate GaxProperties at build time to ensure we get the protobuf version ([#​3365](googleapis/sdk-platform-java#3365)) ([bb2a3be](googleapis/sdk-platform-java@bb2a3be)) - protobuf version not always getting set in headers ([#​3322](googleapis/sdk-platform-java#3322)) ([7f6e470](googleapis/sdk-platform-java@7f6e470)) - use BuildKit instead of legacy builder to build the Hermetic Build images ([#​3338](googleapis/sdk-platform-java#3338)) ([222fb45](googleapis/sdk-platform-java@222fb45)) ##### Dependencies - update google auth library dependencies to v1.30.0 ([#​3367](googleapis/sdk-platform-java#3367)) ([a31c682](googleapis/sdk-platform-java@a31c682)) - update grpc dependencies to v1.68.1 ([#​3240](googleapis/sdk-platform-java#3240)) ([c8e3941](googleapis/sdk-platform-java@c8e3941)) ##### Documentation - fix list num ([#​3356](googleapis/sdk-platform-java#3356)) ([b7d6296](googleapis/sdk-platform-java@b7d6296)) - **hermetic-build:** indicate usage of Docker Buildkit in development guide ([#​3337](googleapis/sdk-platform-java#3337)) ([01e742d](googleapis/sdk-platform-java@01e742d)) - modify hermetic build docs ([#​3331](googleapis/sdk-platform-java#3331)) ([25023af](googleapis/sdk-platform-java@25023af)) </details> <details> <summary>googleapis/java-spanner (com.google.cloud:google-cloud-spanner)</summary> ### [`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13) ##### Features - Add Metrics host for built in metrics ([#​3519](googleapis/java-spanner#3519)) ([4ed455a](googleapis/java-spanner@4ed455a)) - Add opt-in for using multiplexed sessions for blind writes ([#​3540](googleapis/java-spanner#3540)) ([216f53e](googleapis/java-spanner@216f53e)) - Add UUID in Spanner TypeCode enum ([41f83dc](googleapis/java-spanner@41f83dc)) - Introduce java.time variables and methods ([#​3495](googleapis/java-spanner#3495)) ([8a7d533](googleapis/java-spanner@8a7d533)) - **spanner:** Support multiplexed session for Partitioned operations ([#​3231](googleapis/java-spanner#3231)) ([4501a3e](googleapis/java-spanner@4501a3e)) - Support 'set local' for retry_aborts_internally ([#​3532](googleapis/java-spanner#3532)) ([331942f](googleapis/java-spanner@331942f)) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([41f83dc](googleapis/java-spanner@41f83dc)) ##### Dependencies - Update sdk platform java dependencies ([#​3549](googleapis/java-spanner#3549)) ([6235f0f](googleapis/java-spanner@6235f0f)) </details> <details> <summary>googleapis/java-logging (com.google.cloud:google-cloud-logging)</summary> ### [`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13) ##### Features - Introduce `java.time` methods ([#​1729](googleapis/java-logging#1729)) ([323eb33](googleapis/java-logging@323eb33)) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([04d8868](googleapis/java-logging@04d8868)) ##### Dependencies - Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0 ([#​1638](googleapis/java-logging#1638)) ([7e007d4](googleapis/java-logging@7e007d4)) - Update sdk platform java dependencies ([#​1736](googleapis/java-logging#1736)) ([88b4cdf](googleapis/java-logging@88b4cdf)) </details> <details> <summary>googleapis/java-datastore (com.google.cloud:google-cloud-datastore)</summary> ### [`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([106ee4d](googleapis/java-datastore@106ee4d)) ##### Dependencies - Update sdk platform java dependencies ([#​1685](googleapis/java-datastore#1685)) ([4372350](googleapis/java-datastore@4372350)) ### [`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11) ##### Features - Introduce `java.time` methods and variables ([#​1671](googleapis/java-datastore#1671)) ([5a78a80](googleapis/java-datastore@5a78a80)) ##### Dependencies - Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0 ([#​1605](googleapis/java-datastore#1605)) ([5c6a678](googleapis/java-datastore@5c6a678)) ##### Documentation - Update gapic upgrade installation instructions ([#​1677](googleapis/java-datastore#1677)) ([b3fbfcc](googleapis/java-datastore@b3fbfcc)) </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.6.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-261) - \[Fix]: `superClassName` can be null (Object has no superclass). </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.44.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.1): 1.44.1 ##### Components ##### Continuous Integration Visibility - 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks ([#​8089](DataDog/dd-trace-java#8089) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) ### [`v1.44.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.0): 1.44.0 ##### Known Issues > \[!WARNING]\ > This release contains a known issue that causes failures when using Test Optimization to trace JUnit 5 tests in a Maven project where Maven Surefire is configured with `forkCount` > 1. > The issue is fixed in v1.44.1 ##### Breaking Changes > \[!WARNING]\ > Support for `X-Forwarded` header is dropped from default client IP resolution. > It can still be re-activated using the `dd.trace.client-ip-header=x-forwarded` system property, or the `DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See [#​7946](DataDog/dd-trace-java#7946). ##### Components ##### Application Security Management (IAST) - ✨ Set unexpected IAST exceptions to debug log level ([#​8044](DataDog/dd-trace-java#8044) - [@​smola](https://github.com/smola)) - ✨ Increase IAST propagation to StringBuffer subSequence ([#​8038](DataDog/dd-trace-java#8038) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder subSequence ([#​8026](DataDog/dd-trace-java#8026) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Add IAST propagation to String valueOf ([#​8013](DataDog/dd-trace-java#8013) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder append ([#​8010](DataDog/dd-trace-java#8010) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### Build & Tooling - ✨ Generate Muzzle classes for Groovy instrumentations ([#​8004](DataDog/dd-trace-java#8004) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) ##### Continuous Integration Visibility - ✨ Support distributed traces in tests ([#​8078](DataDog/dd-trace-java#8078) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement fail-fast tests ordering for JUnit 5 ([#​8055](DataDog/dd-trace-java#8055) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Mark JUnit 5 setup and teardown action spans as failed if there is an error ([#​8033](DataDog/dd-trace-java#8033) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add tracing of setup and teardown actions in JUnit 4 ([#​8030](DataDog/dd-trace-java#8030) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) ##### Crash tracking - ✨ Improve crash tracking install logging ([#​8045](DataDog/dd-trace-java#8045) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Data Streams Monitoring - 🐛 Add Data Streams support in AWS SQS without raw message delivery ([#​8071](DataDog/dd-trace-java#8071) - [@​piochelepiotr](https://github.com/piochelepiotr)) - ✨ Add new tag for enabled products / features to DSM checkpoints ([#​8051](DataDog/dd-trace-java#8051) - [@​kr-igor](https://github.com/kr-igor)) - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### Dynamic Instrumentation - ✨ Add Micronaut 4 support for code origin for spans ([#​8039](DataDog/dd-trace-java#8039) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Refactor probe matching for methods ([#​8021](DataDog/dd-trace-java#8021) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Update the CodeOriginProbe fingerprint to not rely on a stack walk ([#​8016](DataDog/dd-trace-java#8016) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Implement code origin support for grpc server entry spans ([#​7942](DataDog/dd-trace-java#7942) - [@​evanchooly](https://github.com/evanchooly)) ##### GraalVM native-image - 🐛 Update Graal build-time instrumentation config for TracePropagationStyle ([#​8065](DataDog/dd-trace-java#8065) - [@​MattAlp](https://github.com/MattAlp)) - 🐛 Fix NoClassDefFoundError: Could not initialize class DDSpanLink$EncoderHolder in Graal native-image ([#​8036](DataDog/dd-trace-java#8036) - [@​mcculls](https://github.com/mcculls)) - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### OpenTracing - 🧹 Custom ScopeManagers are deprecated and will be removed in a future release of dd-trace-ot ([#​8058](DataDog/dd-trace-java#8058) - [@​mcculls](https://github.com/mcculls)) ##### Tracer core - ✨🧪 Service naming: split by jee deployment ([#​8064](DataDog/dd-trace-java#8064) - [@​amarziali](https://github.com/amarziali)) - ✨ Exclude jboss mdb proxies from instrumenting ([#​8061](DataDog/dd-trace-java#8061) - [@​amarziali](https://github.com/amarziali)) - ✨ Add a built-in trace interceptor for keeping traces depending of their latency ([#​8040](DataDog/dd-trace-java#8040) - [@​cecile75](https://github.com/cecile75)) - 💡 Introduce marker mechanism for eagerly initializing helpers ([#​8028](DataDog/dd-trace-java#8028) - [@​mcculls](https://github.com/mcculls)) - 💡 Add JSON component ([#​7973](DataDog/dd-trace-java#7973) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨⚠️ Remove support for X-Forwarded in client IP resolution ([#​7946](DataDog/dd-trace-java#7946) - [@​smola](https://github.com/smola)) ##### Instrumentations ##### Apache HttpComponents - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### gRPC instrumentation - 🐛 Use lower priorities for grpc server errors ([#​8043](DataDog/dd-trace-java#8043) - [@​amarziali](https://github.com/amarziali)) ##### JDBC instrumentation - ✨ Add trace injection for prepared statements in Postgres ([#​7940](DataDog/dd-trace-java#7940) - [@​nenadnoveljic](https://github.com/nenadnoveljic)) ##### JMS instrumentation - 🐛 Protect mdb from instrumenting multiple time the same event ([#​8062](DataDog/dd-trace-java#8062) - [@​amarziali](https://github.com/amarziali)) ##### Kafka instrumentation - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### OpenTelemetry instrumentation - 🐛 Support using OpenTelemetry Event API inside `@WithSpan` annotated method ([#​8019](DataDog/dd-trace-java#8019) - [@​mcculls](https://github.com/mcculls)) ##### Reactor instrumentation - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### Spring instrumentation - 🐛 Avoid double instrumenting lambdas on latest spring scheduling ([#​8005](DataDog/dd-trace-java#8005) - [@​amarziali](https://github.com/amarziali)) ##### All other instrumentations - 🐛 Twilio: allow service name flattening ([#​8025](DataDog/dd-trace-java#8025) - [@​amarziali](https://github.com/amarziali)) - ✨ Instrument Mulesoft 4.5.0+ ([#​7981](DataDog/dd-trace-java#7981) - [@​amarziali](https://github.com/amarziali)) </details> <details> <summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary> ### [`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11) [Compare Source](aws/aws-sdk-java@1.12.779...1.12.780) #### **Amazon Simple Storage Service** - ### Bugfixes - AWS SDK for Java 1.x now includes additional validation for Amazon S3 client APIs to handle scenarios where an empty string ('') is passed as the key argument to the following operations: PutObject, DeleteObject, ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging, GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold, GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent, SetObjectRetention, GetObjectRetention, AbortMultipartUpload, CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart, RestoreObjectV2, and RestoreObject. The SDK will validate the key argument and throw an exception if it is an empty string, ensuring correct and expected behavior. </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**: Whenever PR becomes conflicted, 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: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
What Does This Do
For SQS v1, when raw message delivery is disabled (when sns is upstream) parse the message to extract message attributes.
The extraction is behind a flag to avoid unwanted overhead.
For v2 of SQS, I will probably need to add a dependency on Jackson, that is there by default for Sqs v1, which makes things easier.
Motivation
Additional Notes
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: [PROJ-IDENT]