Repository navigation
feat(observability): add exclusive frontend TTFT breakdown #16483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ssssnow
wants to merge
10
commits into
ai-dynamo:main
Choose a base branch
from
ssssnow:codex/upstream-ttft-breakdown
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 3 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
e8b69e0
feat(observability): add exclusive frontend TTFT breakdown
ssssnow d80ee7b
fix(frontend): address TTFT stage review feedback
ssssnow 55fecad
fix(observability): make TTFT breakdown logs opt-in
ssssnow 3c1f7fc
fix(observability): gate TTFT detail and preserve legacy metrics
ssssnow f9a735d
Merge latest upstream main into TTFT detail branch
ssssnow f69a58e
feat(observability): integrate exclusive TTFT with stage lifecycle
ssssnow c96342b
fix(observability): repair TTFT test builds
ssssnow 1082160
fix(observability): reconcile TTFT instrumentation with latest main
ssssnow 5ea5210
test(observability): isolate TTFT metric compatibility snapshots
ssssnow c1bfccc
fix(observability): integrate latest upstream frontend changes
ssssnow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same request on the Python path. Here
build_tool_call_guided_decodingruns just after thetemplate_tokenizespan and inside the caller'spython_preprocess. So the structural-tag build gets mixed in with the rest of Python preprocessing. Astructural_tag_buildstage around this call would match the Rust one. The same applies tosglang_prepost.pyL987.One catch on the SGLang pool path:
_WorkerPreprocessTiming.start_ttft_stageraisesValueErrorfor anything other thantemplate_tokenize, and the result returns onlytemplate_tokenize_intervals_ns. Wrapping L987 as-is would fail there, so the worker would need to return intervals per stage. The new name also needs adding toTtftStage::from_python.