← Back to aserva
Service status
This page shows what we can actually observe: live checks run when the page is opened, and service level objectives that restate budgets our code already enforces. We do not publish uptime history we do not keep.
Live checks
Checking live status…
Checks are computed on request against the current deployment. A database failure is reported as an incident because every tenant-facing surface depends on it.
Service level objectives
Each objective restates a budget that already exists in our codebase — a synthetic canary timeout, a delivery retry cap, or the canary schedule itself — with the enforcing source cited. These are disclosed targets, not live measurements.
| Objective | Target | Severity | Enforced by |
|---|---|---|---|
| Widget chat end-to-end latency | ≤ 55,000 ms | critical | scripts/canary-widget-chat.mjs:26 (chatTimeoutMs abort budget); measured end-to-end as totalTimeMs by src/lib/chat/latency-budget.ts:92 |
| Public endpoint synthetic probe latency | ≤ 10,000 ms | critical | scripts/canary-check.mjs:6 (CANARY_TIMEOUT_MS abort budget per public HTTP check) |
| Widget smoke probe latency | ≤ 15,000 ms | warning | scripts/canary-widget-chat.mjs:25 (WIDGET_CANARY_TIMEOUT_MS budget for config/script/site-embed probes) |
| Synthetic canary freshness | ≤ 24 hours | warning | .github/workflows/synthetic-canary.yml:11 (cron "17 6 * * *" — daily at 06:17 UTC) |
| Webhook delivery attempts before dead-letter | ≤ 3 attempts | critical | src/lib/webhook-queue.ts:8 (MAX_RETRIES); dead-letter alert fired via src/lib/observability/alerting.ts:100 |
| Webhook lease recovery after interrupted delivery | ≤ 300,000 ms | warning | src/lib/webhook-queue.ts:10 (WEBHOOK_LEASE_MS); expired leases become re-claimable in src/lib/webhook-queue.ts:149 |
Monitoring cadence
- •Continuous status monitoring runs on the
Synthetic Canaryworkflow schedule (.github/workflows/synthetic-canary.yml): daily at 06:17 UTC, with the live widget-chat canary available on manual dispatch. - •The live panel above reflects the moment you opened this page and refreshes every 60 seconds while it stays open — it is not a continuous record.
- •Historical uptime and incident archives are not published yet; this page will be updated when continuous monitoring lands. Reach us any time via support.