使用 HTTP API 管理告警资源
告警预置 HTTP API 可用于创建、修改和删除与 Grafana 管理的告警相关的资源。我们的 Grafana Terraform provider 使用此 API。
有关 Grafana 管理的告警和数据源管理的告警之间区别的更多信息,请参阅告警规则简介。
如果您运行的是 Grafana Enterprise,则需要为某些端点添加特定权限。有关更多信息,请参阅基于角色的访问控制权限。
Grafana 管理的端点
注意
在告警预置 HTTP API 中,端点使用的 JSON 格式与
export
端点返回的格式不同。
export
端点允许您以适合通过文件预置的 JSON 格式导出告警资源。但是,此格式不能用于通过 HTTP API 更新资源。
告警规则
方法 | URI | 名称 | 摘要 |
---|---|---|---|
DELETE | /api/v1/provisioning/alert-rules/:uid | route delete alert rule | 通过 UID 删除特定的告警规则。 |
GET | /api/v1/provisioning/alert-rules/:uid | route get alert rule | 通过 UID 获取特定的告警规则。 |
POST | /api/v1/provisioning/alert-rules | route post alert rule | 创建新的告警规则。 |
PUT | /api/v1/provisioning/alert-rules/:uid | route put alert rule | 更新现有告警规则。 |
GET | /api/v1/provisioning/alert-rules/:uid/export | route get alert rule export | 以预置文件格式导出告警规则。 |
GET | /api/v1/provisioning/folder/:folderUid/rule-groups/:group | route get alert rule group | 获取规则组。 |
PUT | /api/v1/provisioning/folder/:folderUid/rule-groups/:group | route put alert rule group | 更新规则组的间隔或修改组的规则。 |
GET | /api/v1/provisioning/folder/:folderUid/rule-groups/:group/export | route get alert rule group export | 以预置文件格式导出告警规则组。 |
GET | /api/v1/provisioning/alert-rules | route get alert rules | 获取所有告警规则。 |
GET | /api/v1/provisioning/alert-rules/export | route get alert rules export | 以预置文件格式导出所有告警规则。 |
创建新告警规则的请求示例
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"
}
}
]
}
响应示例
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
}
联系点
方法 | URI | 名称 | 摘要 |
---|---|---|---|
DELETE | /api/v1/provisioning/contact-points/:uid | route delete contactpoints | 删除联系点。 |
GET | /api/v1/provisioning/contact-points | route get contactpoints | 获取所有联系点。 |
POST | /api/v1/provisioning/contact-points | route post contactpoints | 创建联系点。 |
PUT | /api/v1/provisioning/contact-points/:uid | route put contactpoint | 更新现有联系点。 |
GET | /api/v1/provisioning/contact-points/export | route get contactpoints export | 以预置文件格式导出所有联系点。 |
获取所有联系点的请求示例
GET /api/v1/provisioning/contact-points
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"uid": "",
"name": "email receiver",
"type": "email",
"settings": {
"addresses": "<example@email.com>"
},
"disableResolveMessage": false
}
]
通知策略
方法 | URI | 名称 | 摘要 |
---|---|---|---|
DELETE | /api/v1/provisioning/policies | route reset policy tree | 清除通知策略树。 |
GET | /api/v1/provisioning/policies | route get policy tree | 获取通知策略树。 |
PUT | /api/v1/provisioning/policies | route put policy tree | 设置通知策略树。 |
GET | /api/v1/provisioning/policies/export | route get policy tree export | 以预置文件格式导出通知策略树。 |
以 YAML 格式导出通知策略树的请求示例
GET /api/v1/provisioning/policies/export?format=yaml
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
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
通知模板组
模板组允许您在单个组中定义多个通知模板 ({{ define "" }}
)。它们可以通过 Grafana Alerting UI 进行管理。
方法 | URI | 名称 | 摘要 |
---|---|---|---|
DELETE | /api/v1/provisioning/templates/:name | route delete template | 删除通知模板组。 |
GET | /api/v1/provisioning/templates/:name | route get template | 获取通知模板组。 |
GET | /api/v1/provisioning/templates | route get template | 获取所有通知模板组。 |
PUT | /api/v1/provisioning/templates/:name | route put template | 创建或更新通知模板组。 |
获取所有通知模板组的请求示例
GET /api/v1/provisioning/templates
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
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"
}
]
静默时间
方法 | URI | 名称 | 摘要 |
---|---|---|---|
DELETE | /api/v1/provisioning/mute-timings/:name | route delete mute timing | 删除静默时间。 |
GET | /api/v1/provisioning/mute-timings/:name | route get mute timing | 获取静默时间。 |
GET | /api/v1/provisioning/mute-timings | route get mute timings | 获取所有静默时间。 |
POST | /api/v1/provisioning/mute-timings | route post mute timing | 创建新的静默时间。 |
PUT | /api/v1/provisioning/mute-timings/:name | route put mute timing | 替换现有静默时间。 |
GET | /api/v1/provisioning/mute-timings/export | route get mute timings export | 以预置文件格式导出所有静默时间。 |
GET | /api/v1/provisioning/mute-timings/:name/export | route get mute timing export | 以预置文件格式导出静默时间。 |
获取所有静默时间的请求示例
GET /api/v1/provisioning/mute-timings
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name": "weekends",
"time_intervals": [
{
"weekdays": [
"saturday",
"sunday"
]
}
],
"version": "",
"provenance": "file"
}
]
在 Grafana UI 中编辑资源
默认情况下,您无法在 Grafana 中编辑通过 API 预置的告警资源。
要在 Grafana UI 中启用编辑这些资源,请在以下 API 请求中添加 X-Disable-Provenance: true
标头:
POST /api/v1/provisioning/alert-rules
PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}
(此端点会更改告警组中所有告警规则的出处)POST /api/v1/provisioning/contact-points
POST /api/v1/provisioning/mute-timings
PUT /api/v1/provisioning/templates/{name}
PUT /api/v1/provisioning/policies
要将通知策略树重置为默认值并在 Grafana UI 中解锁其编辑功能,请使用:
DELETE /api/v1/provisioning/policies
数据源管理的资源
告警预置 HTTP API 只能用于管理 Grafana 管理的告警资源。要管理与数据源管理的告警相关的资源,请考虑以下工具:
- mimirtool:用于与 Mimir alertmanager 和 ruler 配置进行交互。
- cortex-tools:用于与 Cortex alertmanager 和 ruler 配置进行交互。
- lokitool:用于配置 Loki Ruler。
此外,Grafana Alerting API 可用于访问数据源管理的告警数据。此 API 主要用于内部使用,/api/v1/provisioning/
端点除外。需要注意的是,内部 API 可能会在未提前通知的情况下发生变化,并且不正式支持用户使用。
对于 Prometheus,还可以使用 amtool
与 AlertManager API 进行交互。
路径
通过 UID 删除特定的告警规则。(RouteDeleteAlertRule)
DELETE /api/v1/provisioning/alert-rules/:uid
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
UID | path | string | string | ✓ | 告警规则 UID | |
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
204 | 无内容 | 告警规则删除成功。 | schema |
响应
204 - 告警规则删除成功。
状态:无内容
Schema
删除联系点。(RouteDeleteContactpoints)
DELETE /api/v1/provisioning/contact-points/:uid
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
UID | path | string | string | ✓ | UID 是联系点的唯一标识符 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
204 | 无内容 | 联系点删除成功。 | schema |
响应
204 - 联系点删除成功。
状态:无内容
Schema
删除静默时间。(RouteDeleteMuteTiming)
DELETE /api/v1/provisioning/mute-timings/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 静默时间名称 | |
version | query | string | string | 资源的当前版本。用于乐观并发验证。留空以跳过验证。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
204 | 无内容 | 静默时间删除成功。 | schema | |
409 | 冲突 | GenericPublicError | schema |
响应
204 - 静默时间删除成功。
状态:无内容
Schema
409 - 冲突
状态:冲突
Schema
删除通知模板组。(RouteDeleteTemplate)
DELETE /api/v1/provisioning/templates/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 模板组名称 | |
version | query | string | string | 资源的当前版本。用于乐观并发验证。留空以跳过验证。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
204 | 无内容 | 模板删除成功。 | schema | |
409 | 冲突 | GenericPublicError | schema |
响应
204 - 模板删除成功。
状态:无内容
Schema
409 - 冲突
状态:冲突
Schema
通过 UID 获取特定的告警规则。(RouteGetAlertRule)
GET /api/v1/provisioning/alert-rules/:uid
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
UID | path | string | string | ✓ | 告警规则 UID |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | ProvisionedAlertRule | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - ProvisionedAlertRule
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
以预置文件格式导出告警规则。(RouteGetAlertRuleExport)
GET /api/v1/provisioning/alert-rules/:uid/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
UID | path | string | string | ✓ | 告警规则 UID | |
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertingFileExport | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - AlertingFileExport
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
获取规则组。(RouteGetAlertRuleGroup)
GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
FolderUID | path | string | string | ✓ | ||
Group | path | string | string | ✓ |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertRuleGroup | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - AlertRuleGroup
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
以预置文件格式导出告警规则组。(RouteGetAlertRuleGroupExport)
GET /api/v1/provisioning/folder/:folderUid/rule-groups/:group/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
FolderUID | path | string | string | ✓ | ||
Group | path | string | string | ✓ | ||
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertingFileExport | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - AlertingFileExport
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
获取所有告警规则。(RouteGetAlertRules)
GET /api/v1/provisioning/alert-rules
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | ProvisionedAlertRules | schema |
响应
200 - ProvisionedAlertRules
状态:OK
Schema
以预置文件格式导出所有告警规则。(RouteGetAlertRulesExport)
GET /api/v1/provisioning/alert-rules/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertingFileExport | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - AlertingFileExport
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
获取所有联系点。(RouteGetContactpoints)
GET /api/v1/provisioning/contact-points
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | query | string | string | 按名称过滤 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | ContactPoints | schema |
响应
200 - ContactPoints
状态:OK
Schema
以预置文件格式导出所有联系点。(RouteGetContactpointsExport)
GET /api/v1/provisioning/contact-points/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
decrypt | query | boolean | bool | 是否解密包含的任何安全设置,还是保持匿名。匿名设置将包含 RedactedValue。目前,只有组织管理员可以查看解密后的安全设置。 | ||
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 | |
name | query | string | string | 按名称过滤 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertingFileExport | schema | |
403 | 禁止访问 | PermissionDenied | schema |
响应
200 - AlertingFileExport
状态:OK
Schema
403 - PermissionDenied
状态:禁止访问
Schema
获取静默时间。(RouteGetMuteTiming)
GET /api/v1/provisioning/mute-timings/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 静默时间名称 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | MuteTimeInterval | schema | |
404 | 未找到 | 未找到。 | schema |
响应
200 - MuteTimeInterval
状态:OK
Schema
404 - 未找到。
状态:未找到
Schema
获取所有静默时间。(RouteGetMuteTimings)
GET /api/v1/provisioning/mute-timings
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | MuteTimings | schema |
响应
200 - MuteTimings
状态:OK
Schema
以预置文件格式导出所有静默时间。(RouteGetMuteTimingsExport)
GET /api/v1/provisioning/mute-timings/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | MuteTimingsExport | schema | |
403 | 禁止访问 | PermissionDenied | schema |
响应
200 - MuteTimingsExport
状态:OK
Schema
403 - PermissionDenied
状态:禁止访问
Schema
以预置文件格式导出静默时间。(RouteGetMuteTimingExport)
GET /api/v1/provisioning/mute-timings/:name/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 静默时间名称。 | |
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | MuteTimingExport | schema | |
403 | 禁止访问 | PermissionDenied | schema |
响应
200 - MuteTimingExport
状态:OK
Schema
403 - PermissionDenied
状态:禁止访问
Schema
获取通知策略树。(RouteGetPolicyTree)
GET /api/v1/provisioning/policies
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | Route | schema |
响应
200 - Route
状态:OK
Schema
以预置文件格式导出通知策略树。(RouteGetPolicyTreeExport)
GET /api/v1/provisioning/policies/export
生成
application/json
application/yaml
application/terraform+hcl
text/yaml
text/hcl
这些输出用于文件预置或 Terraform 预置,它们(包括 JSON 输出)不能用于通过 HTTP API 更新资源。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
download | query | boolean | bool | 是否开始下载文件。 | ||
format | query | string | string | yaml | 下载文件的格式,可以是 yaml , json 或 hcl 。也可以使用 Accept 标头,但查询参数优先。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertingFileExport | schema | |
404 | 未找到 | 未找到 | schema |
响应
200 - AlertingFileExport
状态:OK
Schema
404 - NotFound
状态:未找到
Schema
获取通知模板组。(RouteGetTemplate)
GET /api/v1/provisioning/templates/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 模板组名称 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | NotificationTemplate | schema | |
404 | 未找到 | GenericPublicError | schema |
响应
200 - NotificationTemplate
状态:OK
Schema
404 - 未找到。
Schema
获取所有通知模板组。(RouteGetTemplates)
GET /api/v1/provisioning/templates
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | NotificationTemplates | schema |
响应
200 - NotificationTemplates
状态:OK
Schema
创建新的告警规则。(RoutePostAlertRule)
POST /api/v1/provisioning/alert-rules
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | ProvisionedAlertRule | models.ProvisionedAlertRule |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
201 | 已创建 | ProvisionedAlertRule | schema | |
400 | 错误请求 | ValidationError | schema |
响应
201 - ProvisionedAlertRule
状态:已创建
Schema
400 - ValidationError
状态:错误请求
Schema
创建联系点。(RoutePostContactpoints)
POST /api/v1/provisioning/contact-points
创建联系点时,EmbeddedContactPoint.name
属性决定新联系点是添加到现有联系点中。在 UI 中,同名的联系点会归类到同一个联系点下。
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | EmbeddedContactPoint | models.EmbeddedContactPoint |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
202 | 已接受 | EmbeddedContactPoint | schema | |
400 | 错误请求 | ValidationError | schema |
响应
202 - EmbeddedContactPoint
状态:已接受
Schema
400 - ValidationError
状态:错误请求
Schema
创建新的静默时间。(RoutePostMuteTiming)
POST /api/v1/provisioning/mute-timings
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | MuteTimeInterval | models.MuteTimeInterval |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
201 | 已创建 | MuteTimeInterval | schema | |
400 | 错误请求 | ValidationError | schema |
响应
201 - MuteTimeInterval
状态:已创建
Schema
400 - ValidationError
状态:错误请求
Schema
更新现有告警规则。(RoutePutAlertRule)
PUT /api/v1/provisioning/alert-rules/:uid
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | |
---|---|---|---|---|---|---|---|
UID | path | string | string | ✓ | 告警规则 UID | ||
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | |||
Body | body | ProvisionedAlertRule | models.ProvisionedAlertRule |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | ProvisionedAlertRule | schema | |
400 | 错误请求 | ValidationError | schema |
响应
200 - ProvisionedAlertRule
状态:OK
Schema
400 - ValidationError
状态:错误请求
Schema
更新规则组的间隔或告警规则。(RoutePutAlertRuleGroup)
PUT /api/v1/provisioning/folder/:folderUid/rule-groups/:group
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
FolderUID | path | string | string | ✓ | ||
Group | path | string | string | ✓ | ||
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | AlertRuleGroup | models.AlertRuleGroup | 此操作是幂等的,此 body 中包含的规则将覆盖该组已配置的规则。 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | AlertRuleGroup | schema | |
400 | 错误请求 | ValidationError | schema |
响应
200 - AlertRuleGroup
状态:OK
Schema
400 - ValidationError
状态:错误请求
Schema
更新现有联系点。(RoutePutContactpoint)
PUT /api/v1/provisioning/contact-points/:uid
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
UID | path | string | string | ✓ | UID 是联系点的唯一标识符 | |
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | EmbeddedContactPoint | models.EmbeddedContactPoint |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
202 | 已接受 | Ack | schema | |
400 | 错误请求 | ValidationError | schema |
响应
202 - Ack
状态:已接受
Schema
400 - ValidationError
状态:错误请求
Schema
替换现有静默时间。(RoutePutMuteTiming)
PUT /api/v1/provisioning/mute-timings/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
name | path | string | string | ✓ | 静默时间名称 | |
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | MuteTimeInterval | models.MuteTimeInterval |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
200 | OK | MuteTimeInterval | schema | |
400 | 错误请求 | ValidationError | schema | |
409 | 冲突 | GenericPublicError | schema |
响应
200 - MuteTimeInterval
状态:OK
Schema
400 - ValidationError
状态:错误请求
Schema
409 - 冲突
状态:冲突
Schema
设置通知策略树。(RoutePutPolicyTree)
警告
由于策略树是单个资源,对其进行预置会覆盖通知策略树中的所有策略。但是,这不影响告警规则直接选择联系点时创建的内部策略。
PUT /api/v1/provisioning/policies
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|---|---|
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | ||
Body | body | Route | models.Route | 要使用的新通知路由树 |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
202 | 已接受 | Ack | schema | |
400 | 错误请求 | ValidationError | schema |
响应
202 - 确认
状态:已接受
模式
400 - 验证错误
状态:错误请求
模式
创建或更新通知模板组。(RoutePutTemplate)
PUT /api/v1/provisioning/templates/:name
参数
名称 | 来源 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | |
---|---|---|---|---|---|---|---|
name | path | string | string | ✓ | 模板组名称 | ||
X-Disable-Provenance: true | header | string | string | 允许在 Grafana UI 中编辑预置的资源 | |||
Body | body | NotificationTemplateContent | models.NotificationTemplateContent |
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
202 | 已接受 | NotificationTemplate | schema | |
400 | 错误请求 | GenericPublicError | schema | |
409 | 冲突 | GenericPublicError | schema |
响应
202 - 通知模板
状态:已接受
模式
400 - 验证错误
状态:错误请求
模式
409 - 冲突
状态:冲突
模式
清除通知策略树。(RouteResetPolicyTree)
DELETE /api/v1/provisioning/policies
所有响应
代码 | 状态 | 描述 | 包含标头 | Schema |
---|---|---|---|---|
202 | 已接受 | Ack | schema |
响应
202 - 确认
状态:已接受
模式
模型
确认
AlertQuery
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
datasourceUid | string | string | Grafana 数据源唯一标识符;对于服务器端表达式操作,它应为 'expr'。 | |||
model | interface{} | interface{} | JSON 是原始 JSON 查询,包含上述属性以及自定义属性。 | |||
queryType | string | string | QueryType 是查询类型的可选标识符。可用于区分不同类型的查询。 | |||
refId | string | string | RefID 是查询的唯一标识符,由前端调用设置。 | |||
relativeTimeRange | RelativeTimeRange | RelativeTimeRange |
AlertQueryExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
datasourceUid | string | string | ||||
model | interface{} | interface{} | ||||
queryType | string | string | ||||
refId | string | string | ||||
relativeTimeRange | RelativeTimeRange | RelativeTimeRange |
AlertRuleExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
annotations | string 映射 | map[string]string | ||||
condition | string | string | ||||
dashboardUid | string | string | ||||
data | [] AlertQueryExport | []*AlertQueryExport | ||||
execErrState | string | string | ||||
for | Duration | Duration | ||||
isPaused | boolean | bool | ||||
labels | string 映射 | map[string]string | ||||
noDataState | string | string | ||||
panelId | int64 (格式化整数) | int64 | ||||
title | string | string | ||||
uid | string | string |
AlertRuleGroup
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
folderUid | string | string | ||||
interval | int64 (格式化整数) | int64 | ||||
rules | [] ProvisionedAlertRule | []*ProvisionedAlertRule | ||||
title | string | string |
AlertRuleGroupExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
folder | string | string | ||||
interval | Duration | Duration | ||||
name | string | string | ||||
orgId | int64 (格式化整数) | int64 | ||||
rules | [] AlertRuleExport | []*AlertRuleExport |
AlertingFileExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
apiVersion | int64 (格式化整数) | int64 | ||||
contactPoints | [] ContactPointExport | []*ContactPointExport | ||||
groups | [] AlertRuleGroupExport | []*AlertRuleGroupExport | ||||
policies | [] NotificationPolicyExport | []*NotificationPolicyExport |
ContactPointExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
name | string | string | ||||
orgId | int64 (格式化整数) | int64 | ||||
receivers | [] ReceiverExport | []*ReceiverExport |
ContactPoints
Duration
名称 | 类型 | Go 类型 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|
Duration | string | int64 |
EmbeddedContactPoint
EmbeddedContactPoint 是 Grafana 管理的告警使用的联系点类型。
创建联系点时,EmbeddedContactPoint.name
属性决定新联系点是添加到现有联系点中。在 UI 中,同名的联系点会归类到同一个联系点下。
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
disableResolveMessage | boolean | bool | false | |||
name | string | string | name 在 UI 中将具有相同名称的多个联系点分组。 | webhook_1 | ||
provenance | string | string | ||||
settings | JSON | JSON | ✓ | |||
type | string | string | ✓ | webhook | ||
uid | string | string | UID 是联系点的唯一标识符。用户可以设置 UID。 | my_external_reference |
Json
MatchRegexps
MatchType
名称 | 类型 | Go 类型 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|
MatchType | int64 (格式化整数) | int64 |
Matcher
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
名称 | string | string | ||||
类型 | MatchType | MatchType | ||||
Value | string | string |
Matchers
Matchers 是 Matcher 的一个切片,可排序,实现了 Stringer 接口,并提供 Matches 方法来匹配 LabelSet 与切片中的所有 Matcher。请注意,一些 Matcher 的使用者可能要求对其进行排序。
[] Matcher
MuteTimeInterval
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
name | string | string | ||||
time_intervals | [] TimeInterval | []*TimeInterval | ||||
version | string | string | 资源版本 |
MuteTimingExport
属性
MuteTimingsExport
属性
MuteTimings
未找到
NotificationPolicyExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
Policy | RouteExport | RouteExport | inline | |||
orgId | int64 (格式化整数) | int64 |
通知模板
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
name | string | string | ||||
provenance | Provenance | Provenance | ||||
template | string | string | ||||
version | string | string | 资源版本 |
NotificationTemplateContent
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
template | string | string | ||||
version | string | string | 资源版本。对于新模板应为空。 |
NotificationTemplates
ObjectMatchers
内联模型
权限被拒绝
Provenance
名称 | 类型 | Go 类型 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|
Provenance | string | string |
ProvisionedAlertRule
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
annotations | string 映射 | map[string]string | 可选的键值对。__dashboardUid__ 和 __panelId__ 必须同时设置;两者不能分开设置。 | {"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 (格式化整数) | int64 | ||||
isPaused | boolean | bool | false | |||
labels | string 映射 | map[string]string | {"team":"sre-team-1"} | |||
noDataState | string | string | ✓ | |||
orgID | int64 (格式化整数) | `int64 | ✓ | |||
provenance | Provenance | Provenance | ||||
ruleGroup | string | string | ✓ | eval_group_1 | ||
title | string | string | ✓ | 总是触发 | ||
uid | string | string | ||||
updated | 日期时间(格式化字符串) | strfmt.DateTime |
ProvisionedAlertRules
RawMessage
ReceiverExport
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
disableResolveMessage | boolean | bool | ||||
settings | RawMessage | RawMessage | ||||
type | string | string | ||||
uid | string | string |
Regexp
Regexp 对于多个 goroutine 的并发使用是安全的,但配置方法(例如 Longest)除外。
RelativeTimeRange
RelativeTimeRange 是每个请求的每查询开始时间和结束时间。
属性
Route
Route 是一个包含如何处理告警定义的节点。它是在上游 alertmanager 的基础上修改而来,增加了 ObjectMatchers 属性。
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
continue | boolean | bool | ||||
group_by | []string | []string | ||||
group_interval | string | string | ||||
group_wait | string | string | ||||
match | string 映射 | map[string]string | 已弃用。请在 v1.0 发布前移除。 | |||
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 |
RouteExport
RouteExport 是 definitions.Route 的预置文件导出。这需要隐藏在预置文件格式中不可用的字段。另一种方法是定义一个排除这些字段的自定义 MarshalJSON 和 MarshalYAML。
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
continue | boolean | bool | ||||
group_by | []string | []string | ||||
group_interval | string | string | ||||
group_wait | string | string | ||||
match | string 映射 | map[string]string | 已弃用。请在 v1.0 发布前移除。 | |||
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 描述时间间隔。ContainsTime 会告诉你一个 golang 时间是否包含在该间隔内。
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
days_of_month | []string | []string | ||||
location | string | string | ||||
months | []string | []string | ||||
times | [] TimeRange | []*TimeRange | ||||
weekdays | []string | []string | ||||
years | []string | []string |
TimeRange
例如,下午 4:00 到一天结束将从 1020 开始,到 1440 结束。
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
end_time | string | string | "end_time": "24:00" | |||
start_time | string | string | "start_time": "18:00" |
验证错误
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
msg | string | string | 错误消息 |
GenericPublicError
属性
名称 | 类型 | Go 类型 | 必需 | 默认值 | 描述 | 示例 |
---|---|---|---|---|---|---|
statusCode | string | string | ✓ | HTTP 状态码 | ||
messageId | string | string | ✓ | 错误的唯一代码 | ||
message | string | string | 错误消息 | |||
extra | any 映射 | map[string]any | 关于错误的额外信息。格式取决于错误代码。 |