- Notifications
You must be signed in to change notification settings - Fork 313
Instrument Mulesoft 4.5.0+ #7981
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 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 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 🤔
@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 <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
"$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