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

v4.56.0 proposal #5139

Closed
wants to merge 47 commits into from
Closed

v4.56.0 proposal #5139

wants to merge 47 commits into from

Conversation

watson
Copy link
Collaborator

@watson watson commented Jan 22, 2025

  • [504b460bbf] - (SEMVER-PATCH) add SSI + K8s to version support matrix (Bryan English) #5088
  • [9c1a2fac84] - (SEMVER-PATCH) Revert "fix aws-sdk invalid signature exception (inject cloned request headers for signed aws-sdk requests #5127)" (Thomas Watson) #5141
  • [51e63506ba] - (SEMVER-PATCH) [DI] Improve internal caching algorithm resource overhead (Thomas Watson) #4864
  • [d9ffb78ec4] - (SEMVER-PATCH) Fix plugins.yml (Igor Unanua) #5121
  • [ae0674c6f7] - (SEMVER-PATCH) [DI] Add more debug logs related to queuing and flushing payloads (Thomas Watson) #5130
  • [313792a63c] - (SEMVER-PATCH) [bench] exit if results.ndjson is empty (Thomas Watson) #5107
  • [1310e3bde6] - (SEMVER-PATCH) �[bench] clean up temp files even in case of error (Thomas Watson) #5106
  • [0d49ecf28c] - (SEMVER-PATCH) [test optimization] Fix ATR + DI issues with jest (Juan Antonio Fernández de Alba) #5136
  • [dcf3c7e444] - (SEMVER-PATCH) [test optimization] Fix vitest latest release (Juan Antonio Fernández de Alba) #5123
  • [34499f3357] - (SEMVER-PATCH) [DI] Ensure probe EMITTING status is sent correctly (Thomas Watson) #5133
  • [307f471db7] - (SEMVER-PATCH) [DI] Fix consistency issue with log messages (Thomas Watson) #5129
  • [06d04734ad] - (SEMVER-PATCH) Ensure yarn.lock matches package.json (Thomas Watson) #5134
  • [4ef12fc323] - (SEMVER-MINOR) fix aws-sdk invalid signature exception (William Conti) #5127
  • [f214673c6e] - (SEMVER-PATCH) use url if provided from DD_TRACE_AGENT_URL (Sam Brenner) #5128
  • [015a722c19] - (SEMVER-PATCH) fix AppSec SDK not triggering twice in a row (simon-id) #5115
  • [3b8a6b9ba2] - (SEMVER-MINOR) Instrument vm for code injection vulnerability (ishabi) #5080
  • [c37f47ba82] - (SEMVER-PATCH) [DI] Align PII redaction tokens with the other tracers (Thomas Watson) #5114
  • [726cfd697d] - (SEMVER-MINOR) Untrusted deserialization vulnerability detection (ishabi) #5062
  • [a77283c06a] - (SEMVER-PATCH) fix startup benchmark (Bryan English) #5120
  • [dd63953388] - (SEMVER-PATCH) upgrade upload-artifact version and fix vitest (Igor Unanua) #5118
  • [803ac98784] - (SEMVER-PATCH) [Test Optimization] Fix DI setup for jest workers (Juan Antonio Fernández de Alba) #5110
  • [26722b3080] - (SEMVER-MINOR) Mark crashes that happen during collecting profiles as profiler_serializing:1 (Attila Szegedi) #5096
  • [6523d94129] - (SEMVER-MINOR) [MLOB-1858] feat(llmobs): langchain submits llmobs span events (Sam Brenner) #4923
  • [95f82a9232] - (SEMVER-PATCH) [bench] Don't force Node.js 18 for npm/yarn install (Thomas Watson) #5103
  • [ff07f4f1d6] - (SEMVER-PATCH) [DI] Add missing PII redaction tokens (Thomas Watson) #5112
  • [b070889576] - (SEMVER-MINOR) Add parallelism information to profiles (Attila Szegedi) #4765
  • [9e36df06dd] - (SEMVER-PATCH) Fix control case for the profiler benchmark (Attila Szegedi) #5108
  • [149742b880] - (SEMVER-MINOR) otel drop in support for baggage (Ida Liu) #5019
  • [708b62716d] - (SEMVER-PATCH) [bench] detect number of CPU cores dynamically (Thomas Watson) #5104
  • [6adf12180d] - (SEMVER-PATCH) [bench] minor code-cleanup in the benchmarking script (Thomas Watson) #5105
  • [71c430729f] - (SEMVER-PATCH) [test optimization] [SDTEST-1355] Fix DI issues with auto test retries (Juan Antonio Fernández de Alba) #5072
  • [af641d60ef] - (SEMVER-PATCH) fix(llmobs): tagger reads propogated mlApp and sessionId from registry tags (Sam Brenner) #5102
  • [435109b97c] - (SEMVER-PATCH) fix(ci): Balance splits across benchmarking CI jobs according to the number of CPU cores (Dmytro Yurchenko) #5099
  • [587957edef] - (SEMVER-PATCH) [DI] Reduce time it takes to run benchmarks (Thomas Watson) #5100
  • [684ead6987] - (SEMVER-PATCH) [DI] Add Sirun benchmark for Dynamic Instrumentation (Thomas Watson) #5004
  • [f76beab3ad] - (SEMVER-PATCH) Use literals for creating BigInts when possible (Thomas Watson) #5093
  • [d73f8cb9df] - (SEMVER-PATCH) [DI] Add a global max snapshot sample rate of 25/second (Thomas Watson) #5081
  • [4886c38585] - (SEMVER-MINOR) Initial APM side for aws bedrock (yahya-mouman) #4937
  • [71fc75fae3] - (SEMVER-PATCH) [DI] Ensure probes without a 'sampling' property is parsed correctly (Thomas Watson) #5090
  • [7e4b054ea7] - (SEMVER-PATCH) DNS Lookup event hostname is sometimes not a string (Attila Szegedi) #5067
  • [858b2a1007] - (SEMVER-PATCH) Remove config telemetry normalization tests (Brian Marks) #5082
  • [6e5d2e8fa6] - (SEMVER-PATCH) [DI] Add namespace to all DI related config options (Thomas Watson) #5077
  • [98e733fb82] - (SEMVER-PATCH) Log when setting priority on a noop span (Igor Unanua) #5086
  • [4b6a83a553] - (SEMVER-PATCH) K8s new scenarios (Roberto Montero) #5024
  • [b36ce05a16] - (SEMVER-MINOR) [DI] Implement PII redaction (Thomas Watson) #5053
  • [e2bee271f3] - (SEMVER-PATCH) Copy config_norm_rules.json from dd-go (Thomas Watson) #5073

watson and others added 30 commits January 22, 2025 13:06
This is needed in order for CI to validate the following upcoming new
config options:

- `dynamicInstrumentationRedactedIdentifiers`
- `dynamicInstrumentationRedactionExcludedIdentifiers`
The algorithm will look for:
- names of variables
- names of object properties
- names of keys in maps

The names will be matched against a disallow-list and if a match is
found, its value will be redacted.

The list is hardcoded and can be found here:

    packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js

It's possible to add names to the list using the following environment
variable:

    DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS

Or it's possible to remove names from the list using the following
environment variable:

    DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS

Each environment variable takes a list of names separated by commas.

Support for redacting instances of specific classes is not included in
this commit.
* K8s new scenarios
This affects all DI related config options, where the `experimental`
namespace is removed and, and a `dynamicInstrumentation` namespace is
introduced.

Changes:

- `experimental.dynamicInstrumentationEnabled` -> `dynamicInstrumentation.enabled`
- `experimental.dynamicInstrumentationRedactedIdentifiers` ->
  `dynamicInstrumentation.redactedIdentifiers`
- `experimental.dynamicInstrumentationRedactionExcludedIdentifiers` ->
  `dynamicInstrumentation.redactionExcludedIdentifiers`
* Initial APM side for aws bedrock

* add extract response tags

* add extract response tags

* remove hook

* Update packages/datadog-plugin-aws-sdk/src/services/bedrockruntime.js

* added example test for invoke amazon

* added example test for invoke amazon

* update test with todos

* update test with todos

* Drop underscore in name

* Update packages/datadog-plugin-aws-sdk/test/bedrock.spec.js

Co-authored-by: Sam Brenner <[email protected]>

* Constants normalization

* Add Mistral AI

* Add aws bedrock rec

* remove file

* added tests with mocked responses

* added jamba support to AI21 lab

* update bedrock version

* Update tests

* remove only

* Update response extractions to only pick up first completion/generation

* Update packages/datadog-plugin-aws-sdk/src/services/bedrockruntime.js

Co-authored-by: Sam Brenner <[email protected]>

* Change from constants to a struct for model provider

* format

* switch case

* Add classes for generations and requestParams

* Make constructors name object based. and stringify prompt if it's not a string

* stringify message if it's not a string

* es lint

* fix bad variable name

* add extra tags

* camelCase and lint

* camelCase and lint

---------

Co-authored-by: Sam Brenner <[email protected]>
Each enhanced log probe has a sample rate of one second. However, too
many individual probes might still overload the system, so a global
snapshot sample rate across all enhanced log probes is required.
…number of CPU cores (#5099)

* Fix how balancing over CPU cores works, so now tasks are split by variants instead of only directories
* Fix bug with taskset trying to assign to non-existing core
* Fix bug with off by 1 error in benchmarks count
* Fail job with exit code 1 if sirun could not start it
* Fail CI job when GROUP_SIZE is larger than number of CPU cores
* llmobs langchain plugin

* starting test changes

* refactor llmobs langchain plugin to use handlers

* wip

* finish adding most tests

* higher timeout ts tests

* add missing tests

* change lowerbound node version for langchain test to 18

* add cohere test for newer versions

* add externals

* add error tests

* more consistent parentage behavior

* review comments
* Upgrade upload-artifact version

* disable integration test for vitest v3 for now

---------

Co-authored-by: Bryan English <[email protected]>
Some dependencies don't work correctly with `require` anymore.
* Untrusted deserialization vulnerability detection

* use node-serialize most used version

* fix sorting sensitive analyzers

* remove DB source
IlyasShabi and others added 14 commits January 22, 2025 13:06
* Instrument vm for code injection vulnerability

* simplify vm constructor instrumentation

* support SourceTextModule class

* add code injection integration test

* instrument SourceTextModule only if it's enabled

* unify channel arguments
Enables tracing header injection on AWS signed requests and fixes problem causing InvalidSignatureException.
Someone forgot to check in updates to yarn.lock the last time
package.json was updated.
Queue the probe EMITTING status before trying to queue the probe
payload.

Before, the EMITTING status was only emitted if the probe payload was
successfully received by the agnet. If the agent didn't return a HTTP
2xx status code, the EMITTING status would never be sent.
* typo

* use range_clean

* use range_clean also for aerospike
env:
PLUGINS: langchain
steps:
- uses: actions/checkout@v4

Choose a reason for hiding this comment

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

🟠 Code Vulnerability

Workflow depends on a GitHub actions pinned by tag (...read more)

View in Datadog  Leave us feedback  Documentation

Copy link

github-actions bot commented Jan 22, 2025

Overall package size

Self size: 8.49 MB
Deduped: 96.69 MB
No deduping: 97.21 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 7.01 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 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 | | ignore | 5.3.1 | 51.46 kB | 51.46 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 | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 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 | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 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 Jan 22, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Please upload report for BASE (v4.x@30437c9). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             v4.x    #5139   +/-   ##
=======================================
  Coverage        ?   98.13%           
=======================================
  Files           ?        1           
  Lines           ?      107           
  Branches        ?        0           
=======================================
  Hits            ?      105           
  Misses          ?        2           
  Partials        ?        0           

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

@pr-commenter
Copy link

pr-commenter bot commented Jan 22, 2025

Benchmarks

Benchmark execution time: 2025-01-22 12:18:59

Comparing candidate commit 6166775 in PR branch v4.56.0-proposal with baseline commit 30437c9 in branch v4.x.

Found 9 performance improvements and 27 performance regressions! Performance is the same for 1004 metrics, 24 unstable metrics.

scenario:appsec-control-16

  • 🟩 cpu_user_time [-26.655ms; -22.321ms] or [-6.512%; -5.453%]
  • 🟩 execution_time [-51.794ms; -33.653ms] or [-10.457%; -6.794%]

scenario:appsec-control-18

  • 🟩 cpu_user_time [-26.451ms; -21.148ms] or [-6.517%; -5.211%]
  • 🟩 execution_time [-49.717ms; -31.923ms] or [-10.053%; -6.455%]

scenario:appsec-control-20

  • 🟩 cpu_user_time [-24.843ms; -20.681ms] or [-6.707%; -5.583%]
  • 🟩 execution_time [-41.109ms; -29.676ms] or [-9.354%; -6.752%]

scenario:appsec-control-22

  • 🟩 cpu_user_time [-21.866ms; -17.552ms] or [-6.501%; -5.218%]
  • 🟩 execution_time [-34.427ms; -22.989ms] or [-8.418%; -5.621%]

scenario:appsec-iast-no-vulnerability-control-16

  • 🟥 cpu_usage_percentage [+8.367%; +10.124%]

scenario:appsec-iast-no-vulnerability-control-18

  • 🟥 cpu_usage_percentage [+7.605%; +9.889%]

scenario:appsec-iast-no-vulnerability-control-20

  • 🟥 cpu_usage_percentage [+5.149%; +7.019%]

scenario:appsec-iast-no-vulnerability-control-22

  • 🟥 cpu_usage_percentage [+7.645%; +8.854%]

scenario:net-control-20

  • 🟩 cpu_user_time [-6.253ms; -3.616ms] or [-9.154%; -5.294%]

scenario:plugin-http-server-control-16

  • 🟥 cpu_user_time [+15.979ms; +23.591ms] or [+6.541%; +9.658%]
  • 🟥 execution_time [+31.479ms; +33.540ms] or [+5.580%; +5.946%]

scenario:plugin-http-server-control-18

  • 🟥 cpu_user_time [+12.022ms; +19.032ms] or [+5.226%; +8.273%]
  • 🟥 execution_time [+30.954ms; +33.189ms] or [+5.764%; +6.181%]

scenario:plugin-http-server-control-20

  • 🟥 cpu_user_time [+10.689ms; +15.029ms] or [+6.766%; +9.512%]

scenario:plugin-http-server-control-22

  • 🟥 cpu_user_time [+10.033ms; +15.503ms] or [+5.562%; +8.595%]
  • 🟥 execution_time [+19.355ms; +21.316ms] or [+5.548%; +6.110%]

scenario:scope-manager-async_hooks-16

  • 🟥 instructions [+23.6M instructions; +32.1M instructions] or [+9.546%; +12.978%]

scenario:scope-manager-async_hooks-18

  • 🟥 instructions [+16.8M instructions; +23.8M instructions] or [+6.851%; +9.690%]

scenario:scope-manager-async_hooks-20

  • 🟥 instructions [+13.3M instructions; +22.2M instructions] or [+6.912%; +11.479%]

scenario:scope-manager-async_hooks-22

  • 🟥 instructions [+13.7M instructions; +22.0M instructions] or [+6.878%; +11.042%]

scenario:scope-manager-async_local_storage-16

  • 🟥 instructions [+22.4M instructions; +31.3M instructions] or [+9.048%; +12.636%]

scenario:scope-manager-async_local_storage-18

  • 🟥 instructions [+16.1M instructions; +23.8M instructions] or [+6.565%; +9.694%]

scenario:scope-manager-async_local_storage-20

  • 🟥 instructions [+13.3M instructions; +21.9M instructions] or [+6.906%; +11.349%]

scenario:scope-manager-async_local_storage-22

  • 🟥 instructions [+14.7M instructions; +23.3M instructions] or [+7.421%; +11.760%]

scenario:scope-manager-async_resource-16

  • 🟥 instructions [+23.3M instructions; +31.3M instructions] or [+9.402%; +12.615%]

scenario:scope-manager-async_resource-18

  • 🟥 instructions [+16.6M instructions; +24.0M instructions] or [+6.779%; +9.764%]

scenario:scope-manager-async_resource-20

  • 🟥 instructions [+12.1M instructions; +20.9M instructions] or [+6.246%; +10.779%]

scenario:scope-manager-async_resource-22

  • 🟥 instructions [+13.7M instructions; +22.2M instructions] or [+6.889%; +11.164%]

scenario:scope-manager-base-16

  • 🟥 instructions [+22.5M instructions; +30.7M instructions] or [+9.070%; +12.360%]

scenario:scope-manager-base-18

  • 🟥 instructions [+17.2M instructions; +24.1M instructions] or [+7.000%; +9.815%]

scenario:scope-manager-base-20

  • 🟥 instructions [+13.6M instructions; +22.5M instructions] or [+7.069%; +11.634%]

scenario:scope-manager-base-22

  • 🟥 instructions [+13.1M instructions; +21.3M instructions] or [+6.569%; +10.712%]

watson and others added 3 commits January 22, 2025 15:30
For easier determination of what's available for install paths for different versions
@watson
Copy link
Collaborator Author

watson commented Jan 22, 2025

Closing as we're dropping support for 4.x now

@watson watson closed this Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.