Notification
A notification is a channel that is used to send alerts when your monitor status changes. By default no notifications are created in your workspace.
Notification Channels:
Section titled “Notification Channels:”Require a Slack incoming webhook
Require an email address
Discord
Section titled “Discord”Require a discord webhook e.g. https://discordapp.com/api/webhooks/123456789012345678/abcdefghijklmnopqrstuvwxyz1234567890
Require a phone number
Webhook
Section titled “Webhook”- URL (require)
- Headers (optional)
Notification Payloads
Section titled “Notification Payloads”Payload for Monitor Recovery
Section titled “Payload for Monitor Recovery”{ "monitor": { "id": 1, "name": "test", "url": "http://openstat.us" }, "cronTimestamp": 1744023705307, "status": "recovered", "statusCode": 200, "latency": 1337}
Fields Explanation:
- monitor: Contains details about the monitor.
- id: Unique identifier for the monitor.
- name: Name of the monitor.
- url: The URL being monitored.
- cronTimestamp: The timestamp when the check was executed, in milliseconds since epoch.
- status: Indicates the current status of the monitor (in this case, “recovered”).
- statusCode: The HTTP status code returned by the monitored service.
- latency: The time taken to complete the check, in milliseconds.
Payload for Monitor Failure
Section titled “Payload for Monitor Failure”{ "monitor": { "id": 1, "name": "test", "url": "http://openstat.us" }, "cronTimestamp": 1744023705307, "status": "error", "errorMessage": "Connection refused"}
Fields Explanation:
- monitor: Contains details about the monitor.
- id: Unique identifier for the monitor.
- name: Name of the monitor.
- url: The URL being monitored.
- cronTimestamp: The timestamp when the check was executed, in milliseconds since epoch.
- status: Indicates the current status of the monitor (in this case, “error”).
- errorMessage: A description of the error encountered during the check.
Zod Schema
Section titled “Zod Schema”import { z } from "zod";
export const PayloadSchema = z.object({ monitor: z.object({ id: z.number(), name: z.string(), url: z.string(), }), cronTimestamp: z.number(), status: z.enum(["degraded", "error", "recovered"]), statusCode: z.number().optional(), latency: z.number().optional(), errorMessage: z.string().optional(),});
OpsGenie
Section titled “OpsGenie”- API key from OpsGenie (required)
PagerDuty
Section titled “PagerDuty”Follow the step in PagerDuty workflow
- Ntfy topic (required)
- Custom server url (optional)
- bearer token (optional)