Request Tracing

v1.0.0-CLIApril 1, 2026

See exactly where time is spent in every request. Use -t or --trace to get a detailed breakdown of where time was spent: DNS resolution, TCP connection, TLS handshake, time to first byte (TTFB), and total response time.

How It Works

Every HTTP request goes through multiple phases. tgrs measures each phase individually and displays them as a visual waterfall chart:

tgrs GET https://api.example.com/users -t
  Response Time                                           184.93 ms

  Prepare            █                                       8 µs
  DNS Lookup          ██                                 15.21 ms
  TCP Handshake         ████████                         37.38 ms
  TLS Handshake                 █                            8 µs
  Request Send                   █                          18 µs
  Server Response                 ████████████████████  105.76 ms
  Download                                            █    62 µs
  Processing                                                 6 µs

Timing Phases

PhaseWhat It Measures
PrepareRequest building and serialization
DNS LookupDomain name resolution
TCP HandshakeTCP connection establishment
TLS HandshakeTLS/SSL negotiation
Request SendSending request bytes to server
Server ResponseWaiting for first byte (TTFB)
DownloadReceiving response body
ProcessingDecompression and post-processing

Precision

All timing values are measured with microsecond precision. Short phases display in µs, longer ones in ms or s.

Combine with Verbose

Use trace with verbose mode to see full request/response details alongside timing:

tgrs GET https://api.example.com -t -v