# Uptime monitoring

> Monitor uptime with HTTP, keyword, TCP and DNS checks from four probe locations, plus SSL certificate and domain expiry, incident history and downtime alerts.

## Checks

Create checks from a site's **Uptime** page or across the workspace.

| Type | Checks that |
|---|---|
| **HTTP(S)** | A URL answers with the expected status code (`GET` or `HEAD`) |
| **Keyword** | A URL's response contains a keyword |
| **TCP** | A port accepts connections |
| **DNS** | A hostname resolves |

For each check choose the **interval**, a **timeout** and the **probe
locations**: US East, US West, EU Central and EU West.

| Plan | Checks | Fastest interval |
|---|---|---|
| Free | 3 | 5 minutes |
| Pro | 20 | 1 minute |
| Business | 100 | 30 seconds |

## When is a check down?

A check is **down** only when **most of its locations fail**, and a
confirmation re-check 30 seconds later fails too. One flaky location
never pages you. An incident opens when a check goes down and closes when
it recovers.

## Check detail

- Response time per location.
- Incident timeline: start, end, duration, which locations failed and the
  error.
- For HTTPS: the **SSL certificate** issuer and expiry date. For the
  domain: its **registration expiry** (from RDAP).
- 24-hour, 7-day and 30-day uptime and average response time.

Uptime % is the share of check intervals that were up.

## Alerts

Create **Uptime down/recovered** and **SSL or domain expiring in N days**
[alerts](/docs/reports/alerts), delivered by email, Slack, Teams, Discord,
webhooks, or PagerDuty and Opsgenie on Business. When a check linked to a
site goes down, the incident also appears as a [note](/docs/dashboard/notes)
on that site's charts.

## Allowing our probes

Probes identify themselves with this User-Agent:

```text
PrivatusUptime/1.0 (+https://privatusanalytics.com/docs/uptime)
```

The probe locations and their IP ranges are published as JSON at
[`/uptime/probes.json`](/uptime/probes.json), for firewall allowlists.
Uptime checks don't count toward event usage.

## Status pages

Show checks on a public [status page](/docs/features/status-pages).
