Skip to content
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 Plugin for @azure/functions #4716

Merged
merged 25 commits into from
Oct 10, 2024

Conversation

duncanpharvey
Copy link
Contributor

@duncanpharvey duncanpharvey commented Sep 23, 2024

What does this PR do?

Adds plugin for @azure/functions package.

Motivation

Create a root span for Azure Function invocations via HTTP requests.

https://datadoghq.atlassian.net/browse/SVLS-4929

Plugin Checklist

No unit tests but there is an integration test. Unit testing is cumbersome due to how Azure Functions can be tested locally. They must be started using the func start Azure Functions Core Tools cli command.

Additional Notes

Copy link

github-actions bot commented Sep 23, 2024

Overall package size

Self size: 7.46 MB
Deduped: 63.23 MB
No deduping: 63.51 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.1.1 | 18.67 MB | 18.68 MB | | @datadog/native-iast-taint-tracking | 3.1.0 | 12.27 MB | 12.28 MB | | @datadog/pprof | 5.3.0 | 9.85 MB | 10.22 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.5.0 | 2.51 MB | 2.59 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 2.0.0 | 898.77 kB | 1.3 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | jsonpath-plus | 9.0.0 | 580.4 kB | 1.03 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | lru-cache | 7.14.0 | 74.95 kB | 74.95 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | int64-buffer | 0.1.10 | 49.18 kB | 49.18 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | path-to-regexp | 0.1.10 | 6.38 kB | 6.38 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

Copy link

codecov bot commented Sep 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 63.16%. Comparing base (bb0bbcc) to head (91a2dd9).
Report is 33 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #4716       +/-   ##
===========================================
- Coverage   91.42%   63.16%   -28.27%     
===========================================
  Files         112       30       -82     
  Lines        3475     1778     -1697     
  Branches       33        0       -33     
===========================================
- Hits         3177     1123     -2054     
- Misses        298      655      +357     
Flag Coverage Δ
?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@pr-commenter
Copy link

pr-commenter bot commented Sep 24, 2024

Benchmarks

Benchmark execution time: 2024-10-10 20:07:40

Comparing candidate commit c3f9565 in PR branch duncan-harvey/azure-functions-integration with baseline commit ce0bdce in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 257 metrics, 9 unstable metrics.

@duncanpharvey duncanpharvey marked this pull request as ready for review September 27, 2024 20:26
@duncanpharvey duncanpharvey requested review from a team as code owners September 27, 2024 20:26
Comment on lines 74 to 78
function extractPath (url) {
const regex = /https?:\/\/[^/]+(\/.*$)/
const match = url.match(regex)
return match ? match[1] : ''
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd recommend using the built-in URL parsers instead of rolling one ourselves:

extractPath('http://www.google.com/asdf?asdf')
// '/asdf?asdf'
url.parse('http://www.google.com/asdf?asdf').path // if search query is needed
// '/asdf?asdf'
(new URL('http://www.google.com/asdf?asdf')).pathname // if search query isn't needed
// '/asdf'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed!

.gitignore Show resolved Hide resolved
index.d.ts Outdated Show resolved Hide resolved
packages/datadog-plugin-azure-functions/src/index.js Outdated Show resolved Hide resolved
@duncanpharvey duncanpharvey force-pushed the duncan-harvey/azure-functions-integration branch from aea5293 to 21c85af Compare October 10, 2024 15:56
@rochdev rochdev merged commit 5a113b2 into master Oct 10, 2024
198 checks passed
@rochdev rochdev deleted the duncan-harvey/azure-functions-integration branch October 10, 2024 21:04
bengl pushed a commit that referenced this pull request Oct 16, 2024
* adds azure functions plugin

* adds azure_functions plugin to API documentation

* add typescript test for azure functions plugin

* adds integration test for azure-functions plugin

* add licenses for added dev packages

* add azure-functions plugin to github workflow

* use pipe for azure-functions integration test child process

* update azure-functions integration test api route

* refactor azure-functions integration test

* add azure func command to path

* remove yarn.lock file from azure-functions integration test

* allow span kind to be server for azure functions

* Update index.d.ts

Co-authored-by: Roch Devost <roch.devost@datadoghq.com>

* add serverless util

* use built in url parser

* remove serverless logic from web util

* remove wait-on dependency

* remove find-process dependency

* Revert "remove find-process dependency"

This reverts commit 3c004c5.

* call func start directly and remove find-process dependency

* simplify serverless util

* Revert "simplify serverless util"

This reverts commit 91a2dd9.

* simplify serverless util

---------

Co-authored-by: Roch Devost <roch.devost@datadoghq.com>
bengl pushed a commit that referenced this pull request Oct 16, 2024
* adds azure functions plugin

* adds azure_functions plugin to API documentation

* add typescript test for azure functions plugin

* adds integration test for azure-functions plugin

* add licenses for added dev packages

* add azure-functions plugin to github workflow

* use pipe for azure-functions integration test child process

* update azure-functions integration test api route

* refactor azure-functions integration test

* add azure func command to path

* remove yarn.lock file from azure-functions integration test

* allow span kind to be server for azure functions

* Update index.d.ts

Co-authored-by: Roch Devost <roch.devost@datadoghq.com>

* add serverless util

* use built in url parser

* remove serverless logic from web util

* remove wait-on dependency

* remove find-process dependency

* Revert "remove find-process dependency"

This reverts commit 3c004c5.

* call func start directly and remove find-process dependency

* simplify serverless util

* Revert "simplify serverless util"

This reverts commit 91a2dd9.

* simplify serverless util

---------

Co-authored-by: Roch Devost <roch.devost@datadoghq.com>
This was referenced Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants