Official Terraform provider

Monitoring as code

Declare monitors and alert webhooks in HCL with the official Sentinel provider: version-controlled, PR-reviewed, drift-detected, and installed from the Terraform Registry in three lines.

Sentinel → Terraform

Why Terraform

Monitoring that ships with the infrastructure

Monitoring set up by hand drifts: someone forgets the staging monitor, the webhook token lives in one person's head, and nobody's sure the new region got added everywhere. Declaring it in Terraform makes monitoring part of the same change process as the infrastructure it watches, reviewed in the same pull requests, reproduced identically in every environment.

The provider is official, open source, and published on the Terraform Registry, so it's a three-line required_providers block away. Authentication is a scoped API token you can revoke any time.

  • sentinel_monitor: uptime, SSL, DNS, domain, ping, port, heartbeat and cron checks
  • sentinel_webhook_endpoint: alert destinations with auth and severity routing
  • terraform import adopts dashboard-created monitors without recreating them
  • Open source at github.com/rootstuff/terraform-provider-sentinel

main.tf

resource"sentinel_monitor""storefront" {

url = "https://tickets.example.com"

check_types = ["ssl", "dns", "domain"]

check_interval = 1

}

$ terraform plan

Plan: 1 to add, 0 to change, 0 to destroy.

Features

What the provider gives you

Monitors as code

Declare uptime, SSL, DNS and domain checks in HCL next to the infrastructure they watch. New service in the module, new monitor in the same pull request.

Alert webhooks as code

Webhook endpoints with bearer, basic or custom-header auth are resources too, so your incident tooling hookup is declared once and reproduced everywhere.

Drift detection

terraform plan compares your declared monitoring against what's actually configured. A well-meaning dashboard edit shows up as a diff instead of a surprise.

Import what exists

Monitors created in the dashboard adopt into state with terraform import, so moving to code doesn't mean recreating anything or losing history.

Secrets stay secret

Webhook URLs and tokens are write-only in the API: Terraform sends them, Sentinel never echoes them back. Credentials live in your variables, not in API responses.

A stable API underneath

The provider targets Sentinel's versioned API, where changes within v1 are additive only. Your pipelines don't break because a dashboard feature shipped.

FAQ

Terraform provider questions.

Still have questions? Get in touch.

How do I install the Sentinel Terraform provider?

Add rootstuff/sentinel to your required_providers block and run terraform init. The provider downloads from the public Terraform Registry with a signed release, like any other provider. Authenticate with a Sentinel API token via the SENTINEL_API_TOKEN environment variable.

What can it manage?

Every monitor type: http, ping, port, heartbeat and cron (with SSL, DNS, domain and other sub-checks, custom headers, methods and status-code rules), plus webhook endpoints (alert destinations with bearer, basic or custom-header auth and per-severity routing). Heartbeat monitors expose their ping URL as a Terraform output, so dead-man wiring lives in the same apply.

Which plans support it?

Creating and updating resources needs full API access, which is included on the Pro and Business plans. Starter tokens are read-only, which is enough to plan but not apply.

Can I adopt monitors I already created in the dashboard?

Yes. terraform import sentinel_monitor.name <id> brings an existing monitor under Terraform management with its history intact. Nothing is recreated and checks never stop.

What happens if someone edits a Terraform-managed monitor in the dashboard?

The next terraform plan shows the difference, and apply sets it back to what's declared. Configuration is the source of truth for managed resources; monitors not in your configuration are untouched.

Is the provider official?

Yes, it's built and maintained by Sentinel, published on the Terraform Registry under the rootstuff namespace, and open source on GitHub.

Put your monitoring in version control

Create a token, add three lines to required_providers, and your first terraform apply is minutes away.

No card for the free plan · 14-day trial on paid plans · Cancel anytime