Hesklo
Everything Hesklo does

Every check, every escalation, one product.

Hesklo watches your services and runs the escalation you drew. Here is the whole thing, from the checks that find an outage to the steps that get the right person on it.

01 · Monitoring

Four ways to ask "is it up?"

A monitor runs one check type on its own interval, with its own timeout. Each one confirms a real outage before it ever pages anyone.

HTTP
Sites and APIs
Request a URL on an interval. Match an exact status code or accept any 2xx, and optionally require a string in the response body. SSL certificate expiry is tracked on every HTTPS check.
PING
Host reachability
A plain ICMP check for whether a machine answers at all. The simplest way to know a host is alive.
TCP
Open ports
Open a connection to a host and port. Confirms a database, cache or service is accepting connections, without needing a full request.
SSH
Machine health
Connect over SSH and run one of a fixed set of read-only diagnostics: service is active, disk usage, memory usage or load average. You pick the check from a list rather than typing a command, so there is nothing to inject.
02 · Multi-region checks

Checked from three continents, before anyone is paged.

Every monitor runs from several locations across North America, Europe and Asia. A failure seen in one region is re-run from another before it counts as an outage, so a bad network path between one probe and your server never wakes anyone up.

Where your checks run from All regions reporting
North America
2 locations
Europe
2 locations
Asia
2 locations

Confirmed from a second region

When one location sees a check fail, another region re-runs it before the incident opens. A broken route between a single probe and your server never becomes a page on its own.

Reachable from where your users are

A service can be perfectly healthy in its own datacentre and unreachable from another continent. Checking from three of them is how you find that out before a customer tells you.

Response times, region by region

Every check records its own latency against the region it ran from, so slow from Asia and fine from Europe reads as exactly that, rather than averaging into one number that hides it.

On every plan, including Free. Multi-region checking is how monitors run here, not an add-on to switch on.
03 · Escalation canvas

Draw the policy. Skip the config files.

Every monitor has a canvas. Draw from its down port and the flow runs exactly as it reads. Logic modules shape the path, notify modules send the alert. These are all the pieces.

Logic modules

If / else branch

Route the flow on a condition: whether the monitor is up, is down, has been down longer than N minutes, just recovered, has not been acknowledged in N minutes, or has a certificate expiring within N days. True and false paths run different steps.

Condition check

Run a live probe mid-flow (HTTP, ping, TCP or SSH) and take the pass or fail path from the result. A point-in-time test, not a tracked monitor.

Wait

Hold the steps after it until the monitor has been continuously down for a set number of minutes. The building block of tiered escalation.

Repeat alert

While the monitor stays down, fire the steps after it again on an interval. Keep paging until someone acts. Resets automatically on recovery.

Schedule gate

Only let the flow through during set hours and days, in your timezone. Supports overnight windows. Put noise behind it, keep the critical path open.

HTTP action

Call an endpoint to take an action: restart a service, scale a group, trigger a runbook. Fires once per incident, or on every check while down.

Log / annotate

Write a note to the monitor timeline without sending an alert. Useful for marking escalation levels in the incident history.

04 · Integrations

Notify wherever your team already is.

Add a destination once, then reference it from any notify step in any policy. Connect as many as you like.

Slack

Post to a channel via an incoming webhook.

Discord

Post to a channel via a webhook.

Microsoft Teams

Post to a channel via an incoming webhook.

Email

Built in, nothing to set up. Send to your own address or any team member, with an optional Acknowledge link.

SMS

Text a number through your own Twilio account.

PagerDuty

Trigger an incident on the Events API. Resolves itself on recovery.

Jira

Open an issue in a project. Closes on recovery using the same key.

Webhook

POST to any URL with an optional bearer token. Wire up anything.

PagerDuty incidents and Jira tickets open on the way down and resolve themselves on recovery, using the same key.
05 · Status pages

A public page that answers before they ask.

Publish a status page at your own subdomain and choose which monitors appear on it. Anyone can check whether your services are up without opening a ticket.

  • Lives at your-name.status.hesklo.com, with your own page title.
  • Bring your own domain. Point a CNAME at Hesklo and serve the page at status.your-domain.com, with HTTPS handled for you.
  • Turn each monitor on for the page from its own settings. Nothing is public until you say so.
  • Reflects live state from the same checks that drive your alerts.
06 · Team

On call should not rest on one person.

Invite the rest of your team onto the same account, page a named engineer, and move to the next one when nobody picks up.

One shared account

Everyone signs in as themselves and works on the same monitors, connections and history. Nothing is set up twice.

Invite by email

Enter a name and an address. They set a password from the link and are straight in, showing as pending until they do.

Two access levels

Read-only members see everything and change nothing. Full members build like you do. Billing stays with the owner.

Page a named person

Team members become recipients on the Email notify, so a flow can page one engineer and escalate to the next.

Nobody left holding it

An email alert can carry an Acknowledge button. If it goes unclaimed, the flow moves on to the next person.

Remove a member

Access is revoked at once and the seat frees up. Every monitor and all history stays with the account.

Ten seats on Team, twenty-five on Business. The owner keeps billing and the member list.
07 · On-call scheduling

Paint the week. The right person gets paged.

Drag shifts across a repeating week, one engineer at a time. When an email alert set to follow the rota fires, it goes to whoever is on duty right then. No calendars, no rotations to configure.

  • Paint a repeating week. Pick a person like a brush and drag across the grid to fill their hours. Quick fill lays down weekdays, weeknights or the whole week in one click.
  • One person at a time. Only one engineer is on call for any given hour. Painting over someone else's slot hands it over, so the rota is never ambiguous.
  • Reads in your timezone. Set the planner timezone and 09:00 stays 09:00 when the clocks change. Hours are stored against that zone, not a fixed offset.
  • Email follows the rota. Turn on Use the on-call schedule in any Email step and it pages whoever is on duty when it fires, in place of a fixed recipient.
A gap is a fallback, not an error. If nobody is on call when an alert fires, the email goes to its own chosen recipient instead, so a page is never dropped.
Part of Team and Business, alongside team members. Full members can edit the rota, read-only members can view it.
08 · Operations

Tuned so a real outage gets through, and nothing else does.

The quieter controls that keep alerting honest and your history complete.

Confirm before paging

Require several failed checks in a row before a monitor counts as down, so a single blip never wakes anyone.

Flap dampening

A cooldown per notify step. A service bouncing up and down does not turn into a hundred messages.

Fire once or every check

Each notify and action step fires once per incident by default, or on every matching check when you want a steady drumbeat.

Maintenance windows

Pause a monitor during planned work so a known outage pages no one. It keeps its history and resumes exactly as it was, with an optional auto-resume time.

Incident history

Every outage is recorded with its cause and duration. Per-monitor uptime and response-time charts, plus a full event log.

Weekly summary email

An optional Monday recap of how your monitors did the week before. Off by default.

Run a check now

Probe any monitor on demand and see the exact result, without waiting for the next scheduled run.

Light and dark themes

The dashboard runs in dark by default, with a light theme a click away.

See it run on your own services.

Three monitors are free forever. Add a check, draw what happens when it fails, and watch the policy fire.