Monita

Monitors

A monitor checks one thing on a fixed interval: a URL over HTTP, a TCP port, a DNS name, or a host that answers ping.

Create one

  1. In a project, open Monitors and select New monitor. The form opens beside the list.
  2. Enter a Name.
  3. Under Who sees it, pick Only your team or Also the status page. See Who sees it.
  4. Under What it checks, pick HTTP, TCP port, DNS name or Ping.
  5. Fill in the Check section. For HTTP, also fill in Authentication and Headers as you need.
  6. Set what a passing check is under A check passes when.
  7. Set what a failure does under Alerts.
  8. Save. The first check runs at a random moment within the first interval. Monitors added together do not check in the same second.

Select How monitors work at the top of the page for a short guide with examples.

TCP, DNS and ping checks

KindTargetPasses when
TCP porthost:port, such as db.internal:5432, or [2001:db8::1]:443A connection opens within the timeout.
DNS nameA host name, such as api.example.comThe name resolves. If you set The name resolves to, one A or AAAA answer must equal that address.
PingA host name or an address, such as 10.0.0.5The host answers one ICMP echo request within the timeout. The response time is the round trip.

The interval, the timeout, the failure count, the alert level and the status page work as for HTTP. A DNS check asks the resolver of the server that runs Monita, so it sees /etc/hosts and the server's DNS settings. Details shows the same check as a command: nc -vz for a port, getent ahosts for a name and ping -c 1 for a host. DNS record types other than A and AAAA are not checked.

A ping check first uses an ICMP socket that needs no root and no extra capability. macOS always allows it. Linux allows it when the sysctl net.ipv4.ping_group_range covers Monita's group. systemd 243 and later, and Docker, set it to 0 2147483647, which covers every group. Where the system refuses the socket, and always on Windows, Monita runs the system ping command once instead. If that is missing or refused too, the check fails with an error that names the sysctl. Use a TCP check for a host that blocks ICMP.

Certificate warning

An HTTP monitor of an https:// URL can warn before its certificate expires. Under Alerts, set Warn before the certificate expires to 7, 14 or 30 days.

  • Each check reads the expiry date of the server's certificate. Details shows it under Certificate. When the URL redirects to another host, Monita cannot see the first host's certificate and keeps the last date it read; point the monitor at the address that answers.
  • When the date falls inside the window, Monita sends one alert to every alert card that listens to warning. No incident opens.
  • Each certificate warns once. A renewed certificate has a new date, so it warns again when its own time comes.
  • The monitor's alert switch off sends no warning.

A strict check of an expired certificate fails anyway. The warning gives you time before that happens.

Request

These fields are for HTTP checks.

FieldValuesDefault
MethodGET, HEAD, POST or PUTGET
URLAn http:// or https:// addressnone
Request bodyText to send. Only POST and PUT send it. Up to 64 KB.none
Check every30 seconds, 1 minute, 3 minutes or 5 minutes1 minute
Timeout in seconds1 to 3010

Monita follows redirects, unless the expected status names a 3xx. Then the redirect itself is the answer. A monitor with its own headers, or one that signs in with a header, follows a redirect only while it stays on the same server, or moves from http to https on the same host. A redirect to another server fails the check with "Redirected to ..., another server", so the header values never leave for a host you did not name. Point such a monitor at the address that answers.

Authentication

Under Sign in with, pick how the check proves who it is. The secret always comes from Secrets. Monita sends the value with each check and never shows it again.

OptionMonita sends
NoneNothing extra
Bearer tokenAuthorization: Bearer <secret>
User name and passwordHTTP basic sign-in. You type the User name. The Password is a secret.
A key in a headerThe secret in a header you name, for example X-Api-Key

A project with no secret yet shows a link to Settings, Secrets. A secret from another project is refused. If someone deletes the secret later, the check fails with a fixed sentence.

Headers

Add plain headers as a name and a value. Use Add header. The limits are:

  • Up to 20 headers.
  • Up to 4 KB for one value.
  • No Host or Content-Length. Monita sets those.
  • No header that repeats the one Authentication sends.

Put a token under Authentication, not here. A header value is stored as the owner typed it.

A check passes when

SettingValuesDefault
Status codeClasses such as 2xx, codes such as 200, or both: 2xx,3012xx
Response body containsPlain text, matched with the same capitals and spaces anywhere in the first 1 MB of the body. Monita does not read JSON keys: for {"status": "ok"} enter "status": "ok".none
The certificate may be self-signedTick it for internal hostsoff (the certificate must be valid)

A check fails on a timeout, a connection error, a status outside the expected list, or a missing text.

When it fails

SettingMeans
Alert levelTwo cards, Critical and Warning. The alert goes to every alert card of the project that listens to that level (Alerts). Default: warning.
It counts as down afterThe number of failed checks in a row, from 1 to 99. Default: 2.
Send alerts to the people in Alerts settingsOff means Monita sends nothing for this monitor.
Open an incidentOff means no incident and nothing on the status page.

With Open an incident on, the monitor opens an incident after the set number of failed checks. The first passing check closes it and sends a recovery alert. The cause says "on 1 check" or "after N checks".

With Open an incident off, a failure only sends a [DOWN] alert, and recovery sends an [UP] alert. The team's lists show Down. The status page shows nothing. See Alerts.

A tech lead can also open an incident by hand. See Incidents.

Who sees it

Who sees it is a choice of two cards under the name. It starts on Only your team.

CardMeans
Only your teamThe monitor and its incidents stay inside Monita.
Also the status pageVisitors see the monitor, its uptime bars and its incidents on the public status page.

The monitor's incidents reach the status page only when the monitor shows there.

States

StateMeans
UpThe last check passed
DownThe monitor is past its failed-check count
IssueAn open manual incident names it
MaintenanceAn active maintenance window covers it. The page shows a yellow In maintenance stamp under the title, and its list row has yellow stripes. An incident that was open when the window began still shows: the state stays Down until a check passes, and the stamp and the yellow stripes still show the window.
PausedA tech lead paused it
No data yetNo check has run

Pin a monitor

Select the pin at the start of a monitor's row to keep it at the top of the list and on the project's Overview chart, where every pinned monitor gets its own line. Each person pins their own, up to 6 monitors and 6 heartbeats in a project and 6 projects, and the pin on a project's card or row keeps that project first in the project list. Select it again, or Undo in the message, to unpin.

Pause a monitor

Select Pause on the monitor page and confirm. Use it when you take a system out of service and want to keep its history. While a monitor is paused:

  • Monita runs no check on it, from this server or from a location.
  • No incident opens and no alert goes out.
  • The state reads Paused in grey, and the page says Paused since and the time. A grey Paused stamp sits under the title, and its list row has grey stripes.
  • The status page hides it.

Pausing closes the monitor's open automatic incident without a resolved alert. The incident's last update reads "Paused by a tech lead." The count of failed checks in a row starts over. Select Resume and the next check runs at once.

A maintenance window is different. During a window the checks keep running. See Maintenance windows. A failed check in a window counts as held: the table still shows it, but the chart and the availability count it as good, and the chart draws the window as grey stripes.

Pause, resume or delete several

Tick the box at the start of each row you want. The box in the heading ticks every monitor the list shows now. A bar with N selected replaces the count above the list. A supervisor sees no boxes.

ButtonDoes
PauseShows when any picked monitor runs. Asks first, then pauses the picked monitors that run. When some are paused already, it reads Pause N and leaves those as they are.
ResumeShows when any picked monitor is paused. It resumes the paused ones, and reads Resume N when the pick is mixed.
Plan maintenanceOpens the maintenance form with the picked monitors ticked.
DeleteAsks first. It lists the monitors, what goes and what stays. For more than one, type delete N to confirm. Pause instead is in the same dialog.
Clear selectionUnticks every row.

The action covers up to 100 monitors and it all happens or nothing does. The row menu at the end of a row holds Edit, Pause or Resume, Plan maintenance and Delete for that monitor alone. Pause and Resume there offer Undo in the message. Deleting a monitor closes its open incident and sends the resolved alert. A script does the same with a write API key. See API.

The monitor page

Select Refresh to read the latest data. The page also reads itself every 30 seconds.

PartShows
StatsHow long it has been up or down, the last check, the mean response time, incidents in 30 days
ChartMean response time per bucket, failed checks in red, down time in a red band, maintenance windows as grey stripes. Hover to read a bucket: the time, the count, and "Up" or "Down for ...". Hour reads the raw checks, day and week read 15-minute totals, and month reads the daily summary.
AvailabilityToday, the last 7, 30 and 365 days, and all time: percent up, downtime, incidents, the longest and the average
ChecksThe last 7 days, 25 per page, newest first

Raw checks are kept for 7 days. Each day is then kept as one summary row.

Details

Select Details beside Edit for a side panel.

PartShows
RequestWhat it checks, the timeout and the interval. An HTTP monitor also shows the method, sign-in, header names and body size.
Try it yourselfA curl command that sends the same request and prints the status code and time. For a signed-in monitor, its first line sets the secret as a shell variable. You fill in the value.
A check passes whenThe status code, the body text and the certificate rule
When it failsThe failed-check count, what happens then, and the status page rule
SettingsThe next check and the creation time

The panel shows header names and a character count for the body. It never shows header values or secret values. A supervisor sees (hidden) for them.

Limits

A project holds 100 monitors. See Limits.

Edit this page on GitHub