Use existing timestamp for request finish in measuring latency metrics #364
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.
Changes in 2.4.2 to how throttling is handled in kinesis would lead to misreporting metrics in cases where we're reporting batches.
Because we take a timestamp for when we provide the WriteResult object, if we have a batch with 499 events succeed within 10ms, but one gets throttled and takes 1s before a retry is successful, then 499 events will report 1+s latency where they should report 10ms.
However we already record a timestamp fro when a request finished - this PR changes the metrics to compute latency based on that timestamp instead.
This will likely make little to no difference to our metrics in prod because we usually don't batch the data - but that will change, so it's worth fixing now regardless.