feat(agent): emit metainfo download time and throughput#596
Merged
Anton-Kalpakchiev merged 2 commits intoApr 16, 2026
Conversation
sambhav-jain-16
approved these changes
Apr 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Before every P2P download in an agent, the agent must first acquire the metainfo of that torrent. That process has shown to sometimes be a massive bottleneck in P2P downloads, as origin must download the whole blob from remote storage (e.g. GCS) in order to calculate its metainfo.
This PR adds client-side metrics (i.e. in agent) to record the latency and throughput of the metainfo request. Metrics are tagged by blob size, just like e2e torrent downloads in agent are.
Before this PR, the metainfo latency was already emitted, but
torrent_size(which is relevant to put the latency into context)Note: we also emit metainfo download latency server-side in tracker, but we cannot rely on that metric, as the tracker has an nginx cache in front of the application code, therefore emitting metrics only on cache misses, which provides a skewed distribution.