tutorial

How to Monitor Incident.io with Vigilmon

How to monitor Incident.io with Vigilmon — HTTP health checks on the Incident.io API, Slack integration availability, SSL certificate monitoring, and alerting to catch when your incident management platform itself goes down.

Incident.io is the modern incident management platform built natively into Slack — providing real-time incident declaration, timeline tracking, role assignment, status page updates, and automated retrospective generation from within your team's existing Slack workspace. When Incident.io's API or Slack integration goes down during an active incident, your team loses the structured workflow they depend on: automated timeline entries stop recording, role assignments cannot be made, and status page updates require manual intervention. Vigilmon gives you external uptime monitoring for Incident.io — API availability, dashboard health, SSL certificate validity, and alerting so you know when your incident management platform is unavailable before you need it most.

What You'll Build

  • An HTTP monitor on the Incident.io API endpoint to detect service disruptions
  • A monitor on the Incident.io dashboard to catch web application outages
  • A monitor on the Incident.io API root for gateway-level availability
  • An SSL certificate monitor for your Incident.io domains
  • Alerting rules that notify your team through a channel independent of Incident.io when the platform is unreachable

Prerequisites

  • An active Incident.io account at app.incident.io
  • Incident.io integrated with your Slack workspace
  • A Vigilmon account with at least one notification channel that does not route through Incident.io or Slack
  • A free account at vigilmon.online

Step 1: Understand Incident.io's Architecture

Incident.io operates as a cloud-hosted SaaS platform with Slack as the primary interface. The externally-visible components are:

| Component | Endpoint | Role | |---|---|---| | Public API | https://api.incident.io/v2/ | REST API for incident CRUD, actions, roles, and integrations | | Web dashboard | https://app.incident.io | Browser-based incident management, retrospectives, and analytics | | Status page | https://status.incident.io | Incident.io's own uptime transparency page | | Webhook receiver | https://api.incident.io/webhooks/ | Receives inbound events from Slack and integrations |

Incident.io's Slack integration is bidirectional — Slack events trigger Incident.io workflows, and Incident.io pushes timeline and status updates back into Slack channels. Monitoring the API endpoint confirms the backend is healthy; the Slack integration layer is separately managed by Incident.io's infrastructure.


Step 2: Monitor the Incident.io API Endpoint

The Incident.io REST API is used by your team's integrations, custom automations, and the Slack bot itself. An HTTP check confirms the API is reachable:

curl -I https://api.incident.io/v2/incidents
# Returns 401 (unauthorized without API key) — confirms the API is alive
  1. Log in to VigilmonAdd Monitor → HTTP.
  2. URL: https://api.incident.io/v2/incidents.
  3. Check interval: 60 seconds.
  4. Response timeout: 10 seconds.
  5. Expected status: 401 (unauthenticated requests return 401 — confirms the API is alive and responding).
  6. Label: Incident.io API.
  7. Click Save.

This monitor catches:

  • Incident.io API service disruptions
  • Backend deployment failures causing API unresponsiveness
  • Network routing failures between Vigilmon probes and Incident.io's infrastructure
  • DNS resolution failures for api.incident.io

Alert sensitivity: Set to trigger after 1 consecutive failure. An API outage means your Slack bot commands (/incident declare, /incident update) stop working, and any custom API integrations fail silently.

Critical: Configure this monitor's alert channel to use email or a Slack channel that does not rely on Incident.io. If Incident.io goes down during an active incident, you need to receive this alert through an independent path.


Step 3: Monitor the Incident.io API Root

The API root confirms the gateway layer is alive and routing requests before authentication is checked:

curl -I https://api.incident.io/v2/
# Returns 200 — confirms API gateway is alive
  1. Add Monitor → HTTP.
  2. URL: https://api.incident.io/v2/.
  3. Check interval: 60 seconds.
  4. Response timeout: 10 seconds.
  5. Expected status: 200.
  6. Label: Incident.io API root.
  7. Click Save.

Why both monitors: The /v2/incidents endpoint and the /v2/ root provide complementary signals. A router or load balancer failure might return 200 on the root while upstream endpoints fail — running both monitors together catches different failure layers in Incident.io's stack.


Step 4: Monitor the Incident.io Web Dashboard

The Incident.io dashboard is where your team manages retrospectives, edits incident timelines, configures workflows, and reviews analytics. An HTTP check confirms the web application is serving:

curl -I https://app.incident.io
# Returns 200 with text/html content
  1. Add Monitor → HTTP.
  2. URL: https://app.incident.io.
  3. Check interval: 2 minutes.
  4. Response timeout: 15 seconds.
  5. Expected status: 200.
  6. Keyword: incident.io (appears in the page title or HTML).
  7. Label: Incident.io dashboard.
  8. Click Save.

Slack vs Dashboard independence: Incident.io's Slack integration and web dashboard can fail independently. During an API outage, the Slack bot may be unresponsive while the dashboard still loads. During a frontend deployment failure, the dashboard may be down while the API and Slack bot continue working. Monitor both to distinguish between a full platform outage and a partial degradation.


Step 5: Monitor SSL Certificates

Incident.io's TLS certificate secures both the API (used by Slack integrations and custom automations) and the web dashboard. An expired certificate breaks your entire Incident.io stack simultaneously:

openssl s_client -connect api.incident.io:443 2>/dev/null | openssl x509 -noout -dates
  1. Add Monitor → SSL Certificate.
  2. Domain: api.incident.io.
  3. Alert when expiry is within: 30 days.
  4. Alert again: 14 days, 7 days, 3 days, 1 day.
  5. Click Save.

Add a second SSL monitor for the dashboard domain:

  1. Add Monitor → SSL Certificate.
  2. Domain: app.incident.io.
  3. Alert when expiry is within: 30 days.
  4. Click Save.

Why two SSL monitors: api.incident.io and app.incident.io may use separate certificates or different CDN/infrastructure paths. Monitoring both ensures a certificate failure on either host is caught before it breaks your incident response tooling.


Step 6: Configure Alerting

In Vigilmon under Settings → Notifications, configure your alert channels:

| Monitor | Trigger | Action | |---|---|---| | Incident.io API | Non-401/200 or timeout | Check Incident.io status page; notify team via direct email; use backup incident channel | | Incident.io API root | Non-200 or timeout | API gateway down; all Slack commands and API integrations failing | | Incident.io dashboard | Non-200 or timeout | Web app unavailable; check Incident.io status page for deployment issues | | SSL certificate (api) | < 30 days to expiry | API clients will reject certificate; contact Incident.io support | | SSL certificate (app) | < 30 days to expiry | Dashboard will show browser certificate warning; engineers cannot access |

Alert after: 1 consecutive failure for API monitors. 2 consecutive failures for dashboard monitors.

Important: All Incident.io monitors must alert via a channel that does NOT route through Incident.io — use direct email or a Slack channel your team monitors independently.


Common Incident.io Failure Modes and What Vigilmon Catches

| Scenario | Vigilmon monitor | |---|---| | Incident.io API deployment failure | API monitor fires; Slack bot commands stop working | | Frontend outage (dashboard unavailable) | Dashboard monitor fires; API and Slack bot may still work | | DNS resolution failure for api.incident.io | API monitor fires; all integrations and Slack bot fail | | SSL certificate renewal failure | SSL monitor alerts at 30-day threshold; clients reject certificate | | Slack bot unresponsive (independent from API) | API monitor stays healthy; investigate Slack app configuration separately | | Incident.io platform-wide incident | All monitors fire; check status.incident.io for updates | | Network routing degradation (high latency) | Response time increases; Vigilmon timeout alerts fire before full outage | | API rate limiting under high incident volume | API returns 429; monitor detects non-standard response status | | Webhook delivery failures to Slack | API monitor may stay healthy; investigate Slack integration event logs | | Custom domain SSL expiry | SSL monitor fires; dashboard shows certificate error for custom domain |


Monitoring During an Active Incident — Why This Setup Matters

The highest-stakes time for Incident.io to be available is during an active major incident — exactly when the platform is most likely to see unusual load. Having Vigilmon monitor Incident.io through an independent path means:

  1. Before the incident starts: Vigilmon's background check catches any pre-existing Incident.io degradation before your on-call team tries to use it.
  2. During the incident: If Incident.io becomes unavailable mid-incident, the Vigilmon alert reaches your team directly — they know to switch to manual incident coordination rather than waiting for Slack commands to work.
  3. Recovery confirmation: When Incident.io recovers, Vigilmon sends a recovery notification, letting your team resume using the platform and catch up on any missed timeline entries.

Independent Alerting Channel — Essential for Monitoring Your Incident Tool

Vigilmon monitoring Incident.io is only useful if its alerts reach your team through a path that is independent of Incident.io. Before completing this setup:

  1. Create a dedicated Vigilmon notification channel using email or a Slack channel that your team watches independently.
  2. Verify the channel does not route through Incident.io — do not use an Incident.io webhook as the alert destination for these monitors.
  3. Test the channel by temporarily pausing the Incident.io API monitor and confirming the alert arrives directly.

Incident.io manages your team's entire incident response workflow, but the platform itself needs external monitoring. When Incident.io's API goes down, Slack bot commands stop working, timeline entries stop recording, and status page updates require manual intervention — all during the moments when your team is under the most pressure. Vigilmon checks Incident.io's API, dashboard, and SSL certificates on a 60-second cycle through an independent notification channel, so you know within a minute when your incident management platform is unavailable.

Start monitoring Incident.io in under 5 minutes — register free at vigilmon.online.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →