Uptime monitoring as code with Terraform

Keep monitors next to the infrastructure they watch. The official CuliPulse provider for Terraform and OpenTofu creates HTTP and heartbeat monitors, webhook channels and alert routing from code — reviewed in pull requests like everything else.

The problem

  • Monitors clicked together by hand drift away from what's actually deployed.
  • A new service should get its monitor in the same pull request.
  • When a service is removed, its monitor should go with it.

How it works

1. Add the provider

Install culipulse/culipulse from the Terraform Registry or the OpenTofu registry.

2. Describe your monitors

Declare HTTP and heartbeat monitors, webhook channels and routing next to the service they belong to.

3. Plan and apply

Review the change in a pull request, then apply it like any other infrastructure.

monitoring.tfHCL
terraform {  required_providers {    culipulse = { source = "culipulse/culipulse", version = "~> 0.1" }  }}data "culipulse_agents" "singapore" {  kind   = "first_party"  region = "sg"}resource "culipulse_http_monitor" "api" {  name             = "API health"  url              = "https://api.example.com/health"  interval_seconds = 300  agent_ids        = data.culipulse_agents.singapore.ids  expected_status  = "200"  secret_headers   = { "X-Api-Key" = var.health_check_key }  assertions = [    { source = "json_body", op = "equals",      path = "$.status", value = "ok" },  ]}

Keep reading

Start monitoring free

No credit card. Agents are free on every plan.