chore(serverless): benchmark on AWS Lambda#4033
Conversation
Overall package sizeSelf size: 6.04 MB Dependency sizes
🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4033 +/- ##
=======================================
Coverage 85.33% 85.33%
=======================================
Files 243 243
Lines 10570 10570
Branches 33 33
=======================================
Hits 9020 9020
Misses 1550 1550 ☔ View full report in Codecov by Sentry. |
…ub.com/datadog/dd-trace-js into jordan.gonzalez/add-serverless-benchmark
BenchmarksBenchmark execution time: 2024-02-14 22:27:22 Comparing candidate commit 5aa9140 in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 257 metrics, 8 unstable metrics. scenario:plugin-graphql-with-depth-on-max-18
|
…ub.com/datadog/dd-trace-js into jordan.gonzalez/add-serverless-benchmark
…ub.com/datadog/dd-trace-js into jordan.gonzalez/add-serverless-benchmark
|
How many runs does it do? Just one or like a dozen? |
@tlhunter for now, it's an average of 5 cold starts, we can increase that number as desired! |
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
* add serverless benchmark trigger * add mock cold start increase * remove lambda overhead mock * decomission old performance github action * remove specific branch * check if job is reported by codesync * check if env vars are reported from downstream * add branch for testing * update `depends` to `dependencies` * change `always` to on_success * echo on arm to see if works * try hack on adding two branches * check if we can query bridges API * update needs to be the right job * add SLS base image * test querying gitlab api * update job to use main branch and clone script to run * update from where we clone the repo * add experimental branch to test error reporting * remove experimental branch to test upstream report failing
What does this PR do?
Adds a trigger for pipelines stored in DataDog/serverless-tools which benchmark cold starts and package size against hard coded values (to be changed to a baseline, currently using data from Serverless dashboards).
The result of this pipeline is expected to BLOCK any PR on this repository when the check is marked as required.
Example trigger

dd-trace-js. (two jobs are needed, since trigger is not reported to GitHub)Downstream pipeline in

serverless-tools.Motivation
Engineers working on this repository might create changes which could:
Serverless teams have diligently lazy-load or notify about package size increase (binaries not removed for certain architectures).
Yet, it is hard to keep up with the amount of changes done daily. This pipeline aims to automate the process.
Additional Notes
serverless-gitlab-tokenRisks
Test might become flaky at some point when small increases surpass the threshold. We are aware of this and will work on increasing the hard coded values whenever we detect that it is utmost necessary.
Security
Datadog employees:
@DataDog/security-design-and-guidance.Unsure? Have a question? Request a review!