TotalApp Docs

Health Monitor

Track uptime and response times for your services and endpoints.

Overview

Health Monitor performs periodic HTTP/HTTPS checks against your services and endpoints, recording uptime and response time over time. Add any publicly or privately reachable URL, configure the check interval and success criteria, and the monitor builds a history of up/down events and response time trends. When an endpoint goes down, a notification fires through TotalApp's in-app notification system.

Configurable Intervals

Check every 1, 2, 5, 10, 15, 30, or 60 minutes. Shorter intervals catch outages faster but increase request volume on your endpoints.

Response Time Chart

A line chart shows average response time per check interval over the last 24 hours, 7 days, or 30 days. Spikes are immediately visible.

Uptime Timeline

A colour-coded timeline bar shows each check as a green (up) or red (down) segment. Hover a segment to see the exact timestamp and HTTP status code.

Downtime Alerts

When a check fails, TotalApp fires an in-app notification with the endpoint name, error reason, and time of failure. Alert delivery requires in-app notifications to be enabled in Settings.

Adding an Endpoint

  1. Click + Add Endpoint.
  2. Enter the URL (must start with https:// or http://).
  3. Give the endpoint a Name for display in the dashboard (e.g. "Production API", "Staging Frontend").
  4. Select the Check Interval.
  5. Configure Success Criteria (see Check Configuration section).
  6. Optionally add an Alert delay — the number of consecutive failed checks before an alert fires (default 2, to avoid alerts from transient single-check failures).
  7. Click Save. The first check runs within the next interval period.

Dedicated Health Endpoints

For best results, add a dedicated /health or /status endpoint to your service that returns a lightweight JSON response (e.g. {"status":"ok"}). Checking a heavy page like the homepage adds latency and puts unnecessary load on your server.

Check Configuration

Success criteria determine when a check is counted as "up" versus "down".

CriterionDefaultDescription
HTTP Status Code200–299Any 2xx response is considered success. Override to check for a specific code (e.g. 200 only, or allow 301).
Timeout10 secondsIf the endpoint does not respond within this time, the check is counted as down (timeout error). Range: 1–30 seconds.
Response Body ContainsNot setOptional string that must appear in the response body for the check to succeed. Useful for detecting maintenance pages that return 200 with "down for maintenance" in the body.
TLS Certificate ValidEnabledWhen enabled, the check fails if the TLS certificate is expired, self-signed, or the hostname does not match. Disable for self-signed internal certificates.
Follow RedirectsEnabledWhen enabled, 3xx redirects are followed and the final response code is evaluated. When disabled, a redirect is treated as the response (e.g. a 301 would need to be in the allowed status codes).

Status History

Click an endpoint card in the dashboard to open its detail view. The detail view shows:

  • Current Status badge — Up (green) or Down (red) with time since last status change.
  • Uptime Percentage — calculated over the last 7 days, 30 days, and 90 days.
  • Uptime Timeline — colour-coded bar of individual check results. Click any segment to see the HTTP status code, response time, and any error message for that check.
  • Response Time Chart — line chart with average, p95, and p99 response times per period.
  • Incident Log — a table of all down events with start time, end time, duration, and the HTTP status code or error type that triggered the incident.

Alerts

Alerts fire when an endpoint transitions from Up to Down state (after the configured consecutive failure count). A recovery alert fires when the endpoint returns to Up state.

Alert Channels

  • In-app notification — always enabled when in-app notifications are on in Settings → Notifications.
  • Email — configure an SMTP server in Settings → Integrations to receive email alerts at one or more addresses per endpoint.
  • Webhook — enter a webhook URL to receive a POST request with a JSON payload on each down and recovery event. Compatible with Slack incoming webhooks, PagerDuty, and any custom HTTP handler.

Reduce Alert Noise

Set the Alert delay to 2 or 3 consecutive failures before alerting. This prevents spurious alerts from single transient check failures (e.g. a brief network hiccup) while still catching real outages quickly.

Dashboard Summary

The Health Monitor main view shows all endpoints in a card grid. Each card displays:

  • Endpoint name and URL
  • Current status badge (Up / Down / Degraded — degraded means the endpoint is responding but response time exceeds the configured threshold)
  • Last check timestamp and response time
  • 7-day uptime percentage
  • A mini uptime bar for the last 30 checks

Sort the card grid by name, uptime percentage, or last response time using the sort controls in the toolbar. Filter by status (All / Up / Down / Degraded) using the filter pills.

FAQ

Can I monitor internal (non-public) services?
Yes. Checks are made from the machine running the TotalApp server process, not from an external cloud infrastructure. If your internal service is reachable from the TotalApp server (e.g. on the same network or VPN), Health Monitor can check it even if it is not publicly accessible. Enter the internal IP or hostname as the URL.
How long is check history retained?
Individual check results are retained for 90 days. After 90 days, results are aggregated into daily summaries (average uptime %, average response time). Daily summaries are retained indefinitely. The incident log (down events) is retained for 1 year.
What does "Degraded" status mean?
Degraded means the endpoint responded successfully (correct HTTP status code) but the response time exceeded the Degraded threshold configured for that endpoint (default: 2 seconds). The endpoint is still technically up but performing more slowly than expected. Degraded is shown in amber to distinguish it from a full outage.