Skip to main content
Monitoring as Code (MaC) lets you define monitors, alert channels, notification policies, and more as version-controlled configuration. Choose the tool that fits your workflow:
ToolBest forFormat
YAML + CLIFast iteration, standalone monitoring configdevhelm.yml
TerraformManaging monitors alongside cloud infrastructureHCL (.tf)
PulumiProgrammatic control with general-purpose languagesTypeScript, Python, Go

YAML + CLI

The fastest path to monitoring as code. Define everything in a single devhelm.yml and deploy with the CLI.
version: "1"

monitors:
  - name: API Health
    type: HTTP
    config:
      url: https://api.example.com/health
    frequency: 60
    regions: [us-east, eu-west]

alertChannels:
  - name: Slack Alerts
    type: slack
    config:
      webhookUrl: ${SLACK_WEBHOOK_URL}
devhelm deploy -f devhelm.yml --yes

YAML file format

Full schema reference for devhelm.yml.

Deploy workflow

Validate, plan, and deploy lifecycle.

Terraform provider

Manage DevHelm resources as Terraform infrastructure alongside AWS, GCP, or any other provider.
resource "devhelm_monitor" "api" {
  name              = "API Health"
  type              = "HTTP"
  frequency_seconds = 60
  regions           = ["us-east", "eu-west"]
  config            = jsonencode({ url = "https://api.example.com/health" })
}

Terraform overview

Provider setup, resources, and data sources.

Terraform monitors

Full devhelm_monitor resource reference.

Pulumi provider

The Pulumi provider is in development. See Pulumi overview for status.

CI/CD patterns

Automate deploys on every push. Preview changes in pull requests.

CI/CD overview

Common patterns across CI systems.

GitHub Actions

Official setup-devhelm action.

Generic CI

GitLab, Jenkins, CircleCI, and more.

Choosing between YAML and Terraform

ConsiderationYAML + CLITerraform
Setup timeMinutesRequires Terraform knowledge
State managementAPI is source of truthTerraform state file
Cloud resource co-managementNoYes
PR previewdevhelm planterraform plan
Multi-environmentPer-env YAML filesTerraform workspaces or modules
Don’t manage the same resource with both YAML and Terraform. Pick one source of truth per resource to avoid drift and conflicts.