首页 / API 文档 / 运维中心 / 告警策略 / 创建告警策略

创建告警策略

请求体参数补充说明

创建告警策略时,请求体参数 metadata.annotationsmetadata.labels 需包含如下必填的键值对。

请求信息

请求行

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

其他状态码

状态码: 200

OK

状态码: 202

Accepted

状态码: 401

Unauthorized