获取数据新鲜度
How fresh the data behind this API is.
/readyz answers whether this pod can reach its datastore; this answers how
far behind chain head what you are reading is. Two halves, because each is
blind exactly where the other sees:
serving; the projections that turn ingested rows into what the feeds read (activity_feedenrichment,custody_balancessync, the PnL engine). Each carries its own clock, so this is the only half that can see “everything stopped”.lag_secondsis the worst age across them andworstnames which one, so a single stalled projection cannot hide behind two healthy ones.ingestion; one crawl cursor per(contract, event), summarised as the tail, the furthest-behind block, and the worst few cursors BY NAME. Every reading here is relative or positional, so under a total stall it reads green; that is whyservingexists alongside it.
Streams that are dormant by design are dropped from ingestion rather than
reported, because they sit arbitrarily far back forever and would otherwise
fill the list and push the stream you care about off it.
Takes no parameters and is not paginated. Served from a snapshot refreshed
in the background, never computed on the request: computed_at and
age_seconds say how old it is, so a stalled refresher or a datastore
outage shows up as a growing age rather than a 500. Before the first refresh
lands there is nothing to serve and this answers 503; “not measured yet”
and “measured, no lag” are different claims.
授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
响应
Serving and ingestion freshness
{ "data": T }; the envelope for endpoints that don't paginate.
There is no pagination key: an aggregate or bounded list has no next page.
Paginated feeds return a *Page shape ({ data, pagination }) instead.
/v2/status payload.
Served from a snapshot refreshed in the background, never computed on the
request. computed_at/age_seconds make that explicit rather than implicit:
if the refresher wedges or its datastore goes away, the answer keeps being
served with a growing age instead of turning into a 500; the right degraded
mode for the endpoint you call when something is already wrong.