Terraform Provider for SteadyStack
Provision, manage, and version-control your edge-native synthetic monitoring, incident escalation channels, alert rules, and customer-facing status pages directly within your Terraform or OpenTofu infrastructure pipelines.
Sovereign Edge Quorum
Target checks across 7 regional edge clusters (wnam, enam, weur, apac) to prevent regional ISP false alarms.
Multi-Channel Routing
Route incidents to PagerDuty, Opsgenie, Slack, Discord, SMS, or custom webhooks with granular trigger rules.
Status Pages as Code
Provision branded public or password-protected status pages with custom domains and SLA timelines.
1. Provider Configuration
Declare the provider in your Terraform manifest and provide your API Key from the SteadyStack dashboard.
terraform {
required_providers {
steadystack = {
source = "getsteadystack/SteadyStack"
version = "~> 1.0"
}
}
}
provider "steadystack" {
api_key = var.steadystack_api_key # or set export STEADYSTACK_API_KEY="..."
}2. Synthetic Monitors (`steadystack_monitor`)
Configure HTTP, PING, PORT, SSL, DNS, or HEARTBEAT monitors with sovereign edge region targeting and AI anomaly thresholds.
resource "steadystack_monitor" "api_gateway" {
name = "Production API Gateway"
url = "https://api.example.com/health"
type = "HTTP"
interval = 30
timeout = 5
method = "GET"
headers = {
"X-Synthetic-Check" = "SteadyStack-Edge"
"Authorization" = "Bearer ${var.internal_auth_token}"
}
check_regions = ["wnam", "enam", "weur", "apac"]
alert_threshold = 2
dynamic_thresholding = true
runbook_url = "https://wiki.example.com/runbooks/api-outage"
tags = ["production", "api", "core"]
}| Attribute | Type | Description |
|---|---|---|
| name | string (required) | Display label of the monitor. |
| url | string (required) | Target endpoint or domain to surveil. |
| type | string (optional) | HTTP, PING, PORT, SSL, DNS, HEARTBEAT. |
| check_regions | list(string) | Edge probe regions: wnam, enam, weur, apac. |
| dynamic_thresholding | bool | Enables AI-driven latency spike & degradation anomaly alarms. |
3. Notification Channels & Alert Rules
Connect monitors to notification channels like PagerDuty or Slack with conditional alert triggers.
# 1. Define Notification Channels
resource "steadystack_alert_channel" "pagerduty_sre" {
name = "PagerDuty SRE On-Call"
type = "PAGERDUTY"
config_json = jsonencode({
routingKey = var.pagerduty_routing_key
})
}
# 2. Attach Alert Rules to Monitors
resource "steadystack_alert_rule" "api_downstream_alarm" {
monitor_id = steadystack_monitor.api_gateway.id
trigger = "STATUS_CHANGE"
target_status = "DOWN"
enabled = true
channel_ids = [steadystack_alert_channel.pagerduty_sre.id]
}
resource "steadystack_alert_rule" "api_latency_sla" {
monitor_id = steadystack_monitor.api_gateway.id
trigger = "LATENCY"
threshold = 1500 # Trigger when latency exceeds 1500ms
comparison = "GT"
enabled = true
channel_ids = [steadystack_alert_channel.pagerduty_sre.id]
}4. Status Pages (`steadystack_status_page`)
Deploy branded status pages with custom domains, password protections, and SLA showcase charts.
resource "steadystack_status_page" "company_status" {
slug = "acme-status"
title = "ACME Production Status"
description = "Live real-time operational status and historical SLA metrics."
custom_domain = "status.example.com"
is_private = false
show_uptime = true
show_response_time = true
history_days = 90
}5. Data Sources (`steadystack_regions`)
Dynamically discover all active global edge check nodes and geographic regions.
data "steadystack_regions" "edge_nodes" {}
output "edge_regions" {
value = data.steadystack_regions.edge_nodes.regions
}Ready to automate your monitoring?
Generate an API Key in Workspace Settings and deploy your first synthetic check in minutes.