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

[MLOB-1562] feat(llmobs): add openai integration #4840

Merged
merged 11 commits into from
Oct 30, 2024

Conversation

sabrenner
Copy link
Collaborator

@sabrenner sabrenner commented Oct 29, 2024

What does this PR do?

Adds an additional OpenAI plugin, which is an LLM Observability OpenAI plugin. Also establishes the groundwork for the concept of a "base" LLM Obs plugin, which future LLMObs plugins will extend from.

Note: Most LOC are from moving the OpenAI plugin to it's own tracing file, and then resolving it and the LLMObs OpenAI plugin into a single composite plugin. I will highlight on "new" tracing plugin where I made some changes.

Note: I've put the llmobs plugin before the tracing plugin, since its asyncEnd needs to run before the tracing plugin's asyncEnd, because we process LLMObs spans when an APM span finishes, so if the tracing plugin's asyncEnd runs first, then we won't be able to add the proper annotations to our LLMObs span event.

LLM Observability Trace

Screenshot 2024-10-30 at 1 03 19 PM

Motivation

Adding auto-instrumentation for OpenAI for LLM Observability.

Copy link

github-actions bot commented Oct 29, 2024

Overall package size

Self size: 7.86 MB
Deduped: 64.88 MB
No deduping: 65.22 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.2.1 | 19.18 MB | 19.19 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.5.0 | 2.51 MB | 2.65 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.0.1 | 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 | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 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 | | 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

@pr-commenter
Copy link

pr-commenter bot commented Oct 29, 2024

Benchmarks

Benchmark execution time: 2024-10-30 17:06:47

Comparing candidate commit fa050e8 in PR branch sabrenner/openai-llmobs with baseline commit 1c0958e in branch master.

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

@sabrenner sabrenner marked this pull request as ready for review October 30, 2024 12:51
@sabrenner sabrenner requested review from a team as code owners October 30, 2024 12:51
return undefined
}

module.exports = OpenApiPlugin
Copy link
Member

@tlhunter tlhunter Oct 30, 2024

Choose a reason for hiding this comment

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

Does OpenAI still use Open API to build it's API? 😆

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yeah they do 😆

tlhunter
tlhunter previously approved these changes Oct 30, 2024
Yun-Kim
Yun-Kim previously approved these changes Oct 30, 2024
Copy link
Contributor

@Yun-Kim Yun-Kim left a comment

Choose a reason for hiding this comment

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

LGTM for team llm obs, no blocking comments!

packages/dd-trace/src/llmobs/plugins/openai.js Outdated Show resolved Hide resolved
@sabrenner sabrenner merged commit b1a106b into master Oct 30, 2024
206 checks passed
@sabrenner sabrenner deleted the sabrenner/openai-llmobs branch October 30, 2024 17:17
rochdev pushed a commit that referenced this pull request Oct 31, 2024
* implementation

* try making llmobs base plugin a normal plugin

* add codeowners change

* add yarn services to test:llmobs:ci

* try gh action llmobs changes

* Update packages/dd-trace/src/llmobs/plugins/base.js

* proper finish time for openai spans

* move

* revert finish changes

* change llmobsplugin back to tracingplugin type

* rename function for clarity
rochdev pushed a commit that referenced this pull request Oct 31, 2024
* implementation

* try making llmobs base plugin a normal plugin

* add codeowners change

* add yarn services to test:llmobs:ci

* try gh action llmobs changes

* Update packages/dd-trace/src/llmobs/plugins/base.js

* proper finish time for openai spans

* move

* revert finish changes

* change llmobsplugin back to tracingplugin type

* rename function for clarity
rochdev pushed a commit that referenced this pull request Oct 31, 2024
* implementation

* try making llmobs base plugin a normal plugin

* add codeowners change

* add yarn services to test:llmobs:ci

* try gh action llmobs changes

* Update packages/dd-trace/src/llmobs/plugins/base.js

* proper finish time for openai spans

* move

* revert finish changes

* change llmobsplugin back to tracingplugin type

* rename function for clarity
rochdev pushed a commit that referenced this pull request Nov 6, 2024
* implementation

* try making llmobs base plugin a normal plugin

* add codeowners change

* add yarn services to test:llmobs:ci

* try gh action llmobs changes

* Update packages/dd-trace/src/llmobs/plugins/base.js

* proper finish time for openai spans

* move

* revert finish changes

* change llmobsplugin back to tracingplugin type

* rename function for clarity
rochdev pushed a commit that referenced this pull request Nov 6, 2024
* implementation

* try making llmobs base plugin a normal plugin

* add codeowners change

* add yarn services to test:llmobs:ci

* try gh action llmobs changes

* Update packages/dd-trace/src/llmobs/plugins/base.js

* proper finish time for openai spans

* move

* revert finish changes

* change llmobsplugin back to tracingplugin type

* rename function for clarity
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.

3 participants