From 27a0830593ed5c3d419eb88fd6744407ab4a0287 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Sun, 4 Jan 2026 19:10:35 +0800 Subject: [PATCH] Tiny add manual policy benchmark to CI (#16392) --- .github/workflows/pr-benchmark-rust.yml | 107 +++++++----------------- sgl-model-gateway/src/lib.rs | 1 + 2 files changed, 31 insertions(+), 77 deletions(-) diff --git a/.github/workflows/pr-benchmark-rust.yml b/.github/workflows/pr-benchmark-rust.yml index c1c6243cc..483c7954f 100644 --- a/.github/workflows/pr-benchmark-rust.yml +++ b/.github/workflows/pr-benchmark-rust.yml @@ -101,6 +101,13 @@ jobs: sccache_version: "v0.10.0" artifact_name: tree-results artifact_path: criterion/benchmark_summary*/ + - name: Manual Policy + bench_name: manual_policy_benchmark + bench_args: "" + runner: ubuntu-latest + sccache_version: "v0.12.0" + artifact_name: manual-policy-results + artifact_path: criterion/manual_policy*/ runs-on: ${{ matrix.runner }} steps: - name: Checkout code @@ -176,87 +183,33 @@ jobs: - name: Generate summary run: | + generate_section() { + local title="$1" dir_name="$2" lines="${3:-100}" + local dir="benchmark-results/${dir_name}-${{ github.sha }}" + echo "### $title" >> summary.md + if [ -d "$dir" ]; then + echo "✅ **Completed**" >> summary.md + if [ -f "$dir/benchmark_output.txt" ]; then + echo -e "\n
\nView Results\n\n\`\`\`" >> summary.md + tail -"$lines" "$dir/benchmark_output.txt" >> summary.md + echo -e "\`\`\`\n
" >> summary.md + fi + else + echo "❌ Failed or skipped" >> summary.md + fi + echo "" >> summary.md + } + echo "## 🚀 Benchmark Results Summary" > summary.md echo "" >> summary.md - echo "### Request Processing" >> summary.md - REQ_DIR="benchmark-results/request-processing-results-${{ github.sha }}" - if [ -d "$REQ_DIR" ]; then - echo "✅ **Completed**" >> summary.md - if [ -f "$REQ_DIR/benchmark_output.txt" ]; then - echo "" >> summary.md - echo "
" >> summary.md - echo "View Results" >> summary.md - echo "" >> summary.md - echo '```' >> summary.md - grep -A 100 "SGLang Model Gateway\|Quick Performance\|Performance Insights" "$REQ_DIR/benchmark_output.txt" | head -50 >> summary.md || cat "$REQ_DIR/benchmark_output.txt" | tail -60 >> summary.md - echo '```' >> summary.md - echo "
" >> summary.md - fi - else - echo "❌ Failed or skipped" >> summary.md - fi - echo "" >> summary.md + generate_section "Request Processing" "request-processing-results" 60 + generate_section "Tokenizer" "tokenizer-results" 100 + generate_section "Tool Parser" "tool-parser-results" 100 + generate_section "Radix Tree (Cache-Aware Routing)" "tree-results" 50 + generate_section "Manual Policy (Sticky Sessions)" "manual-policy-results" 100 - echo "### Tokenizer" >> summary.md - TOK_DIR="benchmark-results/tokenizer-results-${{ github.sha }}" - if [ -d "$TOK_DIR" ]; then - echo "✅ **Completed**" >> summary.md - if [ -f "$TOK_DIR/benchmark_output.txt" ]; then - echo "" >> summary.md - echo "
" >> summary.md - echo "View Results" >> summary.md - echo "" >> summary.md - echo '```' >> summary.md - grep -A 200 "TOKENIZER BENCHMARK SUMMARY\|ENCODING THROUGHPUT" "$TOK_DIR/benchmark_output.txt" | head -100 >> summary.md || cat "$TOK_DIR/benchmark_output.txt" | tail -100 >> summary.md - echo '```' >> summary.md - echo "
" >> summary.md - fi - else - echo "❌ Failed or skipped" >> summary.md - fi - echo "" >> summary.md - - echo "### Tool Parser" >> summary.md - TOOL_DIR="benchmark-results/tool-parser-results-${{ github.sha }}" - if [ -d "$TOOL_DIR" ]; then - echo "✅ **Completed**" >> summary.md - if [ -f "$TOOL_DIR/benchmark_output.txt" ]; then - echo "" >> summary.md - echo "
" >> summary.md - echo "View Results" >> summary.md - echo "" >> summary.md - echo '```' >> summary.md - grep -A 200 "TOOL PARSER BENCHMARK SUMMARY\|REGISTRY OPERATIONS\|COMPLETE PARSING" "$TOOL_DIR/benchmark_output.txt" | head -100 >> summary.md || cat "$TOOL_DIR/benchmark_output.txt" | tail -100 >> summary.md - echo '```' >> summary.md - echo "
" >> summary.md - fi - else - echo "❌ Failed or skipped" >> summary.md - fi - echo "" >> summary.md - - echo "### Radix Tree (Cache-Aware Routing)" >> summary.md - TREE_DIR="benchmark-results/tree-results-${{ github.sha }}" - if [ -d "$TREE_DIR" ]; then - echo "✅ **Completed**" >> summary.md - if [ -f "$TREE_DIR/benchmark_output.txt" ]; then - echo "" >> summary.md - echo "
" >> summary.md - echo "View Results" >> summary.md - echo "" >> summary.md - echo '```' >> summary.md - grep -A 50 "RADIX TREE BENCHMARK SUMMARY" "$TREE_DIR/benchmark_output.txt" | head -50 >> summary.md || cat "$TREE_DIR/benchmark_output.txt" | tail -50 >> summary.md - echo '```' >> summary.md - echo "
" >> summary.md - fi - else - echo "❌ Failed or skipped" >> summary.md - fi - - echo "" >> summary.md - echo "---" >> summary.md - echo "_Generated at $(date -u '+%Y-%m-%d %H:%M:%S UTC')_" >> summary.md + echo -e "---\n_Generated at $(date -u '+%Y-%m-%d %H:%M:%S UTC')_" >> summary.md cat summary.md cat summary.md >> $GITHUB_STEP_SUMMARY diff --git a/sgl-model-gateway/src/lib.rs b/sgl-model-gateway/src/lib.rs index a4ee2e714..48b89797d 100644 --- a/sgl-model-gateway/src/lib.rs +++ b/sgl-model-gateway/src/lib.rs @@ -19,3 +19,4 @@ pub mod tool_parser; pub mod version; pub mod wasm; pub mod workflow; +// fake change, to be deleted