X-Timer

Performance debugging on Fastly's CDN relies on the X-Timer unofficial response header, which reports internal timing data as a compact string of event codes and timestamps.

Usage

Fastly adds the X-Timer header to every response passing through its network. The value is a comma-separated string of event codes and timestamps recording how long the request spent inside the CDN.

The header is primarily useful for performance debugging. By comparing the start timestamp with the Varnish End duration, operators and developers see how much time the CDN spent processing a request versus how much time the origin server consumed. A small VE value on a cache hit confirms the response was served from memory. A large VE value on a miss reveals slow origin response times.

Fastly documents the single VS and VE pair alone. An additional VS entry has been observed on some shielded services, with a single VE covering combined processing time, though the pattern does not appear on every multi-tier response.

Values

S (Start)

The S field is a Unix timestamp in seconds, recorded to microsecond precision, marking the moment Fastly first received the request. For example, S1709123456.789012 means the request arrived at Unix time 1709123456.789012.

VS (Varnish Start)

The VS field marks the start of Varnish processing within a cache node. The value is typically 0, indicating processing began immediately after request receipt.

VE (Varnish End)

The VE field is the total time in milliseconds the cache node spent handling the request. On a cache hit, this value is often 0 or a single digit because serving from memory takes less than a millisecond. On a cache miss, the value reflects the round-trip time to the origin server plus any processing overhead.

Example

A straightforward cache hit served from memory. The request arrived at Unix time 1770690977.981692. The VE value of 2 means the edge node spent approximately 2 milliseconds processing the request, confirming the response was served from cache.

X-Timer: S1770690977.981692,VS0,VE2

A cache miss where the origin server responded slowly. The VE value of 409 means the edge node spent 409 milliseconds waiting for the origin server to fulfill the request.

X-Timer: S1770286999.047265,VS0,VE409

On some shielded services an extra VS field has been observed, making the format VS0,VS0,VE<n>. The doubled VS0 is an observed pattern on shielded services and appears to correspond to the shield node start and the edge node start, with a single VE recording total processing time across both layers. Here the combined time for shield and edge was 69 milliseconds.

X-Timer: S1768296487.178015,VS0,VS0,VE69

The X-Timer header works alongside X-Served-By and X-Cache to give a complete picture of CDN behavior. Together, these headers reveal which nodes handled the request, whether the response was cached, and how long each layer took.

X-Served-By: cache-lga21984-LGA, cache-pdx12334-PDX
X-Cache: MISS, HIT
X-Timer: S1768296487.178015,VS0,VS0,VE69

See also

Last updated: August 17, 2026