Skip to content

feat: add full-response ITL and output throughput - #36

Merged
cquil11 merged 2 commits into
mainfrom
cquil11/raw-output-tpot
Aug 5, 2026
Merged

feat: add full-response ITL and output throughput#36
cquil11 merged 2 commits into
mainfrom
cquil11/raw-output-tpot

Conversation

@cquil11

@cquil11 cquil11 commented Aug 5, 2026

Copy link
Copy Markdown

Summary

  • add full_decode_duration, measured from first parsed content through explicit HTTP response completion
  • add full_response_inter_token_latency = full_decode_duration / (OSL - 1)
  • add full_response_output_token_throughput_per_user = 1 / full_response_inter_token_latency
  • export and document both metrics while preserving the existing parsed-content metrics

Why

A structured-output parser can stop emitting content before the engine finishes generation. With server token counting enabled, the existing ITL can then divide a parsed-content duration by the server raw-token count, mixing two different intervals.

The full-response pair keeps the client-observed duration aligned with the server-reported token count. In the motivating AgentX request, 26,571 completion tokens and a 145.861 second request lifecycle produce about 182.82 tokens per second instead of an impossible 326,009 tokens per second.

These are client-observed full-response metrics, not exact engine token timestamps. Aggregate latency and throughput percentiles also retain their normal reciprocal-distribution semantics: 1 / p75(ITL) describes the slow tail, while p75(TPS) describes the fast side.

Validation

  • targeted metric, registry, and JSON exporter tests: 50 passed
  • full metrics/property/exporter suite from the preceding commit: 833 passed
  • uv run pre-commit run --all-files: passed

Follow-up and merge order

  1. This PR
  2. feat(agentx): aggregate full-response ITL and interactivity InferenceX#2504
  3. fix(agentx): use full-response interactivity InferenceX-app#677

Signed-off-by: Cam Quilici <cjquilici@gmail.com>
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Try out this PR

Quick install:

pip install --upgrade --force-reinstall git+https://github.com/ai-dynamo/aiperf.git@8128d08e7cfa31c36254f3c3d8c167488d51dde0

Recommended with virtual environment (using uv):

uv venv --python 3.12 && source .venv/bin/activate
uv pip install --upgrade --force-reinstall git+https://github.com/ai-dynamo/aiperf.git@8128d08e7cfa31c36254f3c3d8c167488d51dde0

Last updated for commit: 8128d08Browse code

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Fern Docs Preview: generation failed — see the Actions log for details. This does not block merge; ask a maintainer to retry if needed.

Signed-off-by: Cam Quilici <cjquilici@gmail.com>
@cquil11 cquil11 changed the title Add full-response output token throughput Add full-response ITL and output throughput Aug 5, 2026
@cquil11 cquil11 changed the title Add full-response ITL and output throughput feat(metrics): add full-response ITL and output throughput Aug 5, 2026
@cquil11 cquil11 changed the title feat(metrics): add full-response ITL and output throughput feat: add full-response ITL and output throughput Aug 5, 2026
@cquil11
cquil11 merged commit c3e0d0a into main Aug 5, 2026
12 of 21 checks passed
cquil11 added a commit that referenced this pull request Aug 6, 2026
Measure decode duration through HTTP response completion and expose aligned full-response inter-token latency and per-user output throughput metrics.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant