通知模板

自定义告警通知格式,让通知内容更清晰、更高效

概述

通知模板定义了告警通知消息的内容格式。1Duty 为每种通知渠道提供了默认模板,同时支持自定义模板,您可以根据团队的实际需求调整通知内容,突出关键信息,让值班人快速理解告警上下文。

模板类型

通知模板按通知渠道分为以下类型:

模板类型 标识 适用渠道
短信模板 SMS 短信通知
电话语音模板 VOICE 电话语音通知
邮件模板 EMAIL 邮件通知
钉钉群模板 DINGTALK_GROUP 钉钉群机器人消息
钉钉应用模板 DINGTALK_APP 钉钉应用消息(个人)
飞书群模板 FEISHU_GROUP 飞书群机器人消息
飞书应用模板 FEISHU_APP 飞书应用消息(个人)
企业微信群模板 WECHAT_GROUP 企业微信群机器人消息
企业微信应用模板 WECHAT_APP 企业微信应用消息(个人)

模板场景

每种模板类型又可按使用场景细分:

支持的变量

在通知模板中可以使用以下变量,系统会在发送通知时自动替换为实际值:

变量名 说明 示例值
title 告警标题 CPU 使用率超过 90%
description 告警详细描述 服务器 prod-web-01 的 CPU 使用率持续超过阈值
severity 告警级别 CRITICAL / WARNING / INFO
status 事件状态 TRIGGERED / ACKNOWLEDGED / RESOLVED
team_name 值班团队名称 基础设施运维组
assignee 当前值班人 张三
alert_source 告警来源集成名称 生产环境 Prometheus
created_at 告警触发时间 2024-01-15 14:30:00
id 事件唯一标识 INC-20240115-0001
labels 告警标签(键值对) instance=prod-web-01, job=node_exporter
incident_url 事件详情链接 https://app.1duty.com/incidents/xxx

模板语法

1Duty 使用 Pebble 模板引擎 渲染通知内容,语法类似 Jinja2,简洁易用。

基础用法

使用双花括号 {{ }} 输出变量值:

[1Duty] {{ severity }} 告警: {{ title }}
团队: {{ team_name }}
值班人: {{ assignee }}
时间: {{ created_at }}
详情: {{ description }}

条件判断

使用 {% if %} 进行条件渲染:

{% if severity == 'CRITICAL' %}
紧急告警,请立即处理!
{% else %}
请关注以下告警:
{% endif %}
{{ title }}

默认值

当变量可能为空时,使用 default 过滤器提供默认值:

描述: {{ description | default('暂无描述') }}

编辑模板

按照以下步骤自定义通知模板:

  1. 进入「组织管理」>「通知模板」页面
  2. 选择要编辑的模板类型和场景
  3. 在编辑器中修改模板内容
  4. 点击「预览」查看渲染效果
  5. 确认无误后点击「保存」

编辑模板时可以随时点击「预览」按钮查看模板的实际渲染效果。系统会使用模拟数据填充所有变量,帮助您确认格式是否正确。

模板预览

模板预览功能允许您在保存前查看通知的实际效果:

恢复默认模板

如果自定义模板出现问题或希望回到初始状态,可以点击「恢复默认」按钮将模板重置为系统默认版本。

恢复默认操作不可撤销,您之前的自定义内容将会丢失。建议在操作前备份当前模板内容。

最佳实践