-
Notifications
You must be signed in to change notification settings - Fork 292
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
Instrument Mulesoft 4.5.0+ #7981
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 55 metrics, 8 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.094 s) : 0, 1094006
Total [baseline] (8.68 s) : 0, 8680205
Agent [candidate] (1.098 s) : 0, 1097764
Total [candidate] (8.683 s) : 0, 8682860
section iast
Agent [baseline] (1.22 s) : 0, 1220321
Total [baseline] (9.217 s) : 0, 9216883
Agent [candidate] (1.23 s) : 0, 1229937
Total [candidate] (9.258 s) : 0, 9257994
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.219 s) : 0, 1218616
Total [baseline] (9.209 s) : 0, 9208652
Agent [candidate] (1.218 s) : 0, 1218235
Total [candidate] (9.169 s) : 0, 9168923
section iast_TELEMETRY_OFF
Agent [baseline] (1.218 s) : 0, 1217535
Total [baseline] (9.198 s) : 0, 9198213
Agent [candidate] (1.218 s) : 0, 1217699
Total [candidate] (9.248 s) : 0, 9247907
gantt
title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (696.133 ms) : 0, 696133
BytebuddyAgent [candidate] (700.433 ms) : 0, 700433
GlobalTracer [baseline] (318.581 ms) : 0, 318581
GlobalTracer [candidate] (317.85 ms) : 0, 317850
AppSec [baseline] (54.899 ms) : 0, 54899
AppSec [candidate] (55.015 ms) : 0, 55015
Remote Config [baseline] (690.743 µs) : 0, 691
Remote Config [candidate] (680.456 µs) : 0, 680
Telemetry [baseline] (9.961 ms) : 0, 9961
Telemetry [candidate] (9.985 ms) : 0, 9985
section iast
BytebuddyAgent [baseline] (813.408 ms) : 0, 813408
BytebuddyAgent [candidate] (819.644 ms) : 0, 819644
GlobalTracer [baseline] (306.246 ms) : 0, 306246
GlobalTracer [candidate] (308.631 ms) : 0, 308631
AppSec [baseline] (57.904 ms) : 0, 57904
AppSec [candidate] (57.588 ms) : 0, 57588
IAST [baseline] (20.881 ms) : 0, 20881
IAST [candidate] (21.93 ms) : 0, 21930
Remote Config [baseline] (639.106 µs) : 0, 639
Remote Config [candidate] (646.258 µs) : 0, 646
Telemetry [baseline] (7.518 ms) : 0, 7518
Telemetry [candidate] (7.625 ms) : 0, 7625
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (811.595 ms) : 0, 811595
BytebuddyAgent [candidate] (811.523 ms) : 0, 811523
GlobalTracer [baseline] (306.226 ms) : 0, 306226
GlobalTracer [candidate] (306.004 ms) : 0, 306004
AppSec [baseline] (58.189 ms) : 0, 58189
AppSec [candidate] (57.965 ms) : 0, 57965
IAST [baseline] (20.802 ms) : 0, 20802
IAST [candidate] (20.8 ms) : 0, 20800
Remote Config [baseline] (615.588 µs) : 0, 616
Remote Config [candidate] (623.489 µs) : 0, 623
Telemetry [baseline] (7.453 ms) : 0, 7453
Telemetry [candidate] (7.516 ms) : 0, 7516
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (810.386 ms) : 0, 810386
BytebuddyAgent [candidate] (810.825 ms) : 0, 810825
GlobalTracer [baseline] (306.505 ms) : 0, 306505
GlobalTracer [candidate] (305.842 ms) : 0, 305842
AppSec [baseline] (58.534 ms) : 0, 58534
AppSec [candidate] (57.579 ms) : 0, 57579
IAST [baseline] (20.412 ms) : 0, 20412
IAST [candidate] (21.423 ms) : 0, 21423
Remote Config [baseline] (630.919 µs) : 0, 631
Remote Config [candidate] (643.489 µs) : 0, 643
Telemetry [baseline] (7.379 ms) : 0, 7379
Telemetry [candidate] (7.473 ms) : 0, 7473
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.09 s) : 0, 1089986
Total [baseline] (10.518 s) : 0, 10518089
Agent [candidate] (1.094 s) : 0, 1094222
Total [candidate] (10.507 s) : 0, 10507340
section appsec
Agent [baseline] (1.225 s) : 0, 1224589
Total [baseline] (10.817 s) : 0, 10817375
Agent [candidate] (1.225 s) : 0, 1224927
Total [candidate] (10.781 s) : 0, 10781114
section iast
Agent [baseline] (1.227 s) : 0, 1227228
Total [baseline] (10.988 s) : 0, 10988261
Agent [candidate] (1.223 s) : 0, 1222633
Total [candidate] (11.004 s) : 0, 11004078
section profiling
Agent [baseline] (1.317 s) : 0, 1317367
Total [baseline] (10.835 s) : 0, 10835001
Agent [candidate] (1.329 s) : 0, 1328794
Total [candidate] (10.886 s) : 0, 10885677
gantt
title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (693.315 ms) : 0, 693315
BytebuddyAgent [candidate] (696.256 ms) : 0, 696256
GlobalTracer [baseline] (317.087 ms) : 0, 317087
GlobalTracer [candidate] (316.999 ms) : 0, 316999
AppSec [baseline] (54.617 ms) : 0, 54617
AppSec [candidate] (55.084 ms) : 0, 55084
Remote Config [baseline] (678.379 µs) : 0, 678
Remote Config [candidate] (678.53 µs) : 0, 679
Telemetry [baseline] (10.6 ms) : 0, 10600
Telemetry [candidate] (11.433 ms) : 0, 11433
section appsec
BytebuddyAgent [baseline] (711.5 ms) : 0, 711500
BytebuddyAgent [candidate] (711.801 ms) : 0, 711801
GlobalTracer [baseline] (314.143 ms) : 0, 314143
GlobalTracer [candidate] (314.256 ms) : 0, 314256
AppSec [baseline] (166.923 ms) : 0, 166923
AppSec [candidate] (166.04 ms) : 0, 166040
IAST [baseline] (19.632 ms) : 0, 19632
IAST [candidate] (19.758 ms) : 0, 19758
Remote Config [baseline] (636.834 µs) : 0, 637
Remote Config [candidate] (662.081 µs) : 0, 662
Telemetry [baseline] (7.852 ms) : 0, 7852
Telemetry [candidate] (8.552 ms) : 0, 8552
section iast
BytebuddyAgent [baseline] (817.674 ms) : 0, 817674
BytebuddyAgent [candidate] (814.59 ms) : 0, 814590
GlobalTracer [baseline] (307.755 ms) : 0, 307755
GlobalTracer [candidate] (307.278 ms) : 0, 307278
AppSec [baseline] (57.616 ms) : 0, 57616
AppSec [candidate] (58.158 ms) : 0, 58158
IAST [baseline] (22.156 ms) : 0, 22156
IAST [candidate] (20.741 ms) : 0, 20741
Remote Config [baseline] (636.14 µs) : 0, 636
Remote Config [candidate] (622.882 µs) : 0, 623
Telemetry [baseline] (7.616 ms) : 0, 7616
Telemetry [candidate] (7.486 ms) : 0, 7486
section profiling
BytebuddyAgent [baseline] (688.827 ms) : 0, 688827
BytebuddyAgent [candidate] (694.427 ms) : 0, 694427
GlobalTracer [baseline] (433.252 ms) : 0, 433252
GlobalTracer [candidate] (437.576 ms) : 0, 437576
AppSec [baseline] (53.924 ms) : 0, 53924
AppSec [candidate] (54.344 ms) : 0, 54344
Remote Config [baseline] (658.87 µs) : 0, 659
Remote Config [candidate] (662.206 µs) : 0, 662
Telemetry [baseline] (7.754 ms) : 0, 7754
Telemetry [candidate] (7.727 ms) : 0, 7727
ProfilingAgent [baseline] (93.907 ms) : 0, 93907
ProfilingAgent [candidate] (94.772 ms) : 0, 94772
Profiling [baseline] (93.931 ms) : 0, 93931
Profiling [candidate] (94.796 ms) : 0, 94796
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~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section baseline
no_agent (1.367 ms) : 1346, 1387
. : milestone, 1367,
appsec (1.747 ms) : 1722, 1773
. : milestone, 1747,
appsec_no_iast (1.768 ms) : 1744, 1792
. : milestone, 1768,
iast (1.503 ms) : 1480, 1526
. : milestone, 1503,
profiling (1.499 ms) : 1476, 1522
. : milestone, 1499,
tracing (1.489 ms) : 1464, 1514
. : milestone, 1489,
section candidate
no_agent (1.348 ms) : 1328, 1368
. : milestone, 1348,
appsec (1.747 ms) : 1722, 1772
. : milestone, 1747,
appsec_no_iast (1.76 ms) : 1736, 1784
. : milestone, 1760,
iast (1.493 ms) : 1469, 1516
. : milestone, 1493,
profiling (1.544 ms) : 1520, 1568
. : milestone, 1544,
tracing (1.478 ms) : 1454, 1503
. : milestone, 1478,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section baseline
no_agent (373.059 µs) : 353, 393
. : milestone, 373,
iast (488.547 µs) : 467, 510
. : milestone, 489,
iast_FULL (644.351 µs) : 623, 666
. : milestone, 644,
iast_GLOBAL (524.933 µs) : 502, 548
. : milestone, 525,
iast_HARDCODED_SECRET_DISABLED (488.311 µs) : 467, 510
. : milestone, 488,
iast_INACTIVE (446.803 µs) : 426, 468
. : milestone, 447,
iast_TELEMETRY_OFF (475.152 µs) : 454, 496
. : milestone, 475,
tracing (450.612 µs) : 430, 471
. : milestone, 451,
section candidate
no_agent (377.609 µs) : 356, 399
. : milestone, 378,
iast (488.864 µs) : 467, 510
. : milestone, 489,
iast_FULL (646.215 µs) : 625, 668
. : milestone, 646,
iast_GLOBAL (510.443 µs) : 489, 532
. : milestone, 510,
iast_HARDCODED_SECRET_DISABLED (491.33 µs) : 469, 513
. : milestone, 491,
iast_INACTIVE (450.762 µs) : 430, 472
. : milestone, 451,
iast_TELEMETRY_OFF (475.597 µs) : 454, 497
. : milestone, 476,
tracing (447.135 µs) : 426, 468
. : milestone, 447,
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 tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section baseline
no_agent (1.466 ms) : 1455, 1478
. : milestone, 1466,
appsec (2.355 ms) : 2314, 2396
. : milestone, 2355,
iast (2.09 ms) : 2038, 2142
. : milestone, 2090,
iast_GLOBAL (2.135 ms) : 2083, 2188
. : milestone, 2135,
profiling (1.955 ms) : 1913, 1997
. : milestone, 1955,
tracing (1.932 ms) : 1892, 1972
. : milestone, 1932,
section candidate
no_agent (1.474 ms) : 1463, 1486
. : milestone, 1474,
appsec (2.356 ms) : 2314, 2397
. : milestone, 2356,
iast (2.096 ms) : 2044, 2149
. : milestone, 2096,
iast_GLOBAL (2.141 ms) : 2088, 2194
. : milestone, 2141,
profiling (1.969 ms) : 1927, 2012
. : milestone, 1969,
tracing (1.945 ms) : 1904, 1985
. : milestone, 1945,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~9718fe6e44, baseline=1.44.0-SNAPSHOT~7698f2f594
dateFormat X
axisFormat %s
section baseline
no_agent (15.452 s) : 15452000, 15452000
. : milestone, 15452000,
appsec (15.217 s) : 15217000, 15217000
. : milestone, 15217000,
iast (18.776 s) : 18776000, 18776000
. : milestone, 18776000,
iast_GLOBAL (17.724 s) : 17724000, 17724000
. : milestone, 17724000,
profiling (15.339 s) : 15339000, 15339000
. : milestone, 15339000,
tracing (15.092 s) : 15092000, 15092000
. : milestone, 15092000,
section candidate
no_agent (15.225 s) : 15225000, 15225000
. : milestone, 15225000,
appsec (15.164 s) : 15164000, 15164000
. : milestone, 15164000,
iast (18.912 s) : 18912000, 18912000
. : milestone, 18912000,
iast_GLOBAL (17.713 s) : 17713000, 17713000
. : milestone, 17713000,
profiling (15.632 s) : 15632000, 15632000
. : milestone, 15632000,
tracing (14.804 s) : 14804000, 14804000
. : milestone, 14804000,
|
45ee35b
to
1d21fec
Compare
latestDepForkedTestImplementation group: 'org.mule.runtime', name: 'mule-module-javaee', version: '4.8.+' | ||
|
||
|
||
//TODO: 4.9.0 is not yet out but it looks like using 4.+ instead of above 4.8.+ brings in 4.9.0-SNAPSHOT artifacts. |
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 will see if we can have a BOM for each version of mule in order to manage better the version of each submodule for the latestDep and address it in another PR
c5ee702
to
42b79cd
Compare
@@ -97,7 +97,11 @@ abstract class HttpServerTest<SERVER> extends WithHttpServer<SERVER> { | |||
return key + ":" + value | |||
} | |||
static { | |||
((ch.qos.logback.classic.Logger) SERVER_LOGGER).setLevel(Level.DEBUG) |
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.
There are tests in which we cannot bind logback because of the version we use along the version of slf4j we have it's perhaps no more compatible with the thing we are testing. Assuming a logger implementation is not really correct here. That loglevel forcing can be done also by the logging configuration. For now I protected that cast since it does not change the test behaviour if it fails
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.
Looks like this explanation deserves to be in the code.
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.
Looks good but I can’t really review Mulesoft integration itself.
My main question is about creating a dedicated instrumentation module dedicated to Mulesoft. Not sure how to put it in place with separate instrumentations though 🤔
@@ -29,7 +31,7 @@ public AsyncHttpClientInstrumentation() { | |||
|
|||
@Override | |||
protected boolean defaultEnabled() { | |||
return false; | |||
return InstrumenterConfig.get().isIntegrationEnabled(Collections.singleton("mule"), false); |
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 about creating a dedicated instrumentation module that would bundle all instrumentations needed to Mulesoft?
So you would not have to add dependencies between different instrumentation.
WDYT? cc @mcculls
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.
@PerfectSlayer to add more details, the instrumentations are independent but grizzly are deactivated by default. I just need to sycnhronize the activation of them. FYI grizzly can be activated outside a mulesoft usage
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.
Yes, that was what I get. I wonder if we can create an Mulesoft instrumentation module that would bundle both grizzy instrumentations and Mulesoft instrumentations so you would only have one activation check 🤷
42b79cd
to
73e5753
Compare
@@ -6,8 +6,8 @@ | |||
<properties> | |||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
<app.runtime>4.2.2-20210129</app.runtime> | |||
<mule.maven.plugin.version>3.4.2</mule.maven.plugin.version> | |||
<app.runtime>4.5.0</app.runtime> |
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.
Do we drop <4.5 support then? Which would make sense if the instrumentation was incomplete.
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.
Yes and it's not really a breaking change since the previous instrumentation was not creating any spans but only providing a better support for propagating the context across the mule internal routing
static DDSpan muleSpan(TraceAssert traceAssert, String componentType, String componentName, DDSpan parent = null, boolean error = false) { | ||
def ret | ||
traceAssert.span { | ||
ret = it.span |
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.
Nice!
assertTraces(1) { | ||
trace(1 + names.size()) { traceAssert -> | ||
traceAssert.span(0) { | ||
trace(4 + 3 * names.size(), new TreeComparator(trace(0))) { traceAssert -> |
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.
Why is a special order necessary? I suppose it's because the spans are emitted in an unpredictable order?
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 flow is: Http request -> [ For each element -> do processing ] -> Reply
. The foreach is parallel and each iteration create spans. So yes the order in which the foreach spans are emitted is not predictable. However there is a tree-like structure I recreate in order to have span ordered in a predictable order so that I can assert
@@ -125,7 +127,7 @@ class MuleForkedTest extends WithHttpServer<MuleTestContainer> { | |||
"$Tags.HTTP_STATUS" 200 | |||
"$Tags.HTTP_URL" "${requestServer.address.resolve("/remote-client-request")}" | |||
"$Tags.PEER_HOSTNAME" "localhost" | |||
"$Tags.PEER_PORT" { true } // is this really the best way to ignore tags? | |||
"$Tags.PEER_PORT" { Integer } |
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.
Huh? Does that work as a type assertion?
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.
Normally yes:
Line 189 in 310d00c
} else if (expected instanceof Class) { |
final AgentSpan span = spanState.getSpanContextSpan(); | ||
DECORATE.beforeFinish(span).finish(); | ||
} | ||
eventContextStore.put(eventContext, spanState.getPreviousState()); |
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.
Is CoreEvent that we bind our context to shared for different Mule Spans? I'm just trying to figure out the need to track chains of SpanStates.
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 state is bound to the EventContext
. There is one eventContext per processing meaning that, in case of multithreaded parallel processing (there is a test case for) there are N different event context
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.
Thank you. That's clear. One thing that is still not clear to me is why you need to keep a chain of previous states and unroll it with getPreviousState to update the context store of the same event object?
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.
Because in a single event context we might open different spans. The mule tracer api does not pass the current span when starting and stopping (but there are thing like closeCurrent(EventContext)
so when closing the current one we should 'activate` the previous one in order to keep track of the active one
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.
Great work! That's a lot of effort! I've added some notes about the implementation, mostly to clarify my understanding, but I see no reason not to merge it as long as it works.
| 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
This PR adds support for tracing flows in mulesoft 4.5.0 onward. We previously had a mulesoft 4 instrumentation that customers where not using and that offered only a best effort context propagation of scopes.
This new instrumentation, still in beta hence disabled by default, plugs directly on the mule internal observability engine (
EventTracer
) available starting from 4.5.0. It plugs on top transparently regardless the fact that the span export functionality is enabled or not on the mule instance.The spans that are created will have
mule.action
as operation name and the resource name will have the first part that's original coming from the mule tracing engine (i.e.mule:flow
orhttp:request
) followed by the meaningful name of the component being traced (usually thedoc:name
xml tag on the mule flow definition that's assigned by the user).To activate this :
-Ddd.integration.mule.enabled=true
among the JVM optionsDD_INTEGRATION_MULE_ENABLED=true
Activating this integration automatically implies also activating
grizzly-filterchain
andgrizzly-client
since they are required to trace inbound/outbound http calls in muleSome example traces:
HTTP server, API kit, JDBC and HTTP client
HTTP to JMS
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: AIDM-328