创建告警策略
请求体参数补充说明
创建告警策略时,请求体参数 metadata.annotations
、metadata.labels
需包含如下必填的键值对。
-
metadata.annotations:
-
alert.cpaas.io/notifications
:告警触发时,发送通知的通知策略列表。值为[]
表示不设置通知;值为[{\"name\":\"xqren\",\"namespace\":\"cpaas-system\"}]
时,表示为告警策略设置了一个位于 cpaas-system 命名空间中的名称为 xqren 的通知策略。 -
cpaas.io/description
:告警策略的描述信息。 -
cpaas.io/display-name
:告警策略的显示名称。
-
-
metadata.labels:
alert.cpaas.io/project
:告警策略所在项目的名称。alert.cpaas.io/owner
:用于标识告警策略是否是通过平台创建的,值为system
。alert.cpaas.io/cluster
:告警策略所在集群的名称。alert.cpaas.io/namespace
:告警策略所在命名空间的名称。alert.cpaas.io/name
:告警策略的名称。prometheus
:Prometheus 监视的告警策略的标签选择器,值为kube-prometheus
。
请求信息
请求行
POST /apis/monitoring.coreos.com/v1/namespaces/{namespace}/prometheusrules
创建一个 Prometheus 告警规则。
请求行参数
名称 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
namespace | string | 是 | 命名空间。对象名称和身份验证范围,例如团队和项目。 |
请求参数
名称 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
dryRun | string | 否 | 当该参数出现时,表示不应该持久化修改。一个无效的或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:All,将处理所有的试运行阶段。 |
fieldManager | string | 否 | fieldManager 是与正在进行这些更改的参与者或实体相关联的名称。值必须少于 128 字符,且仅包含可打印字符,参见 https://golang.org/pkg/unicode/#IsPrint。 |
pretty | string | 否 | 如果为 true,则会将返回结果输出成适合打印的格式。 |
请求体
Content-Type
application/json
,
application/yaml
请求体示例
Prometheus 实例的告警规则。
{
"apiVersion": "monitoring.coreos.com/v1",
"kind": "PrometheusRule",
"metadata": {
"annotations": {
"alert.cpaas.io/notifications": "[]",
"alert.cpaas.io/rules.description": "{}",
"alert.cpaas.io/rules.disabled": "[]",
"cpaas.io/description": "policy",
"cpaas.io/display-name": "policy"
},
"labels": {
"alert.cpaas.io/cluster": "calico",
"alert.cpaas.io/kind": "Cluster",
"alert.cpaas.io/name": "calico",
"alert.cpaas.io/namespace": "cpaas-system",
"alert.cpaas.io/owner": "System",
"alert.cpaas.io/project": "",
"prometheus": "kube-prometheus"
},
"name": "policy",
"namespace": "cpaas-system",
"ownerReferences": []
},
"spec": {
"groups": [
{
"name": "general",
"rules": [
{
"alert": "cluster.alerts.firing-a5dcn-ca2a0ac7146bc6f66c58386478bc6049",
"annotations": {
"alert_current_value": "{{ $value }}",
"alert_notifications": "[]"
},
"expr": "(sum(ALERTS{alertstate=\"firing\",alertname!=\"DeadMansSwitch\"}) or vector(0))\u003e4",
"for": "30s",
"labels": {
"alert_cluster": "calico",
"alert_indicator": "cluster.alerts.firing",
"alert_indicator_aggregate_function": "",
"alert_indicator_aggregate_range": "0",
"alert_indicator_blackbox_name": "",
"alert_indicator_comparison": "\u003e",
"alert_indicator_query": "",
"alert_indicator_threshold": "4",
"alert_indicator_unit": "",
"alert_involved_object_kind": "Cluster",
"alert_involved_object_name": "calico",
"alert_involved_object_namespace": "",
"alert_name": "cluster.alerts.firing-a5dcn",
"alert_project": "",
"alert_resource": "policy",
"severity": "High"
}
}
]
}
]
}
}
请求体说明
名称 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
apiVersion | string | 是 | 查看公共参数 |
kind | string | 是 | 查看公共参数 |
metadata | object | 是 | 查看公共参数 |
spec | object | 是 |
PrometheusRuleSpec 包含了规则的标准参数。
字段路径:spec |
spec.groups | array | 是 |
Prometheus 告警规则文件的内容。
字段路径:spec.groups |
spec.groups[] | object | 是 |
按顺序统计的记录和告警规则的列表。
字段路径:spec.groups[] |
groups[].name | string | 是 |
规则组的名称。
字段路径:spec.groups[].name |
groups[].rules | array | 是 |
规则列表。
字段路径:spec.groups[].rules |
groups[].rules[] | object | 是 |
描述了一个告警或记录规则。
字段路径:spec.groups[].rules[] |
rules[].alert | string | 是 |
告警规则 的名称。
字段路径:spec.groups[].rules[].alert |
rules[].annotations | object | 是 |
告警规则的注释,告警规则中,须包含以下必须的注释:
-`alert_current_value`:Prometheus 查询表达式的值。固定值为 "$value"。
-`alert_notifications`:告警触发时,发送通知的通知策略列表。值为 "[]" 表示不设置通知;值为 "[{\"name\":\"xqren\",\"namespace\":\"cpaas-system\"}]" 时,表示为告警策略设置了一个位于 cpaas-system 命名空间中的名称为 xqren 的通知策略。
字段路径:spec.groups[].rules[].annotations |
rules[].for | string | 是 |
触发规则的持续时间。
字段路径:spec.groups[].rules[].for |
rules[].labels | object | 是 |
告警规则的标签。告警规则中,需包含如下必须的 label:
-`alert_cluster`:告警规则所在集群的名称。
-`alert_project`:告警规则所在项目的名称。
-`alert_namespace`:告警规则所在命名空间的名称。
-`alert_resource`:告警策略的名称。
-`alert_name`:告警规则的名称
-`alert_involved_object_kind`:告警资源的类型,可选:Cluster、Node、Workload。
-`alert_involved_object_namespace`:告警资源所在命名空间的名称。
-`alert_involved_object_name`:告警资源的名称。
-`alert_indicator`:用于查询规则的指标名称,"custom" 表示自定义指标。
-`alert_indicator_comparison`:规则的比较运算符,例如:>。
-`alert_indicator_threshold`:规则的阈值,例如:0.5。
-`alert_indicator_unit`:指标的单位,例如:%。
-`severity`:指标的告警等级,可选:Critical、High、Medium、Low。
字段路径:spec.groups[].rules[].labels |
返回信息
Content-Type
application/json
,
application/yaml
状态码: 201
Created
返回体示例
Prometheus 实例的告警规则。
{
"apiVersion": "monitoring.coreos.com/v1",
"kind": "PrometheusRule",
"metadata": {
"annotations": {
"alert.cpaas.io/notifications": "[]",
"alert.cpaas.io/rules.description": "{}",
"alert.cpaas.io/rules.disabled": "[]",
"cpaas.io/creator": "admin@cpaas.io",
"cpaas.io/description": "policy",
"cpaas.io/display-name": "policy",
"cpaas.io/updated-at": "2021-06-23T06:59:29Z"
},
"creationTimestamp": "2021-06-23T06:59:29Z",
"generation": 1,
"labels": {
"alert.cpaas.io/cluster": "calico",
"alert.cpaas.io/kind": "Cluster",
"alert.cpaas.io/name": "calico",
"alert.cpaas.io/namespace": "cpaas-system",
"alert.cpaas.io/owner": "System",
"alert.cpaas.io/project": "",
"prometheus": "kube-prometheus"
},
"managedFields": [
{
"apiVersion": "monitoring.coreos.com/v1",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:metadata": {
"f:annotations": {
".": {},
"f:alert.cpaas.io/notifications": {},
"f:alert.cpaas.io/rules.description": {},
"f:alert.cpaas.io/rules.disabled": {},
"f:cpaas.io/description": {},
"f:cpaas.io/display-name": {}
},
"f:labels": {
".": {},
"f:alert.cpaas.io/cluster": {},
"f:alert.cpaas.io/kind": {},
"f:alert.cpaas.io/name": {},
"f:alert.cpaas.io/namespace": {},
"f:alert.cpaas.io/owner": {},
"f:alert.cpaas.io/project": {},
"f:prometheus": {}
}
},
"f:spec": {
".": {},
"f:groups": {}
}
},
"manager": "Mozilla",
"operation": "Update",
"time": "2021-06-23T06:59:29Z"
}
],
"name": "policy",
"namespace": "cpaas-system",
"resourceVersion": "14817727",
"selfLink": "/apis/monitoring.coreos.com/v1/namespaces/cpaas-system/prometheusrules/policy",
"uid": "dd6d04d7-68ee-4fe4-bef3-ad7ac4f459cc"
},
"spec": {
"groups": [
{
"name": "general",
"rules": [
{
"alert": "cluster.alerts.firing-a5dcn-ca2a0ac7146bc6f66c58386478bc6049",
"annotations": {
"alert_current_value": "{{ $value }}",
"alert_notifications": "[]"
},
"expr": "(sum(ALERTS{alertstate=\"firing\",alertname!=\"DeadMansSwitch\"}) or vector(0))\u003e4",
"for": "30s",
"labels": {
"alert_cluster": "calico",
"alert_indicator": "cluster.alerts.firing",
"alert_indicator_aggregate_function": "",
"alert_indicator_aggregate_range": "0",
"alert_indicator_blackbox_name": "",
"alert_indicator_comparison": "\u003e",
"alert_indicator_query": "",
"alert_indicator_threshold": "4",
"alert_indicator_unit": "",
"alert_involved_object_kind": "Cluster",
"alert_involved_object_name": "calico",
"alert_involved_object_namespace": "",
"alert_name": "cluster.alerts.firing-a5dcn",
"alert_project": "",
"alert_resource": "policy",
"severity": "High"
}
}
]
}
]
}
}
返回体说明
名称 | 类型 | 描述 |
---|---|---|
apiVersion | string | 查看公共参数 |
kind | string | 查看公共参数 |
metadata | object | 查看公共参数 |
spec | object |
PrometheusRuleSpec 包含了规则的标准参数。
字段路径:spec |
spec.groups | array |
Prometheus 告警规则文件的内容。
字段路径:spec.groups |
spec.groups[] | object |
按顺序统计的记录和告警规则的列表。
字段路径:spec.groups[] |
groups[].interval | string |
触发告警的间隔。
字段路径:spec.groups[].interval |
groups[].name | string |
规则组的名称。
字段路径:spec.groups[].name |
groups[].rules | array |
规则列表。
字段路径:spec.groups[].rules |
groups[].rules[] | object |
描述了一个告警或记录规则。
字段路径:spec.groups[].rules[] |
rules[].alert | string |
告警规则 的名称。
字段路径:spec.groups[].rules[].alert |
rules[].annotations | object |
告警规则的注释,告警规则中,须包含以下必须的注释:
-`alert_current_value`:Prometheus 查询表达式的值。固定值为 "$value"。
-`alert_notifications`:告警触发时,发送通知的通知策略列表。值为 "[]" 表示不设置通知;值为 "[{\"name\":\"xqren\",\"namespace\":\"cpaas-system\"}]" 时,表示为告警策略设置了一个位于 cpaas-system 命名空间中的名称为 xqren 的通知策略。
字段路径:spec.groups[].rules[].annotations |
expr.anyOf | string |
Type is type of rule expr
字段路径:spec.groups[].rules[].expr.anyOf |
expr.anyOf | integer |
Type is type of rule expr
字段路径:spec.groups[].rules[].expr.anyOf |
rules[].for | string |
触发规则的持续时间。
字段路径:spec.groups[].rules[].for |
rules[].labels | object |
告警规则的标签。告警规则中,需包含如下必须的 label:
-`alert_cluster`:告警规则所在集群的名称。
-`alert_project`:告警规则所在项目的名称。
-`alert_namespace`:告警规则所在命名空间的名称。
-`alert_resource`:告警策略的名称。
-`alert_name`:告警规则的名称
-`alert_involved_object_kind`:告警资源的类型,可选:Cluster、Node、Workload。
-`alert_involved_object_namespace`:告警资源所在命名空间的名称。
-`alert_involved_object_name`:告警资源的名称。
-`alert_indicator`:用于查询规则的指标名称,"custom" 表示自定义指标。
-`alert_indicator_comparison`:规则的比较运算符,例如:>。
-`alert_indicator_threshold`:规则的阈值,例如:0.5。
-`alert_indicator_unit`:指标的单位,例如:%。
-`severity`:指标的告警等级,可选:Critical、High、Medium、Low。
字段路径:spec.groups[].rules[].labels |
rules[].record | string |
记录新的指标的监控指标名称。
字段路径:spec.groups[].rules[].record |