Last updated: July 19, 2026
dash0_synthetic_check
Terraform resource for Dash0 synthetic checks — HTTP-based availability and correctness probes with configurable schedules, retries, and notifications.
Manages a Dash0 Synthetic Check. Synthetic checks periodically probe endpoints or URLs from multiple locations to monitor availability, latency, and correctness of your services. See Synthetic Monitoring and Manage Synthetic Checks as Code for more details.
Example Usage
terraform
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879resource "dash0_synthetic_check" "my_check" {dataset = "default"synthetic_check_yaml = file("${path.module}/synthetic_check.yaml")}# Creating notification channels with `for_each`, and linking one of them# from a synthetic check.## `dash0_notification_channel` exposes a computed `id` attribute (the# server-assigned UUID, resolved by the provider after creation). The# synthetic check references that id in `spec.notifications.channels`,# which requires raw UUIDs rather than the `tf_`-prefixed origin.resource "dash0_notification_channel" "team_oncall" {for_each = {backend = "backend-oncall@example.com"frontend = "frontend-oncall@example.com"sre = "sre-oncall@example.com"}notification_channel_yaml = <<-YAMLkind: Dash0NotificationChannelmetadata:name: ${each.key} on-callspec:type: email_v2config:recipients:- ${each.value}plaintext: falsefrequency: 10mYAML}resource "dash0_synthetic_check" "checkout_api" {dataset = "default"synthetic_check_yaml = <<-YAMLkind: Dash0SyntheticCheckmetadata:name: checkout-apispec:enabled: truenotifications:channels:- ${dash0_notification_channel.team_oncall["sre"].id}plugin:display:name: checkout-apikind: httpspec:assertions:criticalAssertions:- kind: status_codespec:value: "200"operator: isrequest:method: geturl: https://api.example.com/healthqueryParameters: []headers: []redirects: followtls:allowInsecure: falsetracing:addTracingHeaders: trueretries:kind: fixedspec:attempts: 3delay: 1sschedule:interval: 1mlocations:- de-frankfurt- us-oregonstrategy: all_locationsYAML}
Schema
Required
dataset(String) The identifier of the Dash0 dataset that the synthetic check belongs to. Provide the dataset's identifier, which is immutable, not the 'name'. Datasets are used to separate observability data within a Dash0 organization. Changing this value forces the resource to be recreated.synthetic_check_yaml(String) The synthetic check definition in YAML format, specifying the check type, target URL, schedule, and assertion criteria. See Create Synthetic Checks for the available options. Thedash0.com/sharingmetadata annotation is supported to control sharing settings; changes to it trigger a resource update. All other metadata annotations are managed by the server and ignored during drift detection.
Read-Only
id(String) The server-assigned UUID of the synthetic check, resolved by the provider after creation. Reference this value when wiring the check's identifier into another resource (for example, a check rule that gates on the synthetic check's outcome).origin(String) A unique identifier for the synthetic check, automatically generated on creation. Used to reference the synthetic check for updates, reads, deletes, and imports.url(String) The URL to open this synthetic check in the Dash0 web app, derived from the Dash0 API URL and the synthetic check's server-assigned identifier. Computed by the provider after creation. May be empty if the app URL cannot be derived (e.g. for self-hosted deployments with a custom web app domain).
Import
Import is supported using the following syntax:
The terraform import command can be used, for example:
shell
12#!/bin/bashterraform import dash0_synthetic_check.name "{{ dataset }},{{ id_or_origin }}"