docs: comprehensive documentation accuracy audit and fixes#645
docs: comprehensive documentation accuracy audit and fixes#645ajcasagrande wants to merge 1 commit intomainfrom
Conversation
Systematic audit of 58 documentation files against the actual codebase, fixing 63 issues across the following categories: Core Documentation: - Fix broken link in README (trace-benchmarking.md → trace_replay.md) - Update architecture.md with GPU Telemetry and Server Metrics Manager services - Fix copyright dates to 2025-2026 CLI & Configuration: - Fix cli_options.md typos and missing constraint annotations - Fix patterns.md missing MessageType import and mock_plugin example - Add missing chat_embeddings endpoint and dataset loaders to plugin-system.md Metrics & Data: - Fix metrics_reference.md ITL requirements and formula corrections - Add missing synthetic video, multi_turn, random_pool to benchmark_datasets.md - Fix tutorial.md output format and artifact path Tutorials: - Fix arrival-patterns.md CLI option names (--output-dir → --artifact-dir) - Fix prefix-synthesis.md output format and MooncakeTrace field docs - Fix rankings.md endpoint path (/v1/rerank → /v2/rerank) - Fix gpu-telemetry.md export file extension (.json → .jsonl) - Fix timeslices.md missing 'std' statistic - Fix benchmark mode tutorials field names and error messages - Fix plot.md default plots and malformed markdown code blocks - Fix sglang-image-generation.md and synthetic-video.md defaults API & Architecture: - Fix synthesis.md RadixTreeStats format and add missing SynthesisParams field - Add missing RNG identifiers to reproducibility.md - Add missing endpoints to genai-perf-feature-comparison.md - Fix metrics-flow.md class names (TotalRequestsMetric → RequestCountMetric) - Fix mixins.md inheritance diagram with missing intermediate classes - Fix CONTRIBUTING.md formatter reference (black → ruff) Code: - Fix timing/config.py Field description for request_rate_ramp_duration_sec Signed-off-by: Anthony Casagrande <acasagrande@nvidia.com>
Try out this PRQuick install: pip install --upgrade --force-reinstall git+https://github.com/ai-dynamo/aiperf.git@84d341e4b98419818e0d1b6d5f116aeb7ced0cb1Recommended 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@84d341e4b98419818e0d1b6d5f116aeb7ced0cb1Last updated for commit: |
WalkthroughThis pull request updates documentation across the project and includes a minor configuration description change. The updates cover architecture documentation for new telemetry managers, tutorial and plugin documentation for new features (dataset loaders, endpoints, arrival patterns), metrics and timing reference updates, and various CLI flag/example corrections throughout tutorials and guidelines. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/tutorials/arrival-patterns.md (1)
112-120:⚠️ Potential issue | 🟡 MinorRemove incorrect constraint on line 361:
--arrival-patterndoes not universally require--request-rate.The
concurrency_burstpattern explicitly requires--request-rateto be omitted. Line 361 states "--arrival-patternrequires--request-rateto be set", which is factually incorrect and contradicts both the tutorial section (lines 112–120) and the code behavior. Update the constraint to clarify thatconcurrency_burstworks without--request-rate, whileconstant,poisson, andgammarequire it.
🤖 Fix all issues with AI agents
In `@docs/tutorials/plot.md`:
- Around line 27-39: The fenced code block under the "**Sample Output
(Successful Run):**" section lacks a language tag; update the opening fence from
``` to ```text (or ```console) so Markdownlint recognizes it as a code/console
block and the example output renders correctly.
In `@docs/tutorials/timeslices.md`:
- Around line 111-112: The docs list of Stats includes "std" but the examples
don't; update the timeslices documentation by either adding "std" values to the
CSV and JSON examples used in the Timeslices tutorial samples (the CSV sample
block and the JSON sample block) so they include a std column/field formatted
like other numeric stats (2 decimal places), or remove "std" from the Stat
description if std is not actually exported—ensure the CSV sample headers and
rows and the JSON sample objects are consistent with the chosen approach.
🧹 Nitpick comments (1)
docs/benchmark_datasets.md (1)
36-40: Verify FFmpeg availability documentation.The Synthetic Video entry correctly notes that FFmpeg is required. However, users may need guidance on:
- How to install FFmpeg
- What happens if FFmpeg is missing (error message, graceful degradation)
- Which video formats are supported without FFmpeg, if any
Consider adding a link to installation instructions or a troubleshooting section for FFmpeg-related issues.
| **Sample Output (Successful Run):** | ||
| ``` | ||
| INFO Loading single-run data from: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/ | ||
| INFO Detected mode: SINGLE_RUN | ||
| INFO Generating 4 time series plots | ||
| INFO Generating 5 time series plots | ||
| INFO Creating plot: ttft_over_time.png | ||
| INFO Creating plot: itl_over_time.png | ||
| INFO Creating plot: latency_over_time.png | ||
| INFO Creating plot: dispersed_throughput_over_time.png | ||
| INFO Successfully generated 4 plots | ||
| INFO Creating plot: ttft_timeline.png | ||
| INFO Creating plot: timeslices_ttft.png | ||
| INFO Creating plot: timeslices_itl.png | ||
| INFO Creating plot: gpu_utilization_and_throughput_over_time.png | ||
| INFO Successfully generated 5 plots | ||
| INFO Plots saved to: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/plots/ | ||
| ``` |
There was a problem hiding this comment.
Add a language to the fenced code block.
Markdownlint flags the sample output block because the fence lacks a language tag. Add text (or console) to the opening fence.
Suggested fix
-```
+```text
INFO Loading single-run data from: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/
INFO Detected mode: SINGLE_RUN
INFO Generating 5 time series plots
INFO Creating plot: ttft_over_time.png
INFO Creating plot: ttft_timeline.png
INFO Creating plot: timeslices_ttft.png
INFO Creating plot: timeslices_itl.png
INFO Creating plot: gpu_utilization_and_throughput_over_time.png
INFO Successfully generated 5 plots
INFO Plots saved to: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/plots/
-```
+```📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **Sample Output (Successful Run):** | |
| ``` | |
| INFO Loading single-run data from: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/ | |
| INFO Detected mode: SINGLE_RUN | |
| INFO Generating 4 time series plots | |
| INFO Generating 5 time series plots | |
| INFO Creating plot: ttft_over_time.png | |
| INFO Creating plot: itl_over_time.png | |
| INFO Creating plot: latency_over_time.png | |
| INFO Creating plot: dispersed_throughput_over_time.png | |
| INFO Successfully generated 4 plots | |
| INFO Creating plot: ttft_timeline.png | |
| INFO Creating plot: timeslices_ttft.png | |
| INFO Creating plot: timeslices_itl.png | |
| INFO Creating plot: gpu_utilization_and_throughput_over_time.png | |
| INFO Successfully generated 5 plots | |
| INFO Plots saved to: artifacts/Qwen_Qwen3-0.6B-chat-concurrency10/plots/ | |
| ``` | |
| **Sample Output (Successful Run):** |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)
[warning] 28-28: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@docs/tutorials/plot.md` around lines 27 - 39, The fenced code block under the
"**Sample Output (Successful Run):**" section lacks a language tag; update the
opening fence from ``` to ```text (or ```console) so Markdownlint recognizes it
as a code/console block and the example output renders correctly.
| - **Stat**: Statistical measure (avg, min, max, p50, p90, p95, p99, std) | ||
| - **Value**: Numeric value formatted to 2 decimal places |
There was a problem hiding this comment.
Documentation inconsistency: std added to description but not shown in examples.
The Stat description now includes std, but the CSV sample (lines 91-105) and JSON sample (lines 121-163) don't include std values. Consider adding std entries to the examples for consistency, or verify whether std is actually exported in timeslice data.
🤖 Prompt for AI Agents
In `@docs/tutorials/timeslices.md` around lines 111 - 112, The docs list of Stats
includes "std" but the examples don't; update the timeslices documentation by
either adding "std" values to the CSV and JSON examples used in the Timeslices
tutorial samples (the CSV sample block and the JSON sample block) so they
include a std column/field formatted like other numeric stats (2 decimal
places), or remove "std" from the Stat description if std is not actually
exported—ensure the CSV sample headers and rows and the JSON sample objects are
consistent with the chosen approach.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
c56ac84 to
84d341e
Compare
debermudez
left a comment
There was a problem hiding this comment.
are you adding the agent file as well?
Summary
Key Fixes
Core Documentation:
CLI & Configuration:
Metrics & Data:
Tutorials (15 files):
API & Architecture:
Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Updates
--request-rate-mode→--arrival-patternand--output-dir→--artifact-dirtext_inputfield instead ofinput_textDocumentation