feat: add durable-functions integration#7535
Conversation
Overall package sizeSelf size: 4.97 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.0.0 | 81.15 kB | 815.98 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #7535 +/- ##
==========================================
- Coverage 80.42% 80.33% -0.10%
==========================================
Files 741 743 +2
Lines 32182 32227 +45
==========================================
+ Hits 25883 25890 +7
- Misses 6299 6337 +38
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: de96275 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
|
@codex review |
|
To use Codex here, create a Codex account and connect to github. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 38dad4ce27
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return function (activityName, activityOptions) { | ||
| shimmer.wrap(activityOptions, 'handler', handler => { | ||
| const isAsync = | ||
| handler && handler.constructor && handler.constructor.name === 'AsyncFunction' |
There was a problem hiding this comment.
Handle promise-returning activity handlers as async
The activity wrapper chooses traceSync unless handler.constructor.name === 'AsyncFunction', which misses valid handlers that return a Promise but are not declared with async (for example transpiled async functions or plain functions returning Promise). In that case the span is finished on end before the Promise settles, so latency and rejection errors are not captured for the activity execution.
Useful? React with 👍 / 👎.
BenchmarksBenchmark execution time: 2026-03-13 17:55:41 Comparing candidate commit de96275 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 233 metrics, 27 unstable metrics. |
* azure durable functions * debug logs * debug logs * debug logs * debug logs * add durable-functions hook * add consistent plugin naming * update supported configs * add spans * add entity instrumentation * remove debug logs * tests * tests pt2 * add df plugin interface and fix esm issues * add azure-durable-function to api.md * add ci * remove azurite proc * add envs to ci * remove azurite dep and run yarn * add asserts on span meta data * remove alreadyPatched flag * lint * use asyncStart * update supported conviguration version * use same span name as azure-functions * rename tracing channel * add hasSubscribers guard * typo * move hasSubscribers guard --------- Co-authored-by: Thomas Hunter II <tlhunter@datadog.com>
What does this PR do?
Adds auto instrumentation for azure durable-functions package
Motivation
APMSVLS-332
SVLS-7644
Additional Notes