Uptime checksHTTP, keyword and TLS checks on your addresses, with the evidence of every failure kept.
Cron heartbeatsOne curl line at the end of a job. Silence past the grace window is the alert.
Status pagesA page your customers read, on your own domain, with the incident in plain words.
ExplanationsA written reason with the alert: what failed, what the checks saw, what to look at first.
on every plan Alerts to six channelsImportTeams
APIRead, pause, acknowledge and post updates from your own scripts.
MCP serverAsk your AI assistant what is down, then acknowledge or post an update.
WebhooksSigned JSON when an incident opens, is acknowledged or recovers.
Heartbeat guidescrontab, GitHub Actions, Railway, Node, Go, WordPress and Kubernetes.
DocsShort guides, each one task, with the lines to copy.
GuidesWhy monitors send false alarms, why cron jobs stop, and the fix.
ChangelogThe big things we shipped, newest first.
Trust and securityWhere your data lives, who processes it, how long we keep it.
Referral program soonRecommend Upglory to another team. In the works.
Contact
Docs menu Developers / Our checker

Upglory-Monitor, the checker behind Upglory.

Upglory-Monitor checks the addresses our customers ask us to watch. If it reached your site, a customer saved an address there and asked us to tell them when it stops answering.

3 minute read Reference

What it does

Each monitor is one address. The checker asks for that address, reads the answer, and records whether it came back as the customer expects: the status code, a word on the page, the time it took and the certificate. Then it waits for the monitor's next turn.

It is not a crawler. It never follows a link on a page and never looks for pages of its own, so it does not read robots.txt: it only asks for the address a customer saved. It follows up to 5 redirects, as a browser would, and stops there.

How to recognise it

Every request carries this user agent:

Upglory-Monitor/1.0 (+https://upglory.io/docs/checks)

Every check that reads a page, a GET or a HEAD, is also signed with Web Bot Auth: HTTP Message Signatures (RFC 9421) with an Ed25519 key. Three headers carry the signature. Signature-Agent names upglory.io, Signature-Input says what was signed, when, and with which key, and Signature holds the signature itself. Each signature covers the host it was sent to, is good for one minute and carries a nonce of its own, so a copied one is of no use to anybody else.

A customer can also have a check send a POST, PUT, PATCH, DELETE or OPTIONS request to their own API. Those checks are never signed, on any hop, so the signature only ever vouches for a check that reads.

The public key is published in our key directory, the address a verifier reads it from:

https://upglory.io/.well-known/http-message-signatures-directory

A user agent can be copied; the signature cannot. A rule that trusts the signature is the stronger one.

How often it comes

At most one check per monitor per interval from each location the customer picked. The customer chooses the interval and the locations.

A check that fails is tried once more about 3 seconds later before it counts, so a moment's blip never sends an alert. A connection dropped before its answer is tried once more at once. A customer can also run a test check by hand from the monitor's page.

Where it checks from

Checks run from Frankfurt, Stockholm and Ohio. A monitor checks from the locations its owner picked, one or more of these.

Letting it through

If your firewall or a bot protection service blocks our checks, the customer who watches your site sees a failure that is not real. Allow verified bots, which lets a signed checker through once its key is known, or add a rule that skips the bot checks for requests with the user agent above.

Asking us to stop

To ask us to stop checking an address, write to [email protected] with the address. Support is answered within one working day.

Upglory-RDAP

A second user agent, Upglory-RDAP, links to this page too. It reads a domain's public registration record from the registry that holds it, so a customer knows when the domain expires. It never contacts your site.

Other guides