UptimeRobot US Monitoring Setup
Overview
This guide configures UptimeRobot to monitor BuyWhere's API and homepage from US locations with 5-minute check intervals and Slack/email alerting.
UptimeRobot Dashboard
URL: https://uptimerobot.com/dashboard
Step 1: Create Free Account
- Go to https://uptimerobot.com
- Click "Sign Up Free"
- Use email: ops@buywhere.ai
- Verify email and set password
Step 2: Add Monitors
After login, add the following monitors:
Monitor 1: API Health Endpoint (US)
| Field | Value |
|---|---|
| Friendly Name | BuyWhere API - US |
| Type | HTTP(s) |
| URL | https://api.buywhere.ai/health |
| Monitoring Interval | 5 minutes |
| Monitoring Locations | Select only US locations: US East (New York), US West (San Francisco) |
| HTTP Status Codes | 200 |
| Alert Contacts | ops@buywhere.ai, Slack: #alerts |
Monitor 2: Homepage (US)
| Field | Value |
|---|---|
| Friendly Name | BuyWhere Homepage - US |
| Type | HTTP(s) |
| URL | https://buywhere.ai |
| Monitoring Interval | 5 minutes |
| Monitoring Locations | Select only US locations: US East (New York), US West (San Francisco) |
| HTTP Status Codes | 200 |
| Alert Contacts | ops@buywhere.ai, Slack: #alerts |
Step 3: Configure Alerts
Email Alerts
- Add alert contact:
ops@buywhere.ai - Alert when: Monitor goes down, then every 15 minutes until up
Slack Alerts
- In Slack, create incoming webhook for
#alertschannel - In UptimeRobot, go to Settings → Alert Contacts → Add Alert Contact
- Select type: Slack
- Paste webhook URL:
https://hooks.slack.com/services/YOUR/WEBHOOK/URL - Alert format:
{
"channel": "#alerts",
"username": "UptimeRobot",
"icon_emoji": ":warning:",
"attachments": [{
"color": "#ff0000",
"title": ":warning: {{monitor.friendlyName}} is DOWN",
"title_link": "{{monitor.url}}",
"text": "Status: {{monitor.status}\nURL: {{monitor.url}}\nTime: {{monitor.datetime}}",
"fields": [
{"title": "Monitor", "value": "{{monitor.friendlyName}}", "short": true},
{"title": "Status", "value": "{{monitor.status}", "short": true}
]
}]
}
Step 4: Create Status Page
- Go to https://uptimerobot.com/dashboard → Status Pages
- Click "Add Status Page"
- Configure:
| Field | Value |
|---|---|
| Status Page Name | BuyWhere Status |
| Subdomain | status.buywhere.ai (or use UptimeRobot's hosted page) |
| Monitors to include | Select all monitors |
| Sort Monitors | By Status |
- Copy the status page URL for sharing with team
Hosted Status Page URL: https://stats.uptimerobot.com/YOUR_DASHBOARD_ID
Step 5: Update This Document
After setup, update the table below with actual values:
| Monitor | Status Page ID | Monitor ID |
|---|---|---|
| API Health - US | TBD | TBD |
| Homepage - US | TBD | TBD |
Status Page URL: TBD
Configuration Status (BUY-3415)
| Component | Status | Notes |
|---|---|---|
| UptimeRobot monitors | ⚠️ Pending | Script ready at scripts/uptime_robot_setup.py |
| Better Stack monitors | ⚠️ Pending | Alternative to UptimeRobot |
| Prometheus Blackbox | ✅ Active | Monitors api.buywhere.ai, buywhere.ai, us.buywhere.com |
| Alert routing | ✅ Active | PagerDuty + webhooks configured |
| Status page | ⚠️ Pending | Create after monitor setup |
Launch Day Verification Checklist
- UptimeRobot or Better Stack monitors active for api.buywhere.ai and buywhere.ai
- Alert contacts configured (ops@buywhere.ai, PagerDuty, Slack #alerts)
- Status page created and accessible
- Slack webhook integration tested (if using Slack alerts)
- Prometheus Blackbox alerts routing verified
- External monitoring agrees with internal monitoring (no split-brain)
Launch-Day Verification Checklist (BUY-3415)
Confirm all monitors are active before launch:
-
api.buywhere.ai/healthmonitor active (UptimeRobot or Better Stack) -
buywhere.ai(main homepage) monitor active - Alert contacts configured (ops@buywhere.ai, PagerDuty, Slack #alerts)
- Status page created and accessible
- Slack webhook integration tested
- Prometheus Blackbox exporters returning metrics
- Alertmanager receiving alerts from blackbox exporter
Verification
- Verify monitors appear in UptimeRobot dashboard
- Test alert by manually triggering a monitor pause
- Confirm Slack notification received
- Confirm status page is publicly accessible
Existing Internal Monitoring
This UptimeRobot setup complements existing internal monitoring:
- Prometheus/Blackbox: Infrastructure-level monitoring (same datacenter)
- UptimeRobot (this): External US-based monitoring for customer-facing availability
Both should be used together for complete coverage.