Dash0 Raises $110M Series B at $1B Valuation

Last updated: July 7, 2026

Create SLOs

Create and manage SLOs in Dash0 using the Dash0 API and an OpenSLO SLO definition.

During the Private Beta, SLOs are created and managed through the Dash0 API using an OpenSLO SLO definition (apiVersion: openslo/v1, kind: SLO). There is no self-serve creation UI yet, so the API is the way to add an SLO today.

Private Beta

A self-serve creation UI is arriving during the Private Beta. Until then, the SLOs catalog has no create action and the create route is not available, so use the API described below.

Prerequisites

  • Your organization is enabled for the SLOs Private Beta (you see the SLOs entry under Alerting).
  • An API token with configuration permission, which only an Admin can grant. Create and manage tokens in Organization Settings › Auth Tokens. A token without configuration permission can read SLOs but is rejected with 403 Forbidden on create.

Step 1: Define your SLI

Your Service Level Indicator (SLI) is a ratio of good events to total events, expressed as PromQL over your telemetry. Each query must be a bare vector selector (label matchers only; functions and aggregations are rejected with a 400). The full set of supported and rejected capabilities is listed in Use the SLO API. For an availability SLO on server spans, for example:

  • good — server spans whose status is not ERROR
  • total — all matching server spans

The SLI must resolve to exactly one time series. Indicators that match multiple series can cause unexpected values or failures during SLO calculation.

Step 2: Choose a target

  • Target — the reliability goal as a fraction (for example 0.997 for 99.7%).
  • Budgeting method and time window — not configurable during the Private Beta: Occurrences budgeting (count-based: bad events vs. total events) over a rolling 28-day window.

Step 3: Write the SLO definition

The request body is an OpenSLO v1 SLO object; Dash0 implements a subset of the specification. Set apiVersion to openslo/v1 and kind to SLO. The server assigns the SLO's identity and timestamps, so do not include those.

json
12345678910111213141516171819202122232425
{
"apiVersion": "openslo/v1",
"kind": "SLO",
"metadata": {
"name": "doc-validation-availability",
"labels": { "team": "platform" }
},
"spec": {
"budgetingMethod": "Occurrences",
"description": "99.7% of control-plane-api requests complete without an ERROR span status over a rolling 28-day window.",
"indicator": {
"spec": {
"ratioMetric": {
"counter": true,
"good": { "metricSource": { "type": "Prometheus",
"spec": { "query": "{otel_metric_name=\"dash0.spans\", service_name=\"control-plane-api\", otel_span_kind=\"SERVER\", otel_span_status_code!=\"ERROR\"}" } } },
"total": { "metricSource": { "type": "Prometheus",
"spec": { "query": "{otel_metric_name=\"dash0.spans\", service_name=\"control-plane-api\", otel_span_kind=\"SERVER\"}" } } }
}
}
},
"timeWindow": [ { "duration": "28d", "isRolling": true } ],
"objectives": [ { "displayName": "control-plane-api: 99.7% server availability", "target": 0.997 } ]
}
}

Step 4: Send it to the API

bash
1234
curl -X POST "https://{your-dash0-api-host}/api/slos?dataset={your-dataset}" \
-H "Authorization: Bearer $DASH0_TOKEN" \
-H "Content-Type: application/json" \
-d @slo.json

See the Use the SLO API for the full endpoint list, authentication details, and the supported field reference.

Step 5: Verify

Open Alerting › SLOs to confirm the SLO appears in the catalog, then open it to see its target, error budget, and burndown. It can take a few minutes after creation before the SLO appears and starts showing data. See View and analyze SLOs.

Supported in the Private Beta

The Private Beta implements a focused subset of the SLO contract.

The following are supported:

  • budgetingMethod: Occurrences
  • A single objective
  • A ratioMetric SLI with inline PromQL for good and total
  • A rolling 28-day time window (28d, or the equivalent 4w; timeWindow is optional and defaults to 28 days)

The following are not yet supported and are rejected with a 400 error: Timeslices/RatioTimeslices budgeting, calendar windows, window durations other than 4w/28d, multiple objectives, thresholdMetric SLIs, indicatorRef, composite objectives, and metricSourceRef (inline the query instead). alertPolicies are accepted but ignored — alerting is configured separately (see Alerting on SLOs). The full matrix is in the Use the SLO API.

Further reading