grafana/docs/sources/developers/http_api/alerting_provisioning.md
Jean-Philippe Quéméner 862f51216b
Alerting: improve provisioning docs (#50347)
* Alerting: improve provisioning docs

* add new provisioning page

* add api docs

* fix formatting and add better descriptions

* fix typo
2022-06-10 16:25:15 +02:00

55 KiB

aliases description keywords title
/docs/grafana/latest/developers/http_api/alerting_provisioning/
/docs/grafana/latest/http_api/alerting_provisioning/
Grafana Alerts HTTP API
grafana
http
documentation
api
alerting
alerts
Alerting Provisioning HTTP API

Alerting provisioning API

Information

Version

1.0.0

Content negotiation

Consumes

  • application/json

Produces

  • application/json

All endpoints

Alert rules

Method URI Name Summary
GET /api/v1/provisioning/alert-rules/{UID} route get alert rule Get a specific alert rule by UID.
POST /api/v1/provisioning/alert-rules route post alert rule Create a new alert rule.
PUT /api/v1/provisioning/alert-rules/{UID} route put alert rule Update an existing alert rule.
PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group} route put alert rule group Update the interval of a rule group.
DELETE /api/v1/provisioning/alert-rules/{UID} route delete alert rule Delete a specific alert rule by UID.

Contact points

Method URI Name Summary
GET /api/v1/provisioning/contact-points route get contactpoints Get all the contact points.
POST /api/v1/provisioning/contact-points route post contactpoints Create a contact point.
PUT /api/v1/provisioning/contact-points/{UID} route put contactpoint Update an existing contact point.
DELETE /api/v1/provisioning/contact-points/{UID} route delete contactpoints Delete a contact point.

Notification policies

Method URI Name Summary
GET /api/v1/provisioning/policies route get policy tree Get the notification policy tree.
PUT /api/v1/provisioning/policies route put policy tree Sets the notification policy tree.

Mute timings

Method URI Name Summary
GET /api/v1/provisioning/mute-timings route get mute timings Get all the mute timings.
GET /api/v1/provisioning/mute-timings/{name} route get mute timing Get a mute timing.
POST /api/v1/provisioning/mute-timings route post mute timing Create a new mute timing.
PUT /api/v1/provisioning/mute-timings/{name} route put mute timing Replace an existing mute timing.
DELETE /api/v1/provisioning/mute-timings/{name} route delete mute timing Delete a mute timing.

Templates

Method URI Name Summary
GET /api/v1/provisioning/templates route get templates Get all message templates.
GET /api/v1/provisioning/templates/{name} route get template Get a message template.
PUT /api/v1/provisioning/templates/{name} route put template Creates or updates a template.
DELETE /api/v1/provisioning/templates/{name} route delete template Delete a template.

Paths

Delete a specific alert rule by UID. (RouteDeleteAlertRule)

DELETE /api/v1/provisioning/alert-rules/{UID}

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string

All responses

Code Status Description Has headers Schema
204 No Content The alert rule was deleted successfully. schema
400 Bad Request ValidationError schema

Responses

204 - The alert rule was deleted successfully.

Status: No Content

Schema
400 - ValidationError

Status: Bad Request

Schema

ValidationError

Delete a contact point. (RouteDeleteContactpoints)

DELETE /api/v1/provisioning/contact-points/{UID}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string UID should be the contact point unique identifier

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema
400 Bad Request ValidationError schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Delete a mute timing. (RouteDeleteMuteTiming)

DELETE /api/v1/provisioning/mute-timings/{name}

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name

All responses

Code Status Description Has headers Schema
204 No Content Ack schema

Responses

204 - Ack

Status: No Content

Schema

Ack

Delete a template. (RouteDeleteTemplate)

DELETE /api/v1/provisioning/templates/{name}

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name

All responses

Code Status Description Has headers Schema
204 No Content Ack schema

Responses

204 - Ack

Status: No Content

Schema

Ack

Get a specific alert rule by UID. (RouteGetAlertRule)

GET /api/v1/provisioning/alert-rules/{UID}

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string

All responses

Code Status Description Has headers Schema
200 OK AlertRule schema
400 Bad Request ValidationError schema

Responses

200 - AlertRule

Status: OK

Schema

AlertRule

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Get all the contact points. (RouteGetContactpoints)

GET /api/v1/provisioning/contact-points

All responses

Code Status Description Has headers Schema
200 OK Route schema
400 Bad Request ValidationError schema

Responses

200 - Route

Status: OK

Schema

Route

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Get a mute timing. (RouteGetMuteTiming)

GET /api/v1/provisioning/mute-timings/{name}

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name

All responses

Code Status Description Has headers Schema
200 OK MuteTimeInterval schema
400 Bad Request ValidationError schema

Responses

200 - MuteTimeInterval

Status: OK

Schema

MuteTimeInterval

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Get all the mute timings. (RouteGetMuteTimings)

GET /api/v1/provisioning/mute-timings

All responses

Code Status Description Has headers Schema
200 OK MuteTimings schema
400 Bad Request ValidationError schema

Responses

200 - MuteTimings

Status: OK

Schema

MuteTimings

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Get the notification policy tree. (RouteGetPolicyTree)

GET /api/v1/provisioning/policies

All responses

Code Status Description Has headers Schema
200 OK Route schema
400 Bad Request ValidationError schema

Responses

200 - Route

Status: OK

Schema

Route

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Get a message template. (RouteGetTemplate)

GET /api/v1/provisioning/templates/{name}

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name

All responses

Code Status Description Has headers Schema
200 OK MessageTemplate schema
404 Not Found NotFound schema

Responses

200 - MessageTemplate

Status: OK

Schema

MessageTemplate

404 - NotFound

Status: Not Found

Schema

NotFound

Get all message templates. (RouteGetTemplates)

GET /api/v1/provisioning/templates

All responses

Code Status Description Has headers Schema
200 OK MessageTemplate schema
400 Bad Request ValidationError schema

Responses

200 - MessageTemplate

Status: OK

Schema

MessageTemplate

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Create a new alert rule. (RoutePostAlertRule)

POST /api/v1/provisioning/alert-rules

Parameters

Name Source Type Go type Separator Required Default Description
Body body AlertRule models.AlertRule

All responses

Code Status Description Has headers Schema
201 Created AlertRule schema
400 Bad Request ValidationError schema

Responses

201 - AlertRule

Status: Created

Schema

AlertRule

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Create a contact point. (RoutePostContactpoints)

POST /api/v1/provisioning/contact-points

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
Body body EmbeddedContactPoint models.EmbeddedContactPoint

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema
400 Bad Request ValidationError schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Create a new mute timing. (RoutePostMuteTiming)

POST /api/v1/provisioning/mute-timings

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
Body body MuteTimeInterval models.MuteTimeInterval

All responses

Code Status Description Has headers Schema
201 Created MuteTimeInterval schema
400 Bad Request ValidationError schema

Responses

201 - MuteTimeInterval

Status: Created

Schema

MuteTimeInterval

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Update an existing alert rule. (RoutePutAlertRule)

PUT /api/v1/provisioning/alert-rules/{UID}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string
Body body AlertRule models.AlertRule

All responses

Code Status Description Has headers Schema
200 OK AlertRule schema
400 Bad Request ValidationError schema

Responses

200 - AlertRule

Status: OK

Schema

AlertRule

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Update the interval of a rule group. (RoutePutAlertRuleGroup)

PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
FolderUID path string string
Group path string string
Body body AlertRuleGroup models.AlertRuleGroup

All responses

Code Status Description Has headers Schema
200 OK AlertRuleGroup schema
400 Bad Request ValidationError schema

Responses

200 - AlertRuleGroup

Status: OK

Schema

AlertRuleGroup

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Update an existing contact point. (RoutePutContactpoint)

PUT /api/v1/provisioning/contact-points/{UID}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string UID should be the contact point unique identifier
Body body EmbeddedContactPoint models.EmbeddedContactPoint

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema
400 Bad Request ValidationError schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Replace an existing mute timing. (RoutePutMuteTiming)

PUT /api/v1/provisioning/mute-timings/{name}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name
Body body MuteTimeInterval models.MuteTimeInterval

All responses

Code Status Description Has headers Schema
200 OK MuteTimeInterval schema
400 Bad Request ValidationError schema

Responses

200 - MuteTimeInterval

Status: OK

Schema

MuteTimeInterval

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Sets the notification policy tree. (RoutePutPolicyTree)

PUT /api/v1/provisioning/policies

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
Body body Route models.Route

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema
400 Bad Request ValidationError schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Updates an existing template. (RoutePutTemplate)

PUT /api/v1/provisioning/templates/{name}

Consumes

  • application/json

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Template Name
Body body MessageTemplateContent models.MessageTemplateContent

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema
400 Bad Request ValidationError schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

400 - ValidationError

Status: Bad Request

Schema

ValidationError

AlertQuery

Properties

Name Type Go type Required Default Description Example
DatasourceUID string string Grafana data source unique identifier; it should be '-100' for a Server Side Expression operation.
Model object interface{} JSON is the raw JSON query and includes the above properties as well as custom properties.
QueryType string string QueryType is an optional identifier for the type of query.
It can be used to distinguish different types of queries.
RefID string string RefID is the unique identifier of the query, set by the frontend call.
relativeTimeRange RelativeTimeRange RelativeTimeRange

AlertRule

Properties

Name Type Go type Required Default Description Example
Annotations map of string map[string]string {"runbook_url":"https://supercoolrunbook.com/page/13"}
Condition string string A
Data []alertquery []*AlertQuery [{"datasourceUid":"-100","model":{"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":[]},"reducer":{"params":[],"type":"avg"},"type":"query"}],"datasource":{"type":"__expr__","uid":"__expr__"},"expression":"1 == 1","hide":false,"intervalMs":1000,"maxDataPoints":43200,"refId":"A","type":"math"},"queryType":"","refId":"A","relativeTimeRange":{"from":0,"to":0}}]
ExecErrState string string Allowed values: "OK", "Alerting", "Error"
FolderUID string string project_x
ID int64 (formatted integer) int64
Labels map of string map[string]string {"team":"sre-team-1"}
NoDataState string string Allowed values: "OK", "NoData", "Error"
OrgID int64 (formatted integer) int64
RuleGroup string string eval_group_1
Title string string Always firing
UID string string
Updated date-time (formatted string) strfmt.DateTime
for Duration Duration
provenance string Provenance

AlertRuleGroup

Properties

Name Type Go type Required Default Description Example
Interval int64 (formatted integer) int64

DayOfMonthRange

Properties

Name Type Go type Required Default Description Example
Begin int64 (formatted integer) int64
End int64 (formatted integer) int64

Duration

Name Type Go type Default Description Example
Duration int64 (formatted integer) int64

EmbeddedContactPoint

EmbeddedContactPoint is the contact point type that is used by grafanas embedded alertmanager implementation.

Properties

Name Type Go type Required Default Description Example
DisableResolveMessage boolean bool false
Name string string Name is used as grouping key in the UI. Contact points with the same name will be grouped in the UI. webhook_1
Provenance string string
Type string string webhook
UID string string UID is the unique identifier of the contact point. The UID can be set by the user. my_external_reference
settings object JSON

MatchType

Name Type Go type Default Description Example
MatchType int64 (formatted integer) int64 0 = MatchEqual, 1 = MatchNotEqual, 2 = MatchRegexp, 3 = MatchNotRegexp

Matcher

Properties

Name Type Go type Required Default Description Example
Name string string
Type MatchType MatchType
Value string string

Matchers

Matchers is a slice of Matchers that is sortable, implements Stringer, and provides a Matches method to match a LabelSet against all Matchers in the slice. Note that some users of Matchers might require it to be sorted.

[]matcher

MessageTemplate

Properties

Name Type Go type Required Default Description Example
Name string string
Template string string
provenance string Provenance

MessageTemplateContent

Properties

Name Type Go type Required Default Description Example
Template string string

MonthRange

Properties

Name Type Go type Required Default Description Example
Begin int64 (formatted integer) int64
End int64 (formatted integer) int64

MuteTimeInterval

Properties

Name Type Go type Required Default Description Example
Name string string
TimeIntervals []timeinterval []*TimeInterval

MuteTimings

[]mutetimeinterval

NotFound

interface{}

ObjectMatchers

Matchers

Inlined models

RelativeTimeRange

RelativeTimeRange is the per query start and end time for requests.

Properties

Name Type Go type Required Default Description Example
from Duration Duration
to Duration Duration

Route

A Route is a node that contains definitions of how to handle alerts.

Properties

Name Type Go type Required Default Description Example
Continue boolean bool
GroupByStr []string []string
MuteTimeIntervals []string []string
Receiver string string
Routes []route []*Route
group_interval Duration Duration
group_wait Duration Duration
object_matchers ObjectMatchers ObjectMatchers
provenance string Provenance
repeat_interval Duration Duration

TimeInterval

TimeInterval describes intervals of time. ContainsTime will tell you if a golang time is contained within the interval.

Properties

Name Type Go type Required Default Description Example
DaysOfMonth []dayofmonthrange []*DayOfMonthRange
Months []monthrange []*MonthRange
Times []timerange []*TimeRange
Weekdays []weekdayrange []*WeekdayRange
Years []yearrange []*YearRange

TimeRange

For example, 4:00PM to End of the day would Begin at 1020 and End at 1440.

Properties

Name Type Go type Required Default Description Example
EndMinute int64 (formatted integer) int64
StartMinute int64 (formatted integer) int64

ValidationError

Properties

Name Type Go type Required Default Description Example
Msg string string

WeekdayRange

Properties

Name Type Go type Required Default Description Example
Begin int64 (formatted integer) int64
End int64 (formatted integer) int64

YearRange

Properties

Name Type Go type Required Default Description Example
Begin int64 (formatted integer) int64
End int64 (formatted integer) int64