- Notifications
You must be signed in to change notification settings - Fork 313
Add azure-functions instrumentation #8432
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 azure-functions instrumentation #8432
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 58 metrics, 5 unstable metrics. Startup time reports for petclinicgantt title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section tracing Agent [baseline] (1.039 s) : 0, 1039183 Total [baseline] (10.463 s) : 0, 10463131 Agent [candidate] (1.041 s) : 0, 1040667 Total [candidate] (10.342 s) : 0, 10341932 section appsec Agent [baseline] (1.181 s) : 0, 1181474 Total [baseline] (10.752 s) : 0, 10751959 Agent [candidate] (1.182 s) : 0, 1181775 Total [candidate] (10.716 s) : 0, 10715711 section iast Agent [baseline] (1.177 s) : 0, 1176574 Total [baseline] (10.997 s) : 0, 10997068 Agent [candidate] (1.179 s) : 0, 1179298 Total [candidate] (11.027 s) : 0, 11026763 section profiling Agent [baseline] (1.263 s) : 0, 1262594 Total [baseline] (10.838 s) : 0, 10838179 Agent [candidate] (1.259 s) : 0, 1259377 Total [candidate] (10.823 s) : 0, 10822857
gantt title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (717.486 ms) : 0, 717486 BytebuddyAgent [candidate] (717.05 ms) : 0, 717050 GlobalTracer [baseline] (239.118 ms) : 0, 239118 GlobalTracer [candidate] (239.18 ms) : 0, 239180 AppSec [baseline] (55.55 ms) : 0, 55550 AppSec [candidate] (55.421 ms) : 0, 55421 Remote Config [baseline] (715.632 µs) : 0, 716 Remote Config [candidate] (705.361 µs) : 0, 705 Telemetry [baseline] (11.359 ms) : 0, 11359 Telemetry [candidate] (13.023 ms) : 0, 13023 section appsec BytebuddyAgent [baseline] (733.953 ms) : 0, 733953 BytebuddyAgent [candidate] (735.064 ms) : 0, 735064 GlobalTracer [baseline] (235.746 ms) : 0, 235746 GlobalTracer [candidate] (236.208 ms) : 0, 236208 AppSec [baseline] (177.245 ms) : 0, 177245 AppSec [candidate] (175.597 ms) : 0, 175597 Remote Config [baseline] (654.191 µs) : 0, 654 Remote Config [candidate] (662.772 µs) : 0, 663 Telemetry [baseline] (8.232 ms) : 0, 8232 Telemetry [candidate] (8.303 ms) : 0, 8303 IAST [baseline] (21.392 ms) : 0, 21392 IAST [candidate] (21.284 ms) : 0, 21284 section iast BytebuddyAgent [baseline] (841.31 ms) : 0, 841310 BytebuddyAgent [candidate] (842.378 ms) : 0, 842378 GlobalTracer [baseline] (230.572 ms) : 0, 230572 GlobalTracer [candidate] (231.767 ms) : 0, 231767 AppSec [baseline] (57.293 ms) : 0, 57293 AppSec [candidate] (57.419 ms) : 0, 57419 Remote Config [baseline] (614.145 µs) : 0, 614 Remote Config [candidate] (616.409 µs) : 0, 616 Telemetry [baseline] (8.729 ms) : 0, 8729 Telemetry [candidate] (8.783 ms) : 0, 8783 IAST [baseline] (22.972 ms) : 0, 22972 IAST [candidate] (22.96 ms) : 0, 22960 section profiling BytebuddyAgent [baseline] (710.961 ms) : 0, 710961 BytebuddyAgent [candidate] (707.897 ms) : 0, 707897 GlobalTracer [baseline] (349.443 ms) : 0, 349443 GlobalTracer [candidate] (348.866 ms) : 0, 348866 AppSec [baseline] (55.502 ms) : 0, 55502 AppSec [candidate] (54.477 ms) : 0, 54477 Remote Config [baseline] (668.14 µs) : 0, 668 Remote Config [candidate] (690.567 µs) : 0, 691 Telemetry [baseline] (8.937 ms) : 0, 8937 Telemetry [candidate] (8.93 ms) : 0, 8930 ProfilingAgent [baseline] (96.464 ms) : 0, 96464 ProfilingAgent [candidate] (96.132 ms) : 0, 96132 Profiling [baseline] (96.488 ms) : 0, 96488 Profiling [candidate] (96.155 ms) : 0, 96155 Startup time reports for insecure-bankgantt title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section tracing Agent [baseline] (1.036 s) : 0, 1035957 Total [baseline] (8.685 s) : 0, 8684870 Agent [candidate] (1.045 s) : 0, 1045488 Total [candidate] (8.717 s) : 0, 8716674 section iast Agent [baseline] (1.169 s) : 0, 1168673 Total [baseline] (9.239 s) : 0, 9239304 Agent [candidate] (1.179 s) : 0, 1178904 Total [candidate] (9.26 s) : 0, 9259986 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.178 s) : 0, 1177644 Total [baseline] (9.195 s) : 0, 9194891 Agent [candidate] (1.172 s) : 0, 1171527 Total [candidate] (9.205 s) : 0, 9204824 section iast_TELEMETRY_OFF Agent [baseline] (1.179 s) : 0, 1179337 Total [baseline] (9.23 s) : 0, 9229760 Agent [candidate] (1.171 s) : 0, 1170540 Total [candidate] (9.232 s) : 0, 9232338
gantt title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (716.144 ms) : 0, 716144 BytebuddyAgent [candidate] (721.564 ms) : 0, 721564 GlobalTracer [baseline] (238.639 ms) : 0, 238639 GlobalTracer [candidate] (239.805 ms) : 0, 239805 AppSec [baseline] (55.521 ms) : 0, 55521 AppSec [candidate] (55.272 ms) : 0, 55272 Remote Config [baseline] (700.984 µs) : 0, 701 Remote Config [candidate] (697.125 µs) : 0, 697 Telemetry [baseline] (9.974 ms) : 0, 9974 Telemetry [candidate] (12.851 ms) : 0, 12851 section iast BytebuddyAgent [baseline] (835.317 ms) : 0, 835317 BytebuddyAgent [candidate] (843.3 ms) : 0, 843300 GlobalTracer [baseline] (229.565 ms) : 0, 229565 GlobalTracer [candidate] (231.016 ms) : 0, 231016 AppSec [baseline] (56.679 ms) : 0, 56679 AppSec [candidate] (57.091 ms) : 0, 57091 Remote Config [baseline] (610.469 µs) : 0, 610 Remote Config [candidate] (620.448 µs) : 0, 620 Telemetry [baseline] (8.668 ms) : 0, 8668 Telemetry [candidate] (8.626 ms) : 0, 8626 IAST [baseline] (22.849 ms) : 0, 22849 IAST [candidate] (22.721 ms) : 0, 22721 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (841.283 ms) : 0, 841283 BytebuddyAgent [candidate] (836.68 ms) : 0, 836680 GlobalTracer [baseline] (230.693 ms) : 0, 230693 GlobalTracer [candidate] (230.004 ms) : 0, 230004 AppSec [baseline] (57.973 ms) : 0, 57973 AppSec [candidate] (57.405 ms) : 0, 57405 Remote Config [baseline] (619.299 µs) : 0, 619 Remote Config [candidate] (607.101 µs) : 0, 607 Telemetry [baseline] (8.906 ms) : 0, 8906 Telemetry [candidate] (8.683 ms) : 0, 8683 IAST [baseline] (23.119 ms) : 0, 23119 IAST [candidate] (22.88 ms) : 0, 22880 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (843.095 ms) : 0, 843095 BytebuddyAgent [candidate] (835.29 ms) : 0, 835290 GlobalTracer [baseline] (231.97 ms) : 0, 231970 GlobalTracer [candidate] (230.945 ms) : 0, 230945 AppSec [baseline] (53.377 ms) : 0, 53377 AppSec [candidate] (56.572 ms) : 0, 56572 Remote Config [baseline] (624.509 µs) : 0, 625 Remote Config [candidate] (622.667 µs) : 0, 623 Telemetry [baseline] (8.676 ms) : 0, 8676 Telemetry [candidate] (8.63 ms) : 0, 8630 IAST [baseline] (26.527 ms) : 0, 26527 IAST [candidate] (23.205 ms) : 0, 23205 LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 17 unstable metrics. Request duration reports for insecure-bankgantt title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section baseline no_agent (386.721 µs) : 366, 407 . : milestone, 387, iast (518.372 µs) : 496, 541 . : milestone, 518, iast_FULL (734.914 µs) : 713, 757 . : milestone, 735, iast_GLOBAL (558.922 µs) : 537, 581 . : milestone, 559, iast_HARDCODED_SECRET_DISABLED (516.824 µs) : 495, 539 . : milestone, 517, iast_INACTIVE (464.428 µs) : 443, 486 . : milestone, 464, iast_TELEMETRY_OFF (500.717 µs) : 479, 523 . : milestone, 501, tracing (463.853 µs) : 442, 486 . : milestone, 464, section candidate no_agent (386.802 µs) : 367, 406 . : milestone, 387, iast (513.684 µs) : 491, 537 . : milestone, 514, iast_FULL (738.247 µs) : 716, 760 . : milestone, 738, iast_GLOBAL (570.869 µs) : 548, 593 . : milestone, 571, iast_HARDCODED_SECRET_DISABLED (519.615 µs) : 498, 541 . : milestone, 520, iast_INACTIVE (462.716 µs) : 442, 484 . : milestone, 463, iast_TELEMETRY_OFF (502.153 µs) : 479, 525 . : milestone, 502, tracing (463.23 µs) : 442, 485 . : milestone, 463,
Request duration reports for petclinicgantt title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section baseline no_agent (1.366 ms) : 1346, 1386 . : milestone, 1366, appsec (1.764 ms) : 1740, 1788 . : milestone, 1764, appsec_no_iast (1.77 ms) : 1746, 1794 . : milestone, 1770, code_origins (1.688 ms) : 1655, 1721 . : milestone, 1688, iast (1.524 ms) : 1499, 1548 . : milestone, 1524, profiling (1.542 ms) : 1516, 1567 . : milestone, 1542, tracing (1.513 ms) : 1489, 1537 . : milestone, 1513, section candidate no_agent (1.367 ms) : 1347, 1387 . : milestone, 1367, appsec (1.768 ms) : 1745, 1792 . : milestone, 1768, appsec_no_iast (1.753 ms) : 1730, 1777 . : milestone, 1753, code_origins (1.685 ms) : 1651, 1719 . : milestone, 1685, iast (1.528 ms) : 1504, 1551 . : milestone, 1528, profiling (1.555 ms) : 1531, 1580 . : milestone, 1555, tracing (1.513 ms) : 1489, 1537 . : milestone, 1513,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section baseline no_agent (15.055 s) : 15055000, 15055000 . : milestone, 15055000, appsec (15.142 s) : 15142000, 15142000 . : milestone, 15142000, iast (19.222 s) : 19222000, 19222000 . : milestone, 19222000, iast_GLOBAL (18.054 s) : 18054000, 18054000 . : milestone, 18054000, profiling (15.535 s) : 15535000, 15535000 . : milestone, 15535000, tracing (15.05 s) : 15050000, 15050000 . : milestone, 15050000, section candidate no_agent (15.408 s) : 15408000, 15408000 . : milestone, 15408000, appsec (15.064 s) : 15064000, 15064000 . : milestone, 15064000, iast (18.581 s) : 18581000, 18581000 . : milestone, 18581000, iast_GLOBAL (18.199 s) : 18199000, 18199000 . : milestone, 18199000, profiling (14.901 s) : 14901000, 14901000 . : milestone, 14901000, tracing (15.051 s) : 15051000, 15051000 . : milestone, 15051000,
Execution time for tomcatgantt title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~a40817f409, baseline=1.47.0-SNAPSHOT~9e4966b4a4 dateFormat X axisFormat %s section baseline no_agent (1.481 ms) : 1469, 1493 . : milestone, 1481, appsec (2.377 ms) : 2333, 2421 . : milestone, 2377, iast (2.125 ms) : 2070, 2179 . : milestone, 2125, iast_GLOBAL (2.172 ms) : 2116, 2228 . : milestone, 2172, profiling (2.003 ms) : 1958, 2047 . : milestone, 2003, tracing (1.958 ms) : 1915, 2000 . : milestone, 1958, section candidate no_agent (1.478 ms) : 1466, 1489 . : milestone, 1478, appsec (2.373 ms) : 2329, 2416 . : milestone, 2373, iast (2.125 ms) : 2070, 2180 . : milestone, 2125, iast_GLOBAL (2.166 ms) : 2110, 2221 . : milestone, 2166, profiling (1.989 ms) : 1945, 2034 . : milestone, 1989, tracing (1.954 ms) : 1912, 1997 . : milestone, 1954,
|
pass { | ||
group = 'com.microsoft.azure.functions' | ||
module = 'azure-functions-java-library' | ||
versions = '[1.2.2,)' |
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 think you're targeting this one and not earlier versions because it's the oldest one targeting Java 8 ?
A round major version as lower bound is pretty standard, but a specific version like this deserves a comment I think.
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.
1.2.2
is the earliest stable version I was able to use. Using 1.2.0
results in an error (see below). Prior to 1.2.0
all versions are beta versions. I added a comment to reflect this in code.
The following artifacts could not be resolved: com.microsoft.maven:java-8-parent:pom:8.0.0-SNAPSHOT (absent)
public String hierarchyMarkerType() { | ||
return null; | ||
} |
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 wonder if the Instrumenter.ForTypeHierarchy
is the most relevant here, given that we return null here 🤔
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.
If we assume that "com.microsoft.azure.functions.annotation.FunctionName"
will be visible for any types using that annotation then I would suggest returning "com.microsoft.azure.functions.annotation.FunctionName"
here.
You can then change hierarchyMatcher
to return
return declaresMethod(isAnnotatedWith(named(hierarchyMarkerType())));
to avoid duplicating the constant 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.
@mcculls When I update hierarchyMarkerType
to return com.microsoft.azure.functions.annotation.FunctionName
the class that should be instrumented appears to be skipped as I'm not seeing any spans created for it.
@Override public String hierarchyMarkerType() { return "com.microsoft.azure.functions.annotation.FunctionName"; }
For context here's an example of the class that should be instrumented. I wonder if it has something to do with how the Azure Function environment is loading classes?
https://github.com/DataDog/dd-trace-java/blob/95d4c18846c516e62cf7807aaa7ec361816c4478/dd-java-agent/instrumentation/azure-functions/src/test/groovy/Function.java
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 could be, in other words it sounds that we cannot assume that "com.microsoft.azure.functions.annotation.FunctionName" will be visible (as in defined as a resource) for any types using that annotation
If that's the case then it's fine to leave hierarchyMarkerType
as null
- just add a comment saying this was intentional because of the class-loading in the Azure Function environment
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.
Sounds good, I added a comment in code for this
if (azureFunctions) { | ||
defaultVersion = "v1"; |
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.
ah ? Why ? Can you add a comment to justify this ?
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.
To be consistent with the instrumentation in other runtimes (node, python) the operation name should be azure.functions.invoke
. I added a comment to reflect this 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.
I don't see any blocker
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
Add azure-functions instrumentation for Http triggers.
Motivation
Automatically generate spans for http requests made to Azure Functions.
Additional Notes
Azure documentation
Testing in a function deployed to Azure
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: SVLS-5920