Uptime Monitor¶
The uptime monitor checks the availability of websites from the outside (from the controller) and alerts on outage and recovery. It is installed as an extension via the marketplace.
Two-stage access¶
- Package permission — in the package the admin decides with Allow Uptime Monitor (
perm_uptime_monitor) whether a customer may use it, plus a Monitors limit (max_uptime_monitors). - Per-website activation — the customer has to create and enable the monitor for each website. Only permitted and enabled monitors are probed.
Creating a monitor¶
- Target: customers pick one of their own domains, subdomains or aliases from a list — external hosts are not allowed (abuse / SSRF protection). The server re-checks ownership on every save. Admins may enter any target freely (full URL for HTTP/HTTPS, host for TCP).
- Type: HTTP, HTTPS or TCP (port).
- Keyword (optional): must appear in the response body, otherwise the site is considered DOWN.
- Check interval: 1 to 60 minutes.
Statistics & dashboard¶
Instead of a list of individual checks, the monitor shows a clean graph:
- Status strip — one segment per check (green = up, red = down) for the whole 24-hour history at a glance.
- Response-time chart — response time over time, plus key figures: uptime %, number of checks, average and max response time.
When the package enables the feature, the uptime statistics also appear right on the customer dashboard — with a switcher when several monitors are running.
Flap protection (thresholds)¶
So short blips do not cause an alert storm:
- Failures to DOWN — the monitor is only considered down after N consecutive failed checks (default 3).
- Successes to UP — it is only considered reachable again after N successful checks (default 2).
An alert is sent only on a confirmed state change, never repeatedly during an ongoing outage. The currently active check session is left untouched.
Notifications¶
- Email — to the admin and/or the website owner (in their language).
- Webhook — POST to a URL of your choice in Slack/Discord-compatible JSON.
Limits (honest)¶
If the controller runs on the same server as the website (single server), the monitor detects app-level outages (nginx/PHP/HTTP errors, expired certificate, slow response). A full server outage can only be detected from a different server — that is a later expansion stage.