Debug:Print trace as it is about to be flushed #2290
Merged
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.
When enabling diagnostic logging, we can see all traces that are sent to the writer.
This is very helpful, but does not capture the complete story of a trace.
The trace will be modified by TraceFormatter, which does quiet a bit of work applying tags to the root span: the root span that we see today in diagnostic logs will be much different when actually flushed.
There's also the Processing Pipeline that can modify or drop traces.
This PR adds a debug-level log as late as possible: right before we mush our trace into unintelligible bytes.
The log line looks like this:
I did not remove the existing pre-writer logger because if the trace fails to serialize due to being too large, or is dropped by the Processing Pipeline, we won't get any signals with the log introduced in this PR.
I think we should perform an overhaul in our debug logs: we should be able to enable it and have virtually everything needed to debug any issues we are used to encountering, without asking user to add ad-hoc logging when issues arise.