Skip to content

feat(dashboard): add timing and size columns to network panel#1057

Open
mvanhorn wants to merge 3 commits intovercel-labs:mainfrom
mvanhorn:osc/feat-dashboard-network-timing
Open

feat(dashboard): add timing and size columns to network panel#1057
mvanhorn wants to merge 3 commits intovercel-labs:mainfrom
mvanhorn:osc/feat-dashboard-network-timing

Conversation

@mvanhorn
Copy link
Copy Markdown
Contributor

Summary

Add transfer size and request duration columns to the dashboard's network panel. Each request row now shows encoded size (B/KB/MB) and total duration (ms/s) alongside the existing status, method, URL, and resource type.

Why this matters

The data was already captured by CDP events for HAR recording (HarEntry stores response_body_size, cdp_timing, loading_finished_timestamp) but TrackedRequest - which powers the network requests command and the dashboard - omitted it entirely. Performance debugging in the dashboard required expanding each request individually to check timing. With these columns, slow or oversized requests are visible at a glance.

Related: #111 (response body/network visibility), #935 (added network request <id> detail but not list-level timing).

Changes

Rust CLI (cli/src/native/actions.rs):

  • Add encoded_data_length, duration_ms, and mono_start fields to TrackedRequest
  • Capture monotonic start timestamp from Network.requestWillBeSent
  • Store encodedDataLength from Network.responseReceived in tracked requests
  • Extend Network.loadingFinished handler to fire for request_tracking (not just har_recording), computing duration from monotonic timestamps and updating final transfer size

Dashboard (packages/dashboard/src/components/network-panel.tsx):

  • Add encodedDataLength and durationMs to NetworkRequest interface
  • Add Size and Time columns between URL and resource type
  • Add formatSize() and formatDuration() helpers

Video Demo

Demo

Verification

Built from source and ran the dashboard with live traffic. Network requests now show size and timing data:

Dashboard network panel with timing columns

GET https://httpbin.org/get              | size=1072 B  | duration=261ms
GET https://news.ycombinator.com/        | size=6405 B  | duration=193ms
GET https://news.ycombinator.com/news.css| size=2006 B  | duration=51ms

This contribution was developed with AI assistance (Claude Code).

Expose transfer size and request duration in the dashboard's network
request list. The data was already captured by CDP events for HAR
recording but not surfaced in TrackedRequest. This adds
encodedDataLength and durationMs fields to TrackedRequest, extends the
Network.loadingFinished handler to fire for request_tracking (not just
har_recording), and displays Size and Time columns in the dashboard.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Mar 27, 2026

@mvanhorn is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

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