本文介紹告警資源數據的數據結構。
簡介
告警資源數據包括用戶、用戶組、值班組、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(),設置通知渠道。更多信息,請參見通知渠道說明。