I'm curious: when you have a deeply-nested trace of spans (Mastra Workflows, in my case) is there any deduplication done on the inputs and outputs? If you have not-small context in or results out (10s of kb) and they are identical "on the way in" and/or "on the way out", is there anything done to dedup all that data? Also, since Postgres is the persistence layer, are TOASTing our rows when the amount of data is >8kb?
馃挕聽Hint: Mention RunLLM in the thread for followups.
What are the best practices for moderate-volume production use?
you can try deploying a collector that transforms the span, e.g. delete the attribute when the span is not root, or if the span matches a certain name, and the re-export the span.
processors:
transform:
error_mode: ignore
trace_statements:
- context: span
statements:
- delete_key(span.attributes, "input.value")
where IsRootSpan() == falseand yes, large spans will be TOASTed
