Skip to content

create_telemetry_alert_rule

POST
/alert-rules/v2
curl --request POST \
--url https://api.siteqwality.com/alert-rules/v2 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "settings": { "name": "example", "enabled": true, "service_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "tags": [ "example" ], "severity": "example", "urgency_override": "example", "routing": { "firing": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "resolved": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "warning": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "no_data": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "error": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "runbook_url": "example", "notification_timing": { "renotify_seconds": 1, "cooldown_seconds": 1 } }, "query": { "query": { "v": 1, "signal": "logs", "text": "example", "filters": [ "example" ], "range": { "from": "example", "to": "example" }, "tz": "example", "analytics": { "group_by": [ "example" ], "measure": { "op": "count", "field": "example" }, "interval": "example", "limit": 1, "display": "timeseries" } }, "type": "event" }, "comparison": { "offset_seconds": 1, "type": "difference" }, "window_seconds": 1, "interval_seconds": 1, "threshold": { "direction": "above", "critical": 1, "warning": 1, "recovery": 1, "for_seconds": 1, "keep_firing_seconds": 1, "no_data_seconds": 1, "missing_data": "keep" }, "late_data_seconds": 1, "max_instances": 1 }'
Media type application/json
object
settings
required
object
name
required
string
enabled
boolean
service_id
string | null format: uuid
tags
Array<string>
severity
required
string
urgency_override
string | null
routing
object
firing
Array<string>
resolved

Not used: a resolve goes to every channel told the episode fired.

Array<string>
warning
Array<string>
no_data
Array<string>
error
Array<string>
runbook_url
string | null
notification_timing
object
renotify_seconds

Zero disables reminders. Timers use evaluated input time, never retries.

integer format: int32
cooldown_seconds
integer format: int32
query
required
One of:
object
query
required

A log, span or trace query: the explorer URL, a saved view, a widget, an alert rule and an MCP call all carry this. text and filters are AND-combined.

object
v
required
integer format: int32
signal
required

The signal of an [EventQuery].

string
Allowed values: logs spans traces
text

The text grammar (6.5.2).

string
filters

The f grammar (6.5.1), parsed for the signal’s scope.

Array<string>
range
required

A window of T2 tokens (now, now-2h) or instants (ISO 8601, epoch milliseconds), resolved when the query is compiled, so a stored view stays rolling.

object
from
required
string
to
required
string
tz
string | null
analytics
One of:

Group-by analytics over an [EventQuery]: a time series or a top list.

object
group_by

Up to three fields, in the f field syntax (service, @http.route).

Array<string>
measure
object
op
required
string
Allowed values: count sum avg min max p50 p75 p90 p95 p99
field

A numeric field (duration, @db.rows); none for count.

string | null
interval

A T2 bucket interval or auto; absent means auto.

string | null
limit

Groups returned, 1 to 100; absent means 10.

integer | null format: int32
display
string
Allowed values: timeseries toplist
type
required
string
Allowed values: event
comparison
One of:
One of:
object
offset_seconds
required
integer format: int32
type
required
string
Allowed values: difference
window_seconds
required
integer format: int32
interval_seconds
required
integer format: int32
threshold
required
object
direction
required
string
Allowed values: above below
critical
required
number format: double
warning
number | null format: double
recovery
number | null format: double
for_seconds
required
integer format: int32
keep_firing_seconds
required
integer format: int32
no_data_seconds
required
integer format: int32
missing_data
required
string
Allowed values: keep no_data alert ok
late_data_seconds
required

Recompute this bounded recent interval; older late data never reissues a notification.

integer format: int32
max_instances
integer format: int32

Created

Media type text/plain
string format: uuid