Uptime Monitor

Complete guide to VistoShield Uptime Monitor — HTTP/HTTPS, TCP, DNS, and ping monitoring with incident tracking, response time graphs, and SMS notifications.

Overview

Uptime Monitor continuously checks your WordPress site’s availability from the VistoShield cloud infrastructure. Unlike agent-based monitors that run on your server, cloud-based monitoring detects downtime even when your server is completely unreachable.

The module supports four check types:

  • HTTP/HTTPS — Full HTTP requests with status code validation, keyword verification, and response time tracking.
  • TCP — Socket-based port connectivity checks for any TCP service (SSH, MySQL, Redis, SMTP, etc.).
  • DNS — A record resolution verification to catch DNS propagation issues and hijack attempts.
  • Ping — DNS-based reachability checks to verify your domain resolves correctly.

When downtime is detected (after 2 consecutive failures to prevent false positives), an incident is automatically created and notifications are sent via email, Slack, webhook, and optionally SMS. When the check passes again, the incident is resolved automatically and a recovery notification is sent.

Setup

  1. Navigate to Uptime Monitor — In your VistoShield dashboard, select your site and click Uptime Monitor in the sidebar.
  2. Add your first check — Click Add Check and configure:
    • Check Type — HTTP, HTTPS, TCP, Ping, or DNS
    • Target URL / Host — The URL or hostname to monitor
    • Port — For TCP checks, the port number to connect to
    • Check Interval — How often to check (1 min to 1 hour)
    • Expected Status — For HTTP checks, the expected response code (default: 200)
    • Keyword — Optional text that must appear in the HTTP response body
  3. Run your first check — Click Check Now on the Overview tab to trigger an immediate check of all configured monitors.
  4. Configure notifications — Go to the Settings tab to add SMS providers for phone notifications.

Check Types

HTTP / HTTPS

Sends a full HTTP request to the target URL and validates the response. This is the most comprehensive check type.

ValidationDescription
Status CodeCompares the HTTP response code against the expected value (default: 200)
KeywordOptionally searches for a specific string in the response body (case-insensitive)
Response TimeMarks the check as “degraded” if response time exceeds 5000ms
SSL CertificateVerifies SSL certificate validity (HTTPS only)

Status Results

StatusCondition
UpExpected status code, keyword found (if configured), response < 5000ms
DegradedResponse > 5000ms, or unexpected status code (not 5xx)
DownConnection timeout, 5xx error, keyword not found, or SSL error

TCP Port

Opens a TCP socket connection to the specified host and port. Useful for monitoring non-HTTP services.

Common ports to monitor:

  • 22 — SSH
  • 3306 — MySQL / MariaDB
  • 6379 — Redis
  • 25 / 587 — SMTP
  • 443 — HTTPS

DNS

Queries DNS A records for the specified domain and verifies at least one record resolves. Catches DNS propagation failures and unauthorized changes.

Ping (DNS-based)

Performs a DNS resolution check (A and AAAA records) to verify the domain is resolvable. Note: PHP cannot perform real ICMP ping without root privileges, so this uses DNS resolution as a proxy for reachability.

Incident Management

Incidents are automatically created and resolved based on check results:

Incident Creation

  1. A check returns “down” status
  2. The consecutive failure counter increments
  3. After 2 consecutive failures, an incident is created
  4. Notifications are sent via all configured channels (email, Slack, webhook, SMS)

The 2-failure threshold prevents false alarms from transient network issues or brief server restarts.

Incident Resolution

  1. A check returns “up” status while an incident is ongoing
  2. The incident is automatically marked as “resolved”
  3. Duration is calculated and stored
  4. A recovery notification is sent

Incident Timeline

The Incidents tab shows a chronological timeline of all incidents with:

  • Status (ongoing / resolved)
  • Check type and target
  • Start and resolution time
  • Total duration
  • Root cause (error message from the failed check)

SMS Integration

Uptime Monitor supports Bring Your Own Provider (BYOP) SMS notifications. You configure your own SMS provider credentials, which are encrypted at rest using AES-256-GCM.

Supported Providers

ProviderRequired Credentials
TwilioAccount SID, Auth Token, From Number
Vonage (Nexmo)API Key, API Secret, From Name
Custom WebhookWebhook URL, optional Authorization header

Setting Up SMS

  1. Go to Uptime Monitor → Settings
  2. Click Add Provider
  3. Select your provider type and enter credentials
  4. Add the phone numbers to receive SMS alerts (comma-separated, E.164 format)
  5. Click Test to verify the configuration works

Custom Webhook Format

For custom webhook providers, VistoShield sends a POST request with JSON body:

{
  "to": "+1234567890",
  "message": "VistoShield ALERT: https://mysite.com is DOWN. Connection timed out",
  "source": "vistoshield"
}

Plan Limits

FeatureFreeProMax
Checks per site11050
Min interval5 min1 min1 min
Check typesAll (view only)AllAll
SMS notificationsNoYesYes
History retention3 days14 days30 days

API Reference

All endpoints require JWT authentication. Site-specific endpoints require ownership of the site.

Endpoints

MethodEndpointDescription
GET/api/dashboard/sites/{id}/uptimeOverview with uptime percentages, checks, incidents
GET/api/dashboard/sites/{id}/uptime/checksList all checks for the site
POST/api/dashboard/sites/{id}/uptime/checksCreate a new check
PUT/api/dashboard/sites/{id}/uptime/checks/{checkId}Update a check
DELETE/api/dashboard/sites/{id}/uptime/checks/{checkId}Delete a check and its log
GET/api/dashboard/sites/{id}/uptime/logPaginated check log entries
GET/api/dashboard/sites/{id}/uptime/incidentsList incidents
GET/api/dashboard/sites/{id}/uptime/statsAggregated stats by day
POST/api/dashboard/sites/{id}/uptime/check-nowTrigger manual check (rate limited)

SMS Provider Endpoints (User-Level)

MethodEndpointDescription
GET/api/dashboard/sms-providersList SMS providers
POST/api/dashboard/sms-providersCreate/update provider
DELETE/api/dashboard/sms-providers/{id}Delete provider
POST/api/dashboard/sms-providers/testSend test SMS

Troubleshooting

Check always shows “down”

  • Verify the target URL is correct and accessible from the internet
  • Check if your hosting firewall blocks requests from external IPs
  • For HTTPS checks, ensure your SSL certificate is valid
  • For TCP checks, verify the port is open and the service is running

SMS not sending

  • Use the Test button to verify your provider credentials
  • Ensure phone numbers are in E.164 format (e.g., +1234567890)
  • Check your SMS provider’s dashboard for delivery logs
  • Verify your APP_KEY environment variable is set (required for credential encryption)

Too many false alerts

  • Increase the check interval (e.g., from 1 min to 5 min)
  • Increase the timeout value for slow-responding servers
  • The 2-consecutive-failure threshold already filters most false positives