The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/docs/sources/shared/alerts/alerting_provisioning.md

107 KiB

labels title
[{products [enterprise oss]}] Alerting Provisioning HTTP API

The Alerting Provisioning HTTP API can be used to create, modify, and delete resources relevant to Grafana-managed alerts. This API is the one used by our Grafana Terraform provider.

For more information on the differences between Grafana-managed and data source-managed alerts, refer to Introduction to alert rules.

If you are running Grafana Enterprise, you need to add specific permissions for some endpoints. For more information, refer to Role-based access control permissions.

Grafana-managed endpoints

Note that the JSON format from most of the following endpoints is not fully compatible with provisioning via configuration JSON files.

Alert rules

Method URI Name Summary
DELETE /api/v1/provisioning/alert-rules/:uid route delete alert rule Delete a specific alert rule by UID.
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.
GET /api/v1/provisioning/alert-rules/:uid/export route get alert rule export Export an alert rule in provisioning file format.
GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group route get alert rule group Get a rule group.
PUT /api/v1/provisioning/folder/:folderUid/rule-groups/:group route put alert rule group Update the interval of a rule group or modify the rules of the group.
GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group/export route get alert rule group export Export an alert rule group in provisioning file format.
GET /api/v1/provisioning/alert-rules route get alert rules Get all the alert rules.
GET /api/v1/provisioning/alert-rules/export route get alert rules export Export all alert rules in provisioning file format.

Example request for new alert rule:

POST /api/v1/provisioning/alert-rules
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "title": "TEST-API_1",
  "ruleGroup": "API",
  "folderUID": "SET_FOLDER_UID",
  "noDataState": "OK",
  "execErrState": "OK",
  "for": "5m",
  "orgId": 1,
  "uid": "",
  "condition": "B",
  "annotations": {
    "summary": "test_api_1"
  },
  "labels": {
    "API": "test1"
  },
  "data": [
    {
      "refId": "A",
      "queryType": "",
      "relativeTimeRange": {
        "from": 600,
        "to": 0
      },
      "datasourceUid": "XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX",
      "model": {
        "expr": "up",
        "hide": false,
        "intervalMs": 1000,
        "maxDataPoints": 43200,
        "refId": "A"
      }
    },
    {
      "refId": "B",
      "queryType": "",
      "relativeTimeRange": {
        "from": 0,
        "to": 0
      },
      "datasourceUid": "-100",
      "model": {
        "conditions": [
          {
            "evaluator": {
              "params": [6],
              "type": "gt"
            },
            "operator": {
              "type": "and"
            },
            "query": {
              "params": ["A"]
            },
            "reducer": {
              "params": [],
              "type": "last"
            },
            "type": "query"
          }
        ],
        "datasource": {
          "type": "__expr__",
          "uid": "-100"
        },
        "hide": false,
        "intervalMs": 1000,
        "maxDataPoints": 43200,
        "refId": "B",
        "type": "classic_conditions"
      }
    }
  ]
}

Example Response:

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": 1,
  "uid": "XXXXXXXXX",
  "orgID": 1,
  "folderUID": "SET_FOLDER_UID",
  "ruleGroup": "API3",
  "title": "TEST-API_1",
  "condition": "B",
  "data": [
    {
      "refId": "A",
      "queryType": "",
      "relativeTimeRange": {
        "from": 600,
        "to": 0
      },
      "datasourceUid": "XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX",
      "model": {
        "expr": "up",
        "hide": false,
        "intervalMs": 1000,
        "maxDataPoints": 43200,
        "refId": "A"
      }
    },
    {
      "refId": "B",
      "queryType": "",
      "relativeTimeRange": {
        "from": 0,
        "to": 0
      },
      "datasourceUid": "-100",
      "model": {
        "conditions": [
          {
            "evaluator": {
              "params": [
                6
              ],
              "type": "gt"
            },
            "operator": {
              "type": "and"
            },
            "query": {
              "params": [
                "A"
              ]
            },
            "reducer": {
              "params": [],
              "type": "last"
            },
            "type": "query"
          }
        ],
        "datasource": {
          "type": "__expr__",
          "uid": "-100"
        },
        "hide": false,
        "intervalMs": 1000,
        "maxDataPoints": 43200,
        "refId": "B",
        "type": "classic_conditions"
      }
    }
  ],
  "updated": "2024-08-02T13:19:32.609640048Z",
  "noDataState": "OK",
  "execErrState": "OK",
  "for": "5m",
  "annotations": {
    "summary": "test_api_1"
  },
  "labels": {
    "API": "test1"
  },
  "provenance": "api",
  "isPaused": false,
  "notification_settings": null,
  "record": null
}

Contact points

Method URI Name Summary
DELETE /api/v1/provisioning/contact-points/:uid route delete contactpoints Delete a contact point.
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.
GET /api/v1/provisioning/contact-points/export route get contactpoints export Export all contact points in provisioning file format.

Example Request for all the contact points:

GET /api/v1/provisioning/contact-points
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example Response:

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "uid": "",
    "name": "email receiver",
    "type": "email",
    "settings": {
      "addresses": "<example@email.com>"
    },
    "disableResolveMessage": false
  }
]

Notification policies

Method URI Name Summary
DELETE /api/v1/provisioning/policies route reset policy tree Clears the notification policy tree.
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.
GET /api/v1/provisioning/policies/export route get policy tree export Export the notification policy tree in provisioning file format.

Example Request for exporting the notification policy tree in YAML format:

GET /api/v1/provisioning/policies/export?format=yaml
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example Response:

HTTP/1.1 200 OK
Content-Type: text/yaml

apiVersion: 1
policies:
    - orgId: 1
      receiver: My Contact Email Point
      group_by:
        - grafana_folder
        - alertname
      routes:
        - receiver: My Contact Email Point
          object_matchers:
            - - monitor
              - =
              - testdata
          mute_time_intervals:
            - weekends

Notification template groups

Template groups enable you to define multiple notification templates ({{ define "" }}) within a single group. They can be managed from the Grafana Alerting UI.

Method URI Name Summary
DELETE /api/v1/provisioning/templates/:name route delete template Delete a notification template group.
GET /api/v1/provisioning/templates/:name route get template Get a notification template group.
GET /api/v1/provisioning/templates route get template Get all notification template groups.
PUT /api/v1/provisioning/templates/:name route put template Create or update a notification template group.

Example Request for all notification template groups:

GET /api/v1/provisioning/templates
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example Response:

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "name": "custom_email.message",
    "template": "{{ define \"custom_email.message\" }}\n  Custom alert!\n{{ end }}",
    "provenance": "file"
  },
  {
    "name": "custom_email.subject",
    "template": "{{ define \"custom_email.subject\" }}\n{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)\n{{ end }}",
    "provenance": "file"
  }
]

Mute timings

Method URI Name Summary
DELETE /api/v1/provisioning/mute-timings/:name route delete mute timing Delete a mute timing.
GET /api/v1/provisioning/mute-timings/:name route get mute timing Get a mute timing.
GET /api/v1/provisioning/mute-timings route get mute timings Get all the mute timings.
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.
GET /api/v1/provisioning/mute-timings/export route get mute timings export Export all mute timings in provisioning file format.
GET /api/v1/provisioning/mute-timings/:name/export route get mute timing export Export a mute timing in provisioning file format.

Example Request for all mute timings:

GET /api/v1/provisioning/mute-timings
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example Response:

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "name": "weekends",
    "time_intervals": [
      {
        "weekdays": [
          "saturday",
          "sunday"
        ]
      }
    ],
    "version": "",
    "provenance": "file"
  }
]

Edit resources in the Grafana UI

By default, you cannot edit API-provisioned alerting resources in Grafana. To enable editing these resources in the Grafana UI, add the X-Disable-Provenance header to the following requests in the API:

  • POST /api/v1/provisioning/alert-rules
  • PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group} (calling this endpoint will change provenance for all alert rules within the alert group)
  • POST /api/v1/provisioning/contact-points
  • POST /api/v1/provisioning/mute-timings
  • PUT /api/v1/provisioning/policies
  • PUT /api/v1/provisioning/templates/{name}

To reset the notification policy tree to the default and unlock it for editing in the Grafana UI, use the DELETE /api/v1/provisioning/policies endpoint.

Data source-managed resources

The Alerting Provisioning HTTP API can only be used to manage Grafana-managed alert resources. To manage resources related to data source-managed alerts, consider the following tools:

  • mimirtool: to interact with the Mimir alertmanager and ruler configuration.
  • cortex-tools: to interact with the Cortex alertmanager and ruler configuration.
  • lokitool: to configure the Loki Ruler.

Alternatively, the Grafana Alerting API can be used to access data from data source-managed alerts. This API is primarily intended for internal usage, with the exception of the /api/v1/provisioning/ endpoints. It's important to note that internal APIs may undergo changes without prior notice and are not officially supported for user consumption.

For Prometheus, amtool can also be used to interact with the AlertManager API.

Paths

Delete a specific alert rule by UID. (RouteDeleteAlertRule)

DELETE /api/v1/provisioning/alert-rules/:uid

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
UID path string string Alert rule UID
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI

{{% /responsive-table %}}

All responses

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

Responses

204 - The alert rule was deleted successfully.

Status: No Content

Schema

Delete a contact point. (RouteDeleteContactpoints)

DELETE /api/v1/provisioning/contact-points/:uid

Parameters

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

All responses

Code Status Description Has headers Schema
204 No Content The contact point was deleted successfully. schema

Responses

204 - The contact point was deleted successfully.

Status: No Content

Schema

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 Mute timing name
version query string string Current version of the resource. Used for optimistic concurrency validation. Keep empty to bypass validation.

All responses

Code Status Description Has headers Schema
204 No Content The mute timing was deleted successfully. schema
409 Conflict GenericPublicError schema

Responses

204 - The mute timing was deleted successfully.

Status: No Content

Schema
409 - Conflict

Status: Conflict

Schema

GenericPublicError

Delete a notification template group. (RouteDeleteTemplate)

DELETE /api/v1/provisioning/templates/:name

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Name of the template group
version query string string Current version of the resource. Used for optimistic concurrency validation. Keep empty to bypass validation.

All responses

Code Status Description Has headers Schema
204 No Content The template was deleted successfully. schema
409 Conflict GenericPublicError schema

Responses

204 - The template was deleted successfully.

Status: No Content

Schema
409 - Conflict

Status: Conflict

Schema

GenericPublicError

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 Alert rule UID

All responses

Code Status Description Has headers Schema
200 OK ProvisionedAlertRule schema
404 Not Found Not found. schema

Responses

200 - ProvisionedAlertRule

Status: OK

Schema

ProvisionedAlertRule

404 - Not found.

Status: Not Found

Schema

Export an alert rule in provisioning file format. (RouteGetAlertRuleExport)

GET /api/v1/provisioning/alert-rules/:uid/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
UID path string string Alert rule UID
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

Code Status Description Has headers Schema
200 OK AlertingFileExport schema
404 Not Found Not found. schema

Responses

200 - AlertingFileExport

Status: OK

Schema

AlertingFileExport

404 - Not found.

Status: Not Found

Schema

Get a rule group. (RouteGetAlertRuleGroup)

GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group

Parameters

Name Source Type Go type Separator Required Default Description
FolderUID path string string
Group path string string

All responses

Code Status Description Has headers Schema
200 OK AlertRuleGroup schema
404 Not Found Not found. schema

Responses

200 - AlertRuleGroup

Status: OK

Schema

AlertRuleGroup

404 - Not found.

Status: Not Found

Schema

Export an alert rule group in provisioning file format. (RouteGetAlertRuleGroupExport)

GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
FolderUID path string string
Group path string string
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

Code Status Description Has headers Schema
200 OK AlertingFileExport schema
404 Not Found Not found. schema

Responses

200 - AlertingFileExport

Status: OK

Schema

AlertingFileExport

404 - Not found.

Status: Not Found

Schema

Get all the alert rules. (RouteGetAlertRules)

GET /api/v1/provisioning/alert-rules

All responses

Code Status Description Has headers Schema
200 OK ProvisionedAlertRules schema

Responses

200 - ProvisionedAlertRules

Status: OK

Schema

ProvisionedAlertRules

Export all alert rules in provisioning file format. (RouteGetAlertRulesExport)

GET /api/v1/provisioning/alert-rules/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

Code Status Description Has headers Schema
200 OK AlertingFileExport schema
404 Not Found Not found. schema

Responses

200 - AlertingFileExport

Status: OK

Schema

AlertingFileExport

404 - Not found.

Status: Not Found

Schema

Get all the contact points. (RouteGetContactpoints)

GET /api/v1/provisioning/contact-points

Parameters

Name Source Type Go type Separator Required Default Description
name query string string Filter by name

All responses

Code Status Description Has headers Schema
200 OK ContactPoints schema

Responses

200 - ContactPoints

Status: OK

Schema

ContactPoints

Export all contact points in provisioning file format. (RouteGetContactpointsExport)

GET /api/v1/provisioning/contact-points/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
decrypt query boolean bool Whether any contained secure settings should be decrypted or left redacted. Redacted settings will contain RedactedValue instead. Currently, only org admin can view decrypted secure settings.
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
name query string string Filter by name

All responses

Code Status Description Has headers Schema
200 OK AlertingFileExport schema
403 Forbidden PermissionDenied schema

Responses

200 - AlertingFileExport

Status: OK

Schema

AlertingFileExport

403 - PermissionDenied

Status: Forbidden

Schema

PermissionDenied

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 Mute timing name

All responses

Code Status Description Has headers Schema
200 OK MuteTimeInterval schema
404 Not Found Not found. schema

Responses

200 - MuteTimeInterval

Status: OK

Schema

MuteTimeInterval

404 - Not found.

Status: Not Found

Schema

Get all the mute timings. (RouteGetMuteTimings)

GET /api/v1/provisioning/mute-timings

All responses

Code Status Description Has headers Schema
200 OK MuteTimings schema

Responses

200 - MuteTimings

Status: OK

Schema

MuteTimings

Export all mute timings in provisioning file format. (RouteGetMuteTimingsExport)

GET /api/v1/provisioning/mute-timings/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

Code Status Description Has headers Schema
200 OK MuteTimingsExport schema
403 Forbidden PermissionDenied schema

Responses

200 - MuteTimingsExport

Status: OK

Schema

AlertingFileExport

403 - PermissionDenied

Status: Forbidden

Schema

PermissionDenied

Export a mute timing in provisioning file format. (RouteGetMuteTimingExport)

GET /api/v1/provisioning/mute-timings/:name/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Mute timing name.
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

Code Status Description Has headers Schema
200 OK MuteTimingExport schema
403 Forbidden PermissionDenied schema

Responses

200 - MuteTimingExport

Status: OK

Schema

AlertingFileExport

403 - PermissionDenied

Status: Forbidden

Schema

PermissionDenied

Get the notification policy tree. (RouteGetPolicyTree)

GET /api/v1/provisioning/policies

All responses

Code Status Description Has headers Schema
200 OK Route schema

Responses

200 - Route

Status: OK

Schema

Route

Export the notification policy tree in provisioning file format. (RouteGetPolicyTreeExport)

GET /api/v1/provisioning/policies/export

Produces

  • application/json
  • application/yaml
  • application/terraform+hcl
  • text/yaml
  • text/hcl

Parameters

Name Source Type Go type Separator Required Default Description
download query boolean bool Whether to initiate a download of the file or not.
format query string string "yaml" Format of the downloaded file, either yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.

All responses

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

Responses

200 - AlertingFileExport

Status: OK

Schema

AlertingFileExport

404 - NotFound

Status: Not Found

Schema

NotFound

Get a notification template group. (RouteGetTemplate)

GET /api/v1/provisioning/templates/:name

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Name of the template group

All responses

Code Status Description Has headers Schema
200 OK NotificationTemplate schema
404 Not Found GenericPublicError schema

Responses

200 - NotificationTemplate

Status: OK

Schema

NotificationTemplate

404 - Not found.

GenericPublicError

Schema

Get all notification template groups. (RouteGetTemplates)

GET /api/v1/provisioning/templates

All responses

Code Status Description Has headers Schema
200 OK NotificationTemplates schema

Responses

200 - NotificationTemplates

Status: OK

Schema

NotificationTemplates

Create a new alert rule. (RoutePostAlertRule)

POST /api/v1/provisioning/alert-rules

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body ProvisionedAlertRule models.ProvisionedAlertRule

{{% /responsive-table %}}

All responses

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

Responses

201 - ProvisionedAlertRule

Status: Created

Schema

ProvisionedAlertRule

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Create a contact point. (RoutePostContactpoints)

POST /api/v1/provisioning/contact-points

When creating a contact point, the EmbeddedContactPoint.name property determines if the new contact point is added to an existing one. In the UI, contact points with the same name are grouped together under a single contact point.

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body EmbeddedContactPoint models.EmbeddedContactPoint

{{% /responsive-table %}}

All responses

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

Responses

202 - EmbeddedContactPoint

Status: Accepted

Schema

EmbeddedContactPoint

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Create a new mute timing. (RoutePostMuteTiming)

POST /api/v1/provisioning/mute-timings

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body MuteTimeInterval models.MuteTimeInterval

{{% /responsive-table %}}

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

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
UID path string string Alert rule UID
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body ProvisionedAlertRule models.ProvisionedAlertRule

{{% /responsive-table %}}

All responses

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

Responses

200 - ProvisionedAlertRule

Status: OK

Schema

ProvisionedAlertRule

400 - ValidationError

Status: Bad Request

Schema

ValidationError

Update the interval or alert rules of a rule group. (RoutePutAlertRuleGroup)

PUT /api/v1/provisioning/folder/:folderUid/rule-groups/:group

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
FolderUID path string string
Group path string string
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body AlertRuleGroup models.AlertRuleGroup This action is idempotent and rules included in this body will overwrite configured rules for the group

{{% /responsive-table %}}

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

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
UID path string string UID is the contact point unique identifier
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body EmbeddedContactPoint models.EmbeddedContactPoint

{{% /responsive-table %}}

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

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
name path string string Mute timing name
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body MuteTimeInterval models.MuteTimeInterval

{{% /responsive-table %}}

All responses

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

Responses

200 - MuteTimeInterval

Status: OK

Schema

MuteTimeInterval

400 - ValidationError

Status: Bad Request

Schema

ValidationError

409 - Conflict

Status: Conflict

Schema

GenericPublicError

Sets the notification policy tree. (RoutePutPolicyTree)

PUT /api/v1/provisioning/policies

Parameters

{{% responsive-table %}}

Name Source Type Go type Separator Required Default Description
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body Route models.Route The new notification routing tree to use

{{% /responsive-table %}}

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 or update a notification template group. (RoutePutTemplate)

PUT /api/v1/provisioning/templates/:name

{{% responsive-table %}}

Parameters

Name Source Type Go type Separator Required Default Description
name path string string Name of the template group
X-Disable-Provenance: true header string string Allows editing of provisioned resources in the Grafana UI
Body body NotificationTemplateContent models.NotificationTemplateContent

{{% /responsive-table %}}

All responses

Code Status Description Has headers Schema
202 Accepted NotificationTemplate schema
400 Bad Request GenericPublicError schema
409 Conflict GenericPublicError schema

Responses

202 - NotificationTemplate

Status: Accepted

Schema

NotificationTemplate

400 - ValidationError

Status: Bad Request

Schema

GenericPublicError

409 - Conflict

Status: Conflict

Schema

GenericPublicError

Clears the notification policy tree. (RouteResetPolicyTree)

DELETE /api/v1/provisioning/policies

All responses

Code Status Description Has headers Schema
202 Accepted Ack schema

Responses

202 - Ack

Status: Accepted

Schema

Ack

Models

Ack

interface{}

AlertQuery

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
datasourceUid string string Grafana data source unique identifier; it should be 'expr' for a Server Side Expression operation.
model interface{} 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

{{% /responsive-table %}}

AlertQueryExport

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
datasourceUid string string
model interface{} interface{}
queryType string string
refId string string
relativeTimeRange RelativeTimeRange RelativeTimeRange

{{% /responsive-table %}}

AlertRuleExport

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
annotations map of string map[string]string
condition string string
dashboardUid string string
data []AlertQueryExport []*AlertQueryExport
execErrState string string
for Duration Duration
isPaused boolean bool
labels map of string map[string]string
noDataState string string
panelId int64 (formatted integer) int64
title string string
uid string string

{{% /responsive-table %}}

AlertRuleGroup

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
folderUid string string
interval int64 (formatted integer) int64
rules []ProvisionedAlertRule []*ProvisionedAlertRule
title string string

{{% /responsive-table %}}

AlertRuleGroupExport

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
folder string string
interval Duration Duration
name string string
orgId int64 (formatted integer) int64
rules []AlertRuleExport []*AlertRuleExport

{{% /responsive-table %}}

AlertingFileExport

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
apiVersion int64 (formatted integer) int64
contactPoints []ContactPointExport []*ContactPointExport
groups []AlertRuleGroupExport []*AlertRuleGroupExport
policies []NotificationPolicyExport []*NotificationPolicyExport

{{% /responsive-table %}}

ContactPointExport

Properties

Name Type Go type Required Default Description Example
name string string
orgId int64 (formatted integer) int64
receivers []ReceiverExport []*ReceiverExport

ContactPoints

[]EmbeddedContactPoint

Duration

Name Type Go type Default Description Example
Duration string int64

EmbeddedContactPoint

EmbeddedContactPoint is the contact point type used by Grafana-managed alerts.

When creating a contact point, the EmbeddedContactPoint.name property determines if the new contact point is added to an existing one. In the UI, contact points with the same name are grouped together under a single contact point.

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
disableResolveMessage boolean bool false
name string string name groups multiple contact points with the same name in the UI. webhook_1
provenance string string
settings JSON JSON
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

{{% /responsive-table %}}

Json

interface{}

MatchRegexps

MatchRegexps

MatchType

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

Matcher

Properties

{{% responsive-table %}}

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

{{% /responsive-table %}}

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

MuteTimeInterval

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
name string string
time_intervals []TimeInterval []*TimeInterval
version string string Version of resource

{{% /responsive-table %}}

MuteTimingExport

Properties

MuteTimingsExport

Properties

MuteTimings

[]MuteTimeInterval

NotFound

interface{}

NotificationPolicyExport

Properties

Name Type Go type Required Default Description Example
Policy RouteExport RouteExport inline
orgId int64 (formatted integer) int64

NotificationTemplate

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
name string string
provenance Provenance Provenance
template string string
version string string Version of resource

{{% /responsive-table %}}

NotificationTemplateContent

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
template string string
version string string Version of resource. Should be empty for new templates.

{{% /responsive-table %}}

NotificationTemplates

[]NotificationTemplate

ObjectMatchers

Matchers

Inlined models

PermissionDenied

interface{}

Provenance

Name Type Go type Default Description Example
Provenance string string

ProvisionedAlertRule

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
annotations map of string map[string]string Optional key-value pairs. dashboardUId and panelId must be set together; one cannot be set without the other. {"runbook_url":"https://supercoolrunbook.com/page/13"}
condition string string A
data []AlertQuery []*AlertQuery [{"datasourceUid":"__expr__","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
folderUID string string project_x
for Duration Duration
id int64 (formatted integer) int64
isPaused boolean bool false
labels map of string map[string]string {"team":"sre-team-1"}
noDataState string string
orgID int64 (formatted integer) int64
provenance Provenance Provenance
ruleGroup string string eval_group_1
title string string Always firing
uid string string
updated date-time (formatted string) strfmt.DateTime

{{% /responsive-table %}}

ProvisionedAlertRules

[]ProvisionedAlertRule

RawMessage

interface{}

ReceiverExport

Properties

Name Type Go type Required Default Description Example
disableResolveMessage boolean bool
settings RawMessage RawMessage
type string string
uid string string

Regexp

A Regexp is safe for concurrent use by multiple goroutines, except for configuration methods, such as Longest.

interface{}

RelativeTimeRange

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

Properties

{{% responsive-table %}}

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

{{% /responsive-table %}}

Route

A Route is a node that contains definitions of how to handle alerts. This is modified from the upstream alertmanager in that it adds the ObjectMatchers property.

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
continue boolean bool
group_by []string []string
group_interval string string
group_wait string string
match map of string map[string]string Deprecated. Remove before v1.0 release.
match_re MatchRegexps MatchRegexps
matchers Matchers Matchers
mute_time_intervals []string []string
object_matchers ObjectMatchers ObjectMatchers
provenance Provenance Provenance
receiver string string
repeat_interval string string
routes []Route []*Route

{{% /responsive-table %}}

RouteExport

RouteExport is the provisioned file export of definitions.Route. This is needed to hide fields that aren't usable in provisioning file format. An alternative would be to define a custom MarshalJSON and MarshalYAML that excludes them.

Properties

Name Type Go type Required Default Description Example
continue boolean bool
group_by []string []string
group_interval string string
group_wait string string
match map of string map[string]string Deprecated. Remove before v1.0 release.
match_re MatchRegexps MatchRegexps
matchers Matchers Matchers
mute_time_intervals []string []string
object_matchers ObjectMatchers ObjectMatchers
receiver string string
repeat_interval string string
routes []RouteExport []*RouteExport

TimeInterval

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

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
days_of_month []string []string
location string string
months []string []string
times []TimeRange []*TimeRange
weekdays []string []string
years []string []string

{{% /responsive-table %}}

TimeRange

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

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
end_time string string "end_time": "24:00"
start_time string string "start_time": "18:00"

{{% /responsive-table %}}

ValidationError

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
msg string string error message

{{% /responsive-table %}}

GenericPublicError

Properties

{{% responsive-table %}}

Name Type Go type Required Default Description Example
statusCode string string HTTP Status Code
messageId string string Unique code of the error
message string string Error message
extra map of any map[string]any Extra information about the error. Format is specific to the error code.

{{% /responsive-table %}}