feat(llmobs): user processor can add metadata to span #15376
+587
−5
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.
Description
LLMObs allows users to register a processor for LLMObsSpan in order to redact sensitive information being sent to datadog. However, if you wish to store this sensitive information and allow it to be linked from datadog there is no readily available way to do that. URLs in the input/output get redacted by sensitive data scanner (as we want them to) and they probably don't belong there anyway.
This change allows the registered processor to optionally add metadata to the LLMObsSpan. When they do, it is merged into the span's metadata. This eventually is shown in the datadog UI for LLMObs:
Testing
I've added tests to test_llmobs.py and tested the changes locally with our codebase.
Risks
clashing metadata keys with existing/expected ddtrace metadata?
Additional Notes
None