Flush the LS tracer, since Close() doesn't seem to. #206
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.
Summary
Flush spans before we close the tracer.
Motivation
Based on my read of the LS tracer code, it doesn't actually flush on close. This means that if you stuff a bunch of spans in really fast and call
Close()
you're dropping things.I based this on this code that calls this code none of which calls
Flush
anywhere.It's my theory that our recent deploy of Veneur to prod has actually broken tracing becuase we're not flushing before close.
While were here, this adds a metric that tracks the duration of each flush so we can see how much we're impacting things.
Test plan
Validating in QA and testing on a single prod apibox, since this is where the problem was manifested.
Rollout/monitoring/revert plan
Merge, make PR for this SHA in puppet-land and test a single box.
r? @stripe/observability