Metrics
Prometheus /metrics
Section titled “Prometheus /metrics”The status UI serves a Prometheus endpoint at GET /metrics. Suite health is
computed per scrape from SQLite (read-only, never cached), and the endpoint is
exempt from the UI’s basic auth — deployments are expected to gate it at the network
level instead, so the scrape config doesn’t have to carry a credential.
Label cardinality is bounded: one suite label value per suite id (tens at most).
| Metric | Type | Labels | Meaning |
|---|---|---|---|
talaia_db_ready | gauge | — | 1 when the SQLite store exists and opens; 0 on a fresh volume before the first run. |
talaia_suite_up | gauge | suite | 1 when the suite’s most recent run passed, 0 when it failed or errored; absent until a suite has run. |
talaia_suite_last_run_timestamp_seconds | gauge | suite | Unix time the suite last finished (staleness = now minus this). |
talaia_suite_last_duration_seconds | gauge | suite | Wall time of the suite’s most recent run. |
talaia_suite_runs_total | counter | suite, status | Recorded runs per suite and status (passed | failed | error). Cumulative; preserved across retention. Migration seeds it once from available history. |
talaia_suite_last_requests | gauge | suite | Sync-httpx calls and observed browser HTTP(S) requests in the latest measured run, including redirect hops. |
talaia_suite_last_http_seconds | gauge | suite | Summed httpx send/read time and browser request lifetimes. |
talaia_suite_over_budget | gauge | suite | 1 if the latest measured run exceeded its footprint budget, otherwise 0. |
talaia_app_info | gauge | version | Always 1; version is the git SHA of the deployed image (SOURCE_COMMIT baked in at build). Deploys show up as label changes. |
The footprint gauges are absent when the latest run has no measurement. See Footprint and scheduling for limits, warning thresholds and browser traffic limitations. Counter history before the initial migration cannot be reconstructed if it was already purged.
Useful alert shapes:
- A suite is red:
talaia_suite_up == 0 - A suite is stale (scheduler stuck):
time() - talaia_suite_last_run_timestamp_seconds > <2× its schedule interval> - Talaia’s store is missing:
talaia_db_ready == 0for longer than a first-boot grace period.
The scheduler container additionally exposes supercronic’s own Prometheus metrics (per-cron-job execution counters), which double as its liveness signal.
InfluxDB v2 export (optional)
Section titled “InfluxDB v2 export (optional)”Set INFLUX_URL, INFLUX_TOKEN, INFLUX_ORG and INFLUX_BUCKET and every run is
mirrored to InfluxDB v2 over the HTTP write API (line protocol, no client library).
Leave INFLUX_URL empty to disable. Export failures are logged and never crash the
runner — SQLite remains the source of truth; Influx is a mirror for Grafana.
Two measurements are written per run:
smoke_run,suite=<id>with fieldspassed(0/1) andduration_mssmoke_test,suite=<id>,test=<name>with fieldspassed(0/1) andduration_ms, one point per individual test