Documentation
Welcome to the UptimeEye documentation. Here you'll find comprehensive guides and documentation to help you start working with UptimeEye as quickly as possible.
Monitors
What are Monitors?
Monitors are the core component of UptimeEye that allow you to check the health and performance of your websites, APIs, and services. Each monitor consists of one or more steps that define what to check and how to validate the results.
Monitor Types
UptimeEye supports the following monitor types:
- HTTP - Monitor HTTP/HTTPS endpoints with customizable requests and response validation
- DNS - Check DNS records and validate their values
- ICMP - Ping servers to check their availability and response time
Creating a Monitor
To create a new monitor:
- Navigate to the Monitors page in your project
- Click the "New Monitor" button
- Enter a name for your monitor
- Select a notification channel to receive alerts
- Configure the monitor options (check interval, timeout, etc.)
- Add one or more monitor steps (see Monitor Steps section)
- Click "Create Monitor" to save your configuration
Monitor Options
When creating or editing a monitor, you can configure the following options:
- Check Interval - How often the monitor should run (30s, 1m, 2m, 3m, 5m, 10m, 30m, 6h, 12h, or 24h). Minimum interval depends on your plan.
- Timeout - How long to wait for a response before considering the check failed (5-60 seconds)
- Follow Redirects - Whether to follow HTTP redirects automatically
- Failure Threshold - Number of consecutive failures before a monitor is marked as down (1-10, default 1)
- Location Threshold - Number of locations that must report failure before triggering an alert (1-10, default 1)
- Locations - Select which geographic regions to run checks from: EU Central (Frankfurt), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo)
Each monitor can have up to 5 steps. You can also import existing requests by pasting a cURL command when configuring an HTTP step.
Monitor Steps
What are Monitor Steps?
Monitor steps define the individual checks that a monitor performs. Each step can have its own configuration, assertions, and variable extractions. Steps are executed in sequence, and variables extracted in one step can be used in subsequent steps.
Step Configuration
When creating a monitor step, you'll go through a 4-step wizard:
- Basics - Define the step name and type (HTTP, DNS, ICMP)
- Details - Configure the request details (URL, method, headers, body)
- Assertions - Add assertions to validate the response
- Variables - Extract variables from the response for use in subsequent steps
Assertions
Assertions allow you to validate the response from your monitored endpoint. Different assertion types are available depending on the monitor type:
HTTP Assertions
- Status Code - Check if the status code is or is not a specific value
- Response Time - Check if the response time is less than a specific value
- Body - Check if the response body contains, does not contain, is, or is not a specific value
- Body JSON Path - Check if a specific JSON path in the response body meets certain criteria
- Header - Check if a specific header contains, does not contain, is, or is not a specific value
- SSL Certificate - Validate SSL certificate properties:
- Issuer - Certificate issuer name
- Subject - Certificate subject name
- Expires In - Days until certificate expiration (e.g., alert if less than 30 days)
- DNS Names - Subject Alternative Names (SANs) on the certificate
DNS Assertions
- DNS Record - Check if a specific DNS record (A, AAAA, MX, etc.) contains, does not contain, is, or is not a specific value
ICMP Assertions
- Response Time - Check if the ping response time is less than a specific value
Global Variables
UptimeEye supports global variables to help you dynamically generate values inside your requests. These can be used in URLs, headers, bodies, or assertions.
Syntax follows the pattern: {{ variable(args) }}
Available global variables:
| Variable | Description | Example |
|---|---|---|
| {{ numeric 12 }} | Generates a numeric string with 12 digits | "482937104581" |
| {{ alphabetic 8 }} | Generates an alphabetic string with 8 letters | "gHvZkPaa" |
| {{ alphanumeric 10 }} | Generates an alphanumeric string with 10 characters | "a93Bz81XkQ" |
| {{ date -2 "YYYY-MM-DD" }} | Generates a date 2 days ago formatted as YYYY-MM-DD | "2025-08-03" |
| {{ timestamp 3 days }} | Generates a timestamp 3 days in the future | "1723124567" |
| {{ uuid }} | Generates a version 4 universally unique identifier | "c9b1c1d3-2f4a-4c29-8e84-829cf320fd4f" |
These dynamic variables are especially useful for load testing, simulating unique users or sessions, and avoiding caching effects.
Example usage in a request body:
{ "email": "user+{{ numeric 5 }}@example.com", "password": "{{ alphanumeric 12 }}"}Variable Extraction
Variables allow you to extract values from the response of one step and use them in subsequent steps. This is useful for scenarios like extracting an authentication token from a login response and using it in subsequent API calls.
You can extract variables from:
- Response Body - Extract the entire response body or a specific JSON path
- Headers - Extract the value of a specific header
- Status Code - Extract the status code as a variable
To use a variable in a subsequent step, use the syntax {{variableName}} in the URL, headers, or body of the step.
Scheduled Tasks
What are Scheduled Tasks?
Scheduled Tasks (also known as cron job monitoring or heartbeat monitoring) let you monitor background jobs, cron jobs, and any recurring processes. UptimeEye uses a dead man's switch approach: your task sends a ping (beat) to UptimeEye at regular intervals. If a beat is missed, UptimeEye alerts you.
Task Types
UptimeEye supports two types of scheduled tasks:
- Simple Task - Define a fixed interval (e.g., every 5 minutes, every 2 hours, every 1 day). Best for tasks that run at regular intervals.
- Cron Task - Use a cron expression (e.g.,
0 9 * * 1-5) with timezone support. Best for tasks with complex schedules.
Creating a Scheduled Task
To create a new scheduled task:
- Navigate to the Scheduled Tasks page in your project
- Click the "New Scheduled Task" button
- Enter a name for your task
- Select a notification channel to receive alerts
- Choose the task type (Simple or Cron)
- Configure the schedule (interval or cron expression with timezone)
- Optionally set a grace period (minutes to wait before marking as down)
- Click "Create Scheduled Task" to save your configuration
Beat API (Integration Endpoints)
After creating a scheduled task, you'll receive a unique task ID. Use this ID to send beats from your application using simple HTTP requests. All endpoints accept GET, POST, and HEAD methods.
| Endpoint | Description |
|---|---|
| /v1/beat/{taskId} | Report a successful execution (default beat) |
| /v1/beat/{taskId}/success | Explicitly report success |
| /v1/beat/{taskId}/fail | Report a failure (triggers alert immediately) |
| /v1/beat/{taskId}/start | Signal that the task has started running |
Example usage with cURL:
# Send a beat after your cron job completes curl -X GET https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID # Report failure if something goes wrong curl -X POST https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID/fail
Grace Period
The grace period defines how many minutes UptimeEye waits after a missed beat before marking the task as down and sending an alert. This is useful for tasks that may occasionally take longer than expected. Set it to 0 for immediate alerting.
Incidents
What are Incidents?
Incidents allow you to track and communicate service disruptions to your team and customers. You can create incidents manually, link them to affected monitors, scheduled tasks, and status pages, and provide updates as the situation progresses.
Incident Statuses
Each incident progresses through a 4-stage lifecycle:
- Investigating - The issue has been detected and is being investigated
- Identified - The root cause has been identified
- Monitoring - A fix has been applied and the situation is being monitored
- Resolved - The incident has been fully resolved
Creating an Incident
To create a new incident:
- Navigate to the Incidents page in your project
- Click the "New Incident" button
- Enter a title and initial status message
- Set the occurrence time (defaults to now, can be set to a past time)
- Select affected monitors and scheduled tasks
- Link relevant status pages so the incident is visible to your users
- Click "Create Incident" to publish it
Incident Updates
As you work through an incident, you can post updates to keep stakeholders informed. Each update includes a status change and a message describing the current state. Updates are displayed chronologically on linked status pages, providing a full timeline of the incident.
Notification Channels
What are Notification Channels?
Notification Channels define how and where UptimeEye sends alerts when monitors or scheduled tasks detect issues. You can create multiple notification channels and assign them to different monitors or tasks.
Available Integrations
UptimeEye supports the following notification integrations:
- Email - Send notifications to one or more email addresses
- Slack - Send notifications to a Slack channel
- Microsoft Teams - Send notifications to a Microsoft Teams channel
- Discord - Send notifications to a Discord channel
- Telegram - Send notifications to a Telegram chat
- PagerDuty - Trigger incidents through PagerDuty's Events API
- Webhook - Send notifications to a custom HTTP endpoint
Configuring PagerDuty
PagerDuty integrates via the Events API. To configure it:
- Create or locate an Events API v2 integration on the relevant PagerDuty service.
- Copy the generated routing key and paste it into the PagerDuty form in UptimeEye.
- Optionally provide an Event Source label (e.g.
production-api) to help identify where incidents originate. - Enable the integration and send a test alert to verify incident creation in PagerDuty.
Creating a Notification Channel
To create a new notification channel:
- Navigate to the Notification Channels page in your project
- Click the "New Notification Channel" button
- Enter a name for your channel
- Click "Create Notification Channel" to save the basic configuration
- On the channel settings page, add one or more integrations
- Configure each integration with the required settings (e.g., email addresses, webhook URLs)
Notification Events
UptimeEye sends notifications for various events, including:
- Monitor status changes (up to down, down to up)
- Scheduled task missed executions
Status Pages
What are Status Pages?
Status Pages allow you to share the status of your services with your users or team members. You can create public status pages for your customers or private status pages for internal use.
Status Page Features
- Organize monitors and scheduled tasks into sections
- Display uptime, response time, and incident history
- Customize which statistics to show for each monitor or task
- Public or private visibility options
- Custom URL slug for easy access
Creating a Status Page
To create a new status page:
- Navigate to the Status Pages page in your project
- Click the "New Status Page" button
- Enter a name and URL slug for your status page
- Choose whether the page should be public or private
- Add one or more sections to organize your monitors and tasks
- For each section, add the relevant monitors and scheduled tasks
- Configure which statistics to display for each item
- Click "Create Status Page" to save your configuration
Accessing Status Pages
Once created, your status page will be available at a URL based on the slug you provided. For public status pages, anyone with the URL can access it. For private status pages, authentication is required.
Secure Variables
What are Secure Variables?
Secure Variables allow you to store sensitive information, such as API keys, passwords, or tokens, securely in UptimeEye. These variables can then be used in your monitors without exposing the actual values in the UI or logs.
Creating Secure Variables
To create a new secure variable:
- Navigate to the Variables page in your project
- Click the "New Variable" button
- Enter a key (name) for your variable
- Enter the value you want to store
- Check the "Secure" checkbox to mark the variable as secure
- Click "Create Variable" to save your configuration
Note: Once a secure variable is created, its value cannot be viewed again, even by administrators. You can update the value if needed, but you cannot retrieve the original value.
Using Secure Variables in Monitors
To use a secure variable in a monitor step, use the syntax {{variableName}} in the URL, headers, or body of the step. UptimeEye will automatically replace this placeholder with the actual value when executing the monitor.
This allows you to use sensitive information in your monitors without exposing it in the UI or logs. For example, you can use secure variables for:
- API keys in request headers
- Passwords in authentication requests
- Tokens in request parameters
- Sensitive data in request bodies