Server-Timing panel
Server-Timing dashboard panel: five blocks.
cache: cdn / origin cache-status distribution (count per status).cache_age: p50/p75/p95 of the cache age per layer, in SECONDS (the phases are milliseconds), plus thecontentlayer = cdn + origin under a CDN hit, which is the age of what the visitor actually saw.cache_ttl: p50/p75/p95 of the remaining cache lifetime per layer, in SECONDS, cdn and origin only.phases: p50/p75/p95 of the eight backend-phase durations (NULLs skipped), pluscount= pageviews reporting the phase, so a percentile over 12 pageviews is distinguishable from one over 50k.top_keys: custom server-timing keys. Timed keys (server_timing_dur) come first, ranked by p75; categorical keys that only ever carried a desc (server_timing_desc, e.g.pop;desc="DE-1331") follow with p75_ms=None and their top values.limitapplies to each group, so the block holds at most 2×limit items.
bearerAuthAuthentifizierungBearer <token>API token generated from the fastmon dashboard (Account → API Token) or at organization level (fmo_…, one that outlives its creator). Send as Authorization: Bearer fm_... or paste the full token (including its prefix) into the Authorize dialog.
org_id*Org Iduuidapplication/json- body
Request for the Server-Timing dashboard panel.
time_range*Time range for the query
filters?Optional filters
limit?LimitMax custom keys (top_keys block)
1 <= value <= 10020Successful Response
application/json- response
Response for the Server-Timing dashboard panel: five blocks.
meta*Facts about the result
request*The request as the server resolved it
cache*array<>Cache-status distribution
cache_age?array<>Cache-age percentiles per layer, in seconds (migration 072)
cache_ttl?array<>Percentiles of the remaining cache lifetime per layer, in seconds (migration 082). What was left of the object's freshness when it was delivered, so cache age + ttl is the configured lifetime.
phases*array<>Backend-phase percentiles
top_keys*array<>Top custom keys by p75
curl -X POST 'https://api.fastmon.eu/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/analytics/server-timing' \ -H 'Content-Type: application/json' \ -d '{ "time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }}'{ "meta": { "execution_time_ms": 0, "total": 0, "limit": 0, "offset": 0, "has_more": true, "next_cursor": "string", "sampling": { "sampling_rate": 0, "is_sampled": true, "estimated_metrics": [ "string" ] }, "is_identity_mixed": true }, "request": { "time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }, "comparison_time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }, "granularity": "minute", "identity": "stitch", "window_seconds": 0, "filters": {} }, "cache": [ { "layer": "cdn", "cache_status": "string", "count": 0 } ], "cache_age": [ { "layer": "cdn", "count": 0, "p50_s": 0, "p75_s": 0, "p95_s": 0 } ], "cache_ttl": [ { "layer": "cdn", "count": 0, "p50_s": 0, "p75_s": 0, "p95_s": 0 } ], "phases": [ { "phase": "string", "count": 0, "p50_ms": 0, "p75_ms": 0, "p95_ms": 0 } ], "top_keys": [ { "key": "string", "count": 0, "p75_ms": 0, "values": [ { "desc": "string", "count": 0 } ] } ]}