fastmon Docs
Analytics

Server-Timing panel

Fehler melden

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 the content layer = 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), plus count = 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. limit applies to each group, so the block holds at most 2×limit items.

Authentifizierung

bearerAuth
headerAuthentifizierungBearer <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.

Pfad-Parameter

org_id*Org Id
Formatuuid

Request-Body

application/json
  1. body

Request for the Server-Timing dashboard panel.

time_range*

Time range for the query

filters?

Optional filters

limit?Limit

Max custom keys (top_keys block)

Range1 <= value <= 100
Default20

Response-Body

Successful Response

application/json
  1. 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

POST
/organizations/{org_id}/analytics/server-timing
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        }      ]    }  ]}