-
Notifications
You must be signed in to change notification settings - Fork 312
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
chore: add some shared llm-type plugin utilities #5109
Conversation
Overall package sizeSelf size: 8.52 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 | 5.16 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 |
BenchmarksBenchmark execution time: 2025-01-23 14:06:15 Comparing candidate commit 1e6665c in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 907 metrics, 25 unstable metrics. scenario:plugin-graphql-with-depth-and-collapse-on-18
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5109 +/- ##
===========================================
+ Coverage 61.24% 75.66% +14.41%
===========================================
Files 289 292 +3
Lines 13586 13685 +99
===========================================
+ Hits 8321 10355 +2034
+ Misses 5265 3330 -1935 ☔ View full report in Codecov by Sentry. |
…r/llm-plugin-utils
* wip utilities * fixes * add tests * update comment * update * add math.random stubs to test hooks * fix
* wip utilities * fixes * add tests * update comment * update * add math.random stubs to test hooks * fix
What does this PR do?
Adds utilities for llm-based APM tracing plugins for span tags: truncation/normalization and prompt/completion sample rate.
Note that for
openai
, we changed the name of one config to better respect the namespacing of each config. Additionally, we are not adding the prompt/completion sample rate foropenai
in this PR - if needed, it can be done in a separate PR.Aside: I considered making an
LlmPlugin
type extendingTracingPlugin
that would just have these methods on their prototype and read from the tracer config in the constructor, but this won't work well for AWS bedrock (which is already a base AWS plugin type), which we'll be updating after this PR lands. It additionally also would've been weird for LangChain (as the handlers are a property of the plugin and not an extension, so the functionality would've had to have been passed as a constructor arg).Motivation
We'll be adding more APM integrations for llm-based libraries, and they'll need these helpers to reduce code duplication.