chore(llmobs): automatically set span links with decorators #12255
+187
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Re-opening #12043 due to conflicts with main after 3.x-staging was merged in
Decorators set span links by tracking common objects passed as inputs & outputs of functions.
This functionality will be gated behind the environment variable
_DD_LLMOBS_AUTO_SPAN_LINKING_ENABLED
We maintain a dictionary in the LLMObs service that remembers which objects are used as the input/output for a spans generated by LLM Obs decorators. This is how we record the from direction of span links.
When objects are encountered again as the input/output for another span, we now know to set the to direction for a span link.
In my opinion, this does not need to be gated behind a feature flag since it's a read-only on app data. A follow up PR will mutate data actually used in the user app for enhanced span link inferencing, and the features introduced then should be gated by a flag.
Implementation notes:
Limitations:
Checklist
Reviewer Checklist