Skip to content

Dash0

Connect to Dash0 to query data using Prometheus API

The On Notification trigger starts a workflow execution when Dash0 sends a notification webhook.

  1. Configure the Dash0 integration in SuperPlane.
  2. Copy the webhook URL shown in the integration configuration.
  3. In Dash0, configure notifications to send HTTP POST requests to that URL.

The trigger emits the full JSON payload received from Dash0 as dash0.notification.

{
"data": {
"issue": {
"checkrules": [
{
"annotations": {
"summary": "High error rate detected"
},
"description": "Alert when API error rate is high",
"expression": "sum(rate(http_requests_total{status=~\"5..\"}[5m])) \u003e 0.05",
"for": "5m",
"id": "check_456",
"interval": "1m",
"keepFiringFor": "10m",
"labels": {
"env": "prod",
"service": "api"
},
"name": "API availability",
"thresholds": {
"critical": 0.05
},
"url": "https://app.dash0.com/check-rules/check_456"
}
],
"dataset": "default",
"description": "Error rate exceeded threshold for API availability check.",
"end": "",
"id": "issue_123",
"issueIdentifier": "availability-api-high-error-rate",
"labels": [
{
"key": "service",
"value": {
"stringValue": "api"
}
},
{
"key": "env",
"value": {
"stringValue": "prod"
}
}
],
"start": "2026-02-20T12:00:00Z",
"status": "critical",
"summary": "High error rate on API availability check",
"url": "https://app.dash0.com/issues/issue_123"
}
},
"timestamp": "2026-02-20T12:00:00Z",
"type": "dash0.notification"
}

The Create Synthetic Check component creates an HTTP synthetic check in Dash0 to monitor the availability and performance of your endpoints.

  • Uptime monitoring: Create checks to monitor API endpoints and websites
  • Performance validation: Set response time thresholds to catch regressions
  • Deployment verification: Create synthetic checks after deployments to verify availability
  • Multi-region monitoring: Monitor endpoints from multiple global locations
  • Name: Display name of the synthetic check
  • Dataset: The Dash0 dataset to create the check in (defaults to “default”)
  • URL: Target URL to monitor
  • Method: HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD)
  • Redirects: Whether to follow HTTP redirects
  • Allow Insecure: Skip TLS certificate validation (useful for staging environments)
  • Headers: Custom HTTP request headers
  • Body: Request body payload (for POST/PUT/PATCH)
  • Interval: How often the check runs (e.g. 30s, 1m, 5m, 1h, 2d)
  • Locations: Probe locations (Frankfurt, Oregon, North Virginia, London, Brussels, Melbourne)
  • Strategy: Execution strategy (all locations or round-robin)

Each assertion has a kind, severity (critical or degraded), and kind-specific parameters:

  • Status Code: Validate the HTTP response status code
  • Timing: Set thresholds for response, request, SSL, connection, DNS, or total time
  • Error Type: Detect specific error types (DNS, connection, SSL, timeout)
  • SSL Certificate Validity: Enforce minimum days until certificate expiration
  • Response Header: Validate presence or value of a specific response header
  • JSON Body: Validate JSON response fields using JSONPath expressions
  • Text Body: Match plain-text response content
  • Attempts: Number of retry attempts on failure
  • Delay: Delay between retries (e.g. 1s, 2s, 5s)

Returns the created synthetic check details from the Dash0 API, including the check ID and full configuration.

{
"data": {
"kind": "Dash0SyntheticCheck",
"metadata": {
"annotations": {},
"labels": {
"dash0.com/dataset": "default",
"dash0.com/id": "64617368-3073-796e-7468-abc123def456",
"dash0.com/origin": "api-abc12345-6789-0123-4567-890abcdef012",
"dash0.com/version": "1"
},
"name": "login-api-health-check"
},
"spec": {
"enabled": true,
"plugin": {
"display": {
"name": "Login API health check"
},
"kind": "http",
"spec": {
"assertions": {
"criticalAssertions": [
{
"kind": "status_code",
"spec": {
"operator": "is",
"value": "200"
}
},
{
"kind": "timing",
"spec": {
"operator": "lte",
"type": "response",
"value": "5000ms"
}
}
],
"degradedAssertions": [
{
"kind": "timing",
"spec": {
"operator": "lte",
"type": "response",
"value": "2000ms"
}
}
]
},
"request": {
"headers": [],
"method": "get",
"queryParameters": [],
"redirects": "follow",
"tls": {
"allowInsecure": false
},
"tracing": {
"addTracingHeaders": true
},
"url": "https://api.example.com/health"
},
"retries": {
"kind": "fixed",
"spec": {
"attempts": 3,
"delay": "1s"
}
}
}
},
"schedule": {
"interval": "1m",
"locations": [
"de-frankfurt",
"us-oregon"
],
"strategy": "all_locations"
}
}
},
"timestamp": "2026-01-19T12:00:00Z",
"type": "dash0.syntheticCheck.created"
}

The Delete HTTP Synthetic Check component removes a synthetic check from Dash0 by its ID. Use the check ID from a Create/Get/Update output (e.g. metadata.labels[“dash0.com/id”]) or from the Dash0 dashboard.

  • Check ID: The Dash0 synthetic check ID to delete (required).
  • Dataset: The dataset the check belongs to (defaults to “default”).

Returns a confirmation payload (e.g. deleted id).

{
"data": {
"deleted": true,
"id": "64617368-3073-796e-7468-abc123def456"
},
"timestamp": "2026-01-19T12:00:00Z",
"type": "dash0.syntheticCheck.deleted"
}

The List Issues component queries Dash0 to retrieve all current issues and routes execution based on issue severity.

  • Health monitoring: Check system health and route based on issue severity
  • Alert routing: Route alerts to different channels based on issue status
  • Issue tracking: Monitor and process active issues
  • Automated remediation: Trigger remediation workflows based on issues
  • Check Rules: Optional list of check rules to filter issues (leave empty to get all issues)
  • Clear: No active issues detected
  • Degraded: One or more degraded issues detected
  • Critical: One or more critical issues detected

Returns a list of issues with:

  • check_rule: The check rule that generated the issue
  • status: Issue status (clear, degraded, critical)
  • labels: Metric labels associated with the issue
  • metadata: Additional issue metadata
{
"data": {
"data": {
"result": [
{
"metric": {
"service_name": "test"
},
"value": [
1234567890,
"1"
],
"values": [
[
1234567890,
"1"
],
[
1234567900,
"2"
]
]
}
],
"resultType": "vector"
},
"status": "success"
},
"timestamp": "2026-01-19T12:00:00Z",
"type": "dash0.issues.list"
}

The Query Prometheus component executes PromQL queries against the Dash0 Prometheus API.

  • Metrics monitoring: Query application and infrastructure metrics
  • Alerting: Check metric thresholds and trigger alerts
  • Data analysis: Analyze time-series data from your applications
  • Performance monitoring: Monitor system performance metrics
  • PromQL Query: The Prometheus Query Language query to execute (supports expressions)
  • Dataset: The dataset to query (default: “default”)
  • Query Type:
    • Instant: Query a single point in time
    • Range: Query a time range with optional start, end, and step parameters

Returns the Prometheus query response including:

  • status: Query status (success or error)
  • data: Query results with metric labels and values
  • dataType: Result type (vector, matrix, scalar, or string)
  • Requires Dash0 API token and base URL configured in application settings
  • Supports all standard PromQL functions and operators
  • Range queries require start, end, and step parameters
{
"data": {
"data": {
"result": [
{
"metric": {
"service_name": "test"
},
"value": [
1234567890,
"1"
],
"values": [
[
1234567890,
"1"
],
[
1234567900,
"2"
]
]
}
],
"resultType": "vector"
},
"status": "success"
},
"timestamp": "2026-01-19T12:00:00Z",
"type": "dash0.prometheus.response"
}

The Update HTTP Synthetic Check component updates an existing synthetic check in Dash0. Use the check ID from a previous Create HTTP Synthetic Check output (e.g. metadata.labels[“dash0.com/id”]) or from the Dash0 dashboard.

  • Check ID: The Dash0 synthetic check ID to update (required).
  • Dataset: The dataset the check belongs to (defaults to “default”).
  • Name, Request, Schedule, Assertions, Retries: Same as Create HTTP Synthetic Check; the full spec is sent to replace the existing check.
{
"data": {
"kind": "Dash0SyntheticCheck",
"metadata": {
"annotations": {},
"labels": {
"dash0.com/dataset": "default",
"dash0.com/id": "64617368-3073-796e-7468-abc123def456",
"dash0.com/origin": "api-abc12345-6789-0123-4567-890abcdef012",
"dash0.com/version": "2"
},
"name": "login-api-health-check"
},
"spec": {
"enabled": true,
"plugin": {
"display": {
"name": "Login API health check"
},
"kind": "http",
"spec": {
"assertions": {
"criticalAssertions": [
{
"kind": "status_code",
"spec": {
"operator": "is",
"value": "200"
}
}
],
"degradedAssertions": []
},
"request": {
"headers": [],
"method": "get",
"queryParameters": [],
"redirects": "follow",
"tls": {
"allowInsecure": false
},
"tracing": {
"addTracingHeaders": true
},
"url": "https://api.example.com/health"
},
"retries": {
"kind": "fixed",
"spec": {
"attempts": 3,
"delay": "1s"
}
}
}
},
"schedule": {
"interval": "1m",
"locations": [
"de-frankfurt",
"us-oregon"
],
"strategy": "all_locations"
}
}
},
"timestamp": "2026-01-19T12:00:00Z",
"type": "dash0.syntheticCheck.updated"
}