Operations

Health and metrics

Health

curl --fail http://localhost:8080/health

The health route requires no bearer token. Use Compose health checks and gateway logs to diagnose startup and database connectivity.

Metrics

GET /metrics exposes Prometheus-compatible gateway metrics without auth. The metrics catalog and proxy routes under /v2/metrics provide names and query access; proxy queries require a configured metrics service. The local Compose bundle does not include that service.

curl --fail http://localhost:8080/metrics

Telemetry

The standalone gateway sends anonymous telemetry to https://telemetry.hevlayer.com. It is fire-and-forget, off the request path, and never blocks startup. The local Compose bundle disables it by default.

Disable it with either variable:

LAYER_TELEMETRY=off
DO_NOT_TRACK=1

On Kubernetes, the Helm chart sets LAYER_TELEMETRY=off for you when gateway.telemetry.enabled=false.

The gateway sends two events:

  • gateway_started, once at startup: gateway version, an anonymous instance ID, and the backend kinds it serves (pgvector, turbopuffer or search).
  • gateway_heartbeat, the same fields plus aggregate counts. Feature counters (automatic routing, hybrid/RRF, fuzzy surfacing, facets, scans, federated query, multi-store routing) are cumulative since startup. usage counts successful queries, writes, and rows upserted, patched and deleted since the previous heartbeat. The gateway checks hourly and sends a heartbeat when there is usage to report, or once a day when idle.

A tool that starts the gateway can name itself with LAYER_TELEMETRY_SOURCE (lowercase letters, digits and -, up to 32 characters, for example kit) and LAYER_TELEMETRY_SOURCE_VERSION (up to 32 characters of letters, digits, ., + and -). Both are sent as distribution and distributionVersion; a value outside that shape is not sent.

Telemetry never includes query text, vectors, namespace names, document IDs, bearer tokens, API keys, or document contents. See the generated telemetry reference.

esc