Updating end of interval Flex metrics publishing #10210
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.
Currently, we only calculate and emit activity metrics during periods of function inactivity. This works well when relatively short lived invocations start stop often during metering windows. However, this doesn't work well in cases where functions are long running (e.g. longer than the default 5ms metering interval), or when invocations are very frequent such that they overlap and there's rarely a period of inactivity. In such cases, we can go many metering intervals without emitting metrics, continuing to accumulate in memory. Eventually the correct duration will be emitted, but it's all shoved into a single interval. In addition to making metrics reporting spiky, this also makes it more likely that metrics may be lost, e.g. if the process dies abruptly.
Instead, we want to ensure that during any interval, we calculate and emit metrics for any outstanding activity in that interval. In this way, even if there are no idle periods, metrics are progressively emitted.
Pull request checklist
IMPORTANT: Currently, changes must be backported to the
in-proc
branch to be included in Core Tools and non-Flex deployments.in-proc
branch is not requiredrelease_notes.md
Additional information
Additional PR information