Schedule icon
Script icon
If icon
SlackIncomingWebhook icon
Log icon
Labels icon

Statuspage Dependency Incident Scraper

Scrapes Atlassian Statuspage summary APIs for critical SaaS dependencies, alerting SREs on Slack when third-party cloud outages impact platform availability.

Categories
CoreInfrastructure

This blueprint monitors external third-party SaaS dependencies across distributed microservices. Scheduled every 15 minutes, it queries public Atlassian Statuspage API endpoints (/api/v2/summary.json) for services such as GitHub, AWS, Stripe, and Datadog, alerting engineering and site reliability teams on Slack before vendor outages trigger unnecessary internal incident escalations.

How it works

  1. Recurring 15-Minute Trigger: The periodic_status_scrape schedule trigger (io.kestra.plugin.core.trigger.Schedule) initiates the audit every 15 minutes.
  2. Statuspage Summary Inspection: The scrape_statuspage_incidents task (io.kestra.plugin.scripts.python.Script) fetches /api/v2/summary.json, parsing system status descriptions, severity indicators (minor, major, critical), and unresolved incidents.
  3. Outage Detection Gate: The check_active_outages flowable task (io.kestra.plugin.core.flow.If) evaluates whether any active incidents or non-operational status indicators exist.
  4. Slack Notice Dispatch: When vendor outages occur, notify_slack_vendor_outage (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) delivers an incident briefing card to the on-call channel.
  5. Healthy Confirmation: When the external provider operates nominally, log_dependencies_nominal records confirmed status.
  6. Manifest Export: The export_outage_manifest task tags the execution with searchable status labels.

Architecture diagram

flowchart TD
    A[Schedule: Every 15 Minutes] --> B[scrape_statuspage_incidents: Query Statuspage API]
    B --> C{Vendor Incident or Degradation?}
    C -- Yes --> D[notify_slack_vendor_outage: Slack Webhook]
    C -- No --> E[log_dependencies_nominal: Log Nominal State]
    D --> F[export_outage_manifest: Execution Labels]
    E --> F

Use cases

  • Prevent Fruitless Internal Root Cause Analysis: Stop engineering teams from diagnosing internal application bugs when the root cause is an upstream payment gateway or cloud DNS outage.
  • Automated Circuit Breaker Coordination: Inform data pipelines and message brokers when downstream SaaS APIs report partial outages to throttle retry backoff delays.
  • Multi-Vendor Dependency Tracking: Maintain automated audit trails of third-party vendor downtime for Service Level Agreement (SLA) penalty enforcement.

Inputs

Name Type Default Description
statuspage_summary_url STRING https://www.githubstatus.com/api/v2/summary.json Public Statuspage API summary endpoint URL for the monitored vendor service.
dependency_name STRING GitHub Human-readable name of the external service or vendor dependency.
slack_channel STRING #vendor-outage-alerts Slack channel destination for third-party vendor incident and degradation alerts.

Expected outputs

  • {{ outputs.scrape_statuspage_incidents.vars.dependency_name }}: Monitored vendor service name.
  • {{ outputs.scrape_statuspage_incidents.vars.status_description }}: Current overall vendor service status description.
  • {{ outputs.scrape_statuspage_incidents.vars.indicator }}: Status indicator code (none, minor, major, critical).
  • {{ outputs.scrape_statuspage_incidents.vars.active_incident_count }}: Count of currently unresolved vendor incidents.
  • {{ outputs.scrape_statuspage_incidents.outputFiles['vendor_status_report.json'] }}: Structured JSON report detailing vendor status components.

Prerequisites

  • Target vendor operating an Atlassian Statuspage with public API access enabled.
  • Outbound internet access from Kestra execution workers to fetch vendor status endpoints.
  • Slack Incoming Webhook endpoint URL.

Secrets

  • SLACK_WEBHOOK_URL: Slack Incoming Webhook endpoint URL.

Quick start

  1. Configure SLACK_WEBHOOK_URL in your Kestra namespace secrets.
  2. Import this flow YAML into your Kestra workspace.
  3. Specify your vendor's summary API URL in statuspage_summary_url (e.g. https://status.datadoghq.com/api/v2/summary.json).
  4. Click Execute in the UI to perform an immediate third-party status scrape.

Common pitfalls and troubleshooting

  • Statuspage API Schema Divergence: Most public Statuspage endpoints support Atlassian standard schema /api/v2/summary.json; verify endpoint responsiveness with curl.
  • Public API Rate Limits: Scraping too frequently (< 5 min) across multiple vendors may trigger Cloudflare or rate-limit IP blocks; keep audit schedules to 15-minute intervals.
  • Partial Component Outages: Providers may report overall indicator as minor even when a critical component for your architecture is degraded; inspect component lists for granular routing.

How to extend

  • Fan-out audits across multiple vendors (Stripe, Twilio, AWS, GitHub) simultaneously using Kestra ForEach task.
  • Dynamically update internal status pages via Statuspage management APIs when vendor outages impact dependent microservices.
  • Broadcast vendor downtime digests to PagerDuty or Opsgenie maintenance mode schedules.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.