-
Notifications
You must be signed in to change notification settings - Fork 329
Initial APM side for aws bedrock #4937
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
Conversation
Overall package sizeSelf size: 8.43 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.3.0 | 29.43 MB | 29.43 MB | | @datadog/native-appsec | 8.3.0 | 19.37 MB | 19.38 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 | | 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: 2024-12-24 17:13:49 Comparing candidate commit 6220304 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 776 metrics, 21 unstable metrics. scenario:log-with-error-20
|
Co-authored-by: Sam Brenner <[email protected]>
…yahya/add-bedrock-support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think we're going to want to add DD_BEDROCK_SPAN_CHAR_LIMIT
and DD_BEDROCK_SPAN_PROMPT_COMPLETION_SAMPLE_RATE
to configuration as well, as I likely won't have a refactor for apm llm plugins in time to make this generic for you. we can go over how to do this offline!
…yahya/add-bedrock-support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is really great stuff!! We can do the config changes (I/O character limit and sampling) in a follow-up PR next week once I merge in some shared utilities for the other LLM-based plugins. Left one small nit but can also be left for follow-up cleanup. Great work!
this.temperature = temperature !== undefined ? temperature : undefined | ||
this.topP = topP !== undefined ? topP : undefined | ||
this.maxTokens = maxTokens !== undefined ? maxTokens : undefined |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: i think these checks (and the one on line 85) can just be this.temperature = temperature
, or whatever the name is, as we default it do undefined
anyways. let me know if i'm reading this wrong, though!
* 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]>
* 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]>
* 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]>
What does this PR do?
This PR adds support for AWS Bedrock through the InvokeModel function.
Adds initial instrumentation support for client-bedrock-runtime >=3.422.0, specifically for:
InvokeModel
Motivation
Tracing the Bedrock model invocation calls would help our customers get insights with APM and the LLM Observability product on how they use this service.
Plugin Checklist
Additional Notes