-
Notifications
You must be signed in to change notification settings - Fork 301
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