Charts are for looking; alarms are for being told. This page covers the three tools in Activity → Logs and alerts: Logs, Metrics and Alarms.

Logs

Activity → Logs searches two kinds of line together:
  • Your flows’ logs: what Log blocks wrote, with their level (info, warning, error), tagged with the flow (flow:send-receipt).
  • Access logs: one line per API request, with its level taken from its status (errors for 5xx, warnings for 4xx).
Choose a time range (from the last hour up to 14 days), type text to search for, and read how many lines match. Each line links to the request it belongs to, so you can open its trace.
minutes is 1 to 20,160 (14 days), limit 1 to 1,000. Pass after (an ISO time) to page forward.

Write useful logs

In a flow, add a Log block where something worth knowing happens: a branch taken, a partner’s unusual answer, a skipped record. Include ids, not personal data or secrets. How long logs are kept depends on your plan (Plans and limits).

Metrics

Activity → Metrics charts any metric over time. Choose the metric, a bucket size (how much time each point covers) and a time range, and optionally compare with the previous period to see whether something changed. Counts are measured over a window; Jobs waiting, Workers alive and Secrets due for rotation are read as they are right now.

Alarms

An alarm checks a metric every minute and emails people when it crosses a line, and again when it recovers.
1

Activity → Alarms → New alarm

Give it a Name that says what’s wrong, such as Checkout errors, and a Note that says what to check first.
2

Choose the metric and the line

Pick a Metric, and Alarm when it is above, at or above, below or at or below a threshold.
3

Choose the window

Measured over (minutes): how much recent time the metric covers, 1 to 1,440. Server errors over the last 5 minutes.
4

Choose how sure to be

Checks in a row: how many consecutive minute-checks must cross the line before it fires, 1 to 60. Two or three stops a single blip from waking anyone.
5

Choose who to tell

Email these people: up to 20 addresses. Remind every (minutes): email again while it stays bad, 0 for never, up to a week.
6

Save, then test

Send test emails the recipients the current wording, whatever the state, so you know it arrives.

How an alarm decides

Each minute the alarm measures the metric. If the value crosses the line, it counts one more breach; once the count reaches Checks in a row, the state becomes alarm and recipients get an email headed [ALARM]. As soon as a check is back on the right side, the count resets, the state becomes ok, and recipients get [OK] … has recovered. The very first check going from unknown to ok sends nothing. Every change of state also emits the alarm.state_changed event, so you can send alerts to chat or anywhere else with a subscription or webhook.

Mute, check, history

  • Mute silences an alarm’s emails for a number of minutes (up to 30 days) during planned work. It keeps checking and recording; it just doesn’t email. Muting for 0 minutes un-mutes.
  • Check now evaluates it immediately instead of waiting for the next minute.
  • History lists every change of state with the value that caused it and whether an email went out (or why not: muted, no recipients).
  • Enabled off stops checking altogether.
Alarm emails go through your mail delivery. If delivery isn’t set up or is paused, alarms still change state and emit their event, but nobody is emailed.

From code

Metric names for the API: requests, errors_5xx, errors_4xx, error_rate, latency_avg, latency_p95, jobs_failed, job_failure_rate, jobs_waiting, flow_runs, flow_failures, events, mail_sent, mail_failed, webhook_failures, workers_alive, secrets_due. Comparisons: gt, gte, lt, lte.

Alarms worth having

Tune the numbers to your traffic: a line that’s crossed every day gets ignored.

Good practice

  • Alarm on what users notice, not on every number.
  • Use Checks in a row to avoid noise, and Remind every for alarms that matter at night.
  • Put the first thing to check in the Note.
  • After every incident, add the alarm you wish you’d had.