本文介绍告警资源数据的数据结构。
简介
告警资源数据包括用户、用户组、值班组、Webhook集成、告警策略(路由合并、抑制、静默)、行动策略、内容模板、自定义的其它资源数据等。
告警资源数据分为资源(Resource)和记录(Record)两类。例如用户本身属于一种资源,但是配置的每一条用户信息都是一条记录。
分类 | 属性 | 说明 |
资源(Resource) | resource_name | 标识资源的名称,例如用户的资源名称为sls.common.user。 |
记录(Record) | id | 该记录的唯一ID。字符串类型。 |
tag | 为该记录打标签。字符串类型。 | |
value | 该记录完整的值。JSON字符串类型。 |
告警资源数据的结构
资源类型 | resource_name字段 | record_id字段 | record_tag字段 | 示例 | 备注 |
用户 | sls.common.user | user_id | user_name |
|
无 |
用户组 | sls.common.user_group | user_group_id | user_group_name |
|
无 |
值班组 | sls.alert.oncall_group | oncall_id | oncall_name |
|
配置复杂,建议通过控制台完成配置。 |
Webhook集成 | sls.alert.action_webhook | id | name |
|
|
告警策略 | sls.alert.alert_policy | policy_id | policy_name |
|
|
行动策略 | sls.alert.action_policy | action_policy_id | action_policy_name |
|
|
内容模板 | sls.alert.content_template | template_id | template_name |
|
|
默认日历 | sls.common.calendar | calendar_id | calendar_name |
|
|
DSL语法说明
简单的DSL配置示例如下所示。
重要 DSL配置复杂,建议您先在控制台完成配置,然后查看Network请求所发送的Payload内容。设置路由合并策略
- 控制台配置
- DSL配置
if alert.severity >= 8: fire(action_policy="sls.builtin", group={"alert.project": alert.project, "alert.alert_id": alert.alert_id}, group_by_all_labels=true, group_wait="15s", group_interval="5m", repeat_interval="1h") stop() fire(action_policy="sls.builtin", group={"alert.project": alert.project}, group_by_all_labels=false, group_wait="15s", group_interval="5m", repeat_interval="1h")
基本语法说明如下:
- if alert.severity >= 8为条件节点。
- fire( )为路由合并节点。
- action_policy为行动策略ID。
- group为合并基准,dict类型。
- group_by_all_labels为是否根据所有标签合并,取值为true、false。
- group_wait为首次等待时间。
- group_interval为变化等待时间。
- repeat_interval为重复等待时间。
- stop()为结束节点。
设置抑制策略
- 控制台配置
- DSL配置
if alert.severity >= 8: silence alert.severity < 8 stop()
基本语法说明如下:
- if alert.severity >= 8为条件节点。
- silence alert.severity < 8为抑制节点。
- stop()为结束节点。
设置静默策略
- 控制台配置
- DSL配置
drop(end=1638189177) alert.alert_name == "test-alert" accept alert.labels.env == "prod"
基本语法说明如下:
- drop表示静默。
- accept表示不静默。
- start和end表示时间范围,Unix时间戳(单位为秒)。
- 特定时间范围:需设置start和end。
- 特定时间为止:只需设置end。
- 一段时间:只需设置end。
- 持续:不需要设置start和end。
设置行动策略
- 控制台配置
- DSL配置
if alert.severity >= 8: fire(type="sms", users=[], groups=[], oncall_groups=["alert-test-oncall"], template_id="sls.builtin.cn", check_quota="true", period="any") stop() if alerts.severity < 8: fire(type="webhook_integration", integration_type="dingtalk", webhook_id="jizhi-test", template_id="sls.builtin.cn", period="any") stop()
重要
- if alert.xxx表示任意告警满足条件。
- if alerts.xxx表示所有告警满足条件。
其中,每个渠道的配置示例如下:
- 控制台配置
- DSL配置
fire(type="sms", users=["jizhi"], groups=[], oncall_groups=[], template_id="sls.builtin.cn", check_quota="true", period="workday") fire(type="voice", users=[], groups=[], oncall_groups=["alert-test-oncall"], template_id="sls.builtin.cn", check_quota="true", period="worktime") fire(type="email", users=[], groups=["alert-test"], oncall_groups=[], template_id="sls.builtin.cn", check_quota="true", period="any") fire(type="webhook_integration", integration_type="dingtalk", webhook_id="jizhi-test", template_id="sls.builtin.cn", period="any") fire(type="webhook_integration", integration_type="wechat", webhook_id="wechat-test", template_id="sls.builtin.cn", period="any") fire(type="message_center", template_id="sls.builtin.cn", check_quota="true", period="any") fire(type="event_bridge", region="cn-hangzhou", bus_name="bus-demo", template_id="sls.builtin.cn", period="any") fire(type="fc", region="cn-shanghai", service="jizhi-test", qualifier="LATEST", function="sls-ops-1", template_id="sls.builtin.cn", period="any") fire(type="set_ticket_owner", choice="random", users=[], groups=[], oncall_groups=["alert-test-oncall"])
基本语法说明如下:
通过fire(),设置通知渠道。更多信息,请参见通知渠道说明。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164587.html