Hanzo
OpenapiEvent

Health reports whether the event plane can take a write and the warehouse can…

Health reports whether the event plane can take a write and the warehouse can answer a read.

GET /v1/event/health

Addresshttps://api.hanzo.ai/v1/event/health
MethodGET
Operationget_event_health
AuthAuthorization: Bearer $HANZO_API_KEY

Health reports whether the event plane can take a write and the warehouse can answer a read.

It reports the analytics subsystem's own liveness in BOTH directions: plane is the event plane it WRITES (the bus and the JetStream stream every accepted event is published to, both named in the report), and datastore is the warehouse it READS, with each read lens's table reported as it is provisioned (the LLM usage ledger and the product-event table).

EITHER ONE DOWN IS A 503, and the report says WHICH — they are probed independently and never collapse into a single bit. This endpoint used to report the read half only, and answered 200/ok while every POST /v1/event failed on a stream that could not bind: a total ingest outage behind a green probe. A readiness gate here now gates on the write path too.

plane.ready IS A REAL PROBE and walks the ingest path itself — the same connection and the same stream a publish uses — so it cannot answer ready while a publish would 503. plane.reason carries the plane's own error text when it is false.

datastore IS NOT PROBED WITH A QUERY. It is the state of the process's own shared client — established, and not since closed — so a warehouse accepting connections and failing reads still reports true. Degraded CARRIES the report (status, the failing half, reason) as its body rather than an error envelope, so a gate reads the cause off the same object it got at 200.

A MISSING LENS TABLE IS NOT A FAILURE and never moves the status: a lens reported available:false answers honest-empty rather than erroring, so a fresh deployment whose collector has not emitted yet is legitimately 200 with the product-event lens unavailable. The lens block is reported whenever the warehouse is REACHABLE — including on a report degraded by the plane, where the tables genuinely were probed — and is absent only when the warehouse is not, having nothing to say about tables it could not reach.

Unauthenticated on purpose — liveness has to be probe-able — and it reads NO tenant data: table existence and stream presence only, never a row and never an event.

Request

GET /v1/event/health takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200healthReportok
503healthReportservice unavailable

200 body — 20 fields.

FieldInTypeAlwaysDescription
datastorebodybooleanDatastore reports whether the shared warehouse client has a live connection.
lensesbodyhealthLenses
lenses.eventsbodyhealthLens
lenses.events.availablebodybooleanAvailable reports whether that table exists in the warehouse right now.
lenses.events.tablebodystringTable is the fully-qualified warehouse table the lens reads.
lenses.llmbodyhealthLens
lenses.llm.availablebodybooleanAvailable reports whether that table exists in the warehouse right now.
lenses.llm.tablebodystringTable is the fully-qualified warehouse table the lens reads.
lostbodyloss
lost.exhaustedbodyintegerExhausted counts facts the bus abandoned after maxDeliver failed inserts.
lost.undecodablebodyintegerUndecodable counts messages acked without landing because they did not parse.
planebodyhealthPlane
plane.busbodystringBus is the address this process reaches the plane at.
plane.readybodybooleanReady reports whether an ingest would succeed right now.
plane.reasonbodystringReason is the plane's own failure text, present only when Ready is false.
plane.streambodystringStream is the JetStream stream every signal lands on.
reasonbodystringReason is the human-readable cause, present only on a degraded report.
servicebodystringService names the subsystem answering, so a probe aggregating several health endpoints can attribute a degraded one.
statusbodystringStatus is ok or degraded. Degraded is the 503 and means EITHER load-bearing dependency is down — the warehouse this subsystem reads, or the event plane it…
warehousebodystringWarehouse names the datastore database every lens reads.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.


Event API · All Hanzo APIs · Interactive reference

How is this guide?

On this page