跳到主要内容
版本:2.14.0

创建告警

步骤

  1. 打开 "告警" 页面
  2. 点击页面右上角的新建告警按钮,弹出下图中所示的 "新建告警" 对话框。创建告警需要'告警页面'和'新建资源'权限,具体的内容参考权限管理
  3. 输入告警的四部分配置(标题不必唯一)
备注

告警标题在创建后可以修改

create_alert_page


配置

基础设置

  • 标题

    告警的标题

  • 描述

    告警的描述

  • 查询

    查询语句的内容为炎凰数据平台所支持的 SQL查询,也可直接从预存查询导入语句和时间范围

  • 时间范围

    查询的时间范围可以选择相对时间范围或固定时间范围。通常情况下应该使用相对时间范围,如过去五分钟、过去一小时等等。 对于使用相对时间范围的查询,每次查询时使用的时间范围会从查询被执行的时间点开始计算相对的时间区间;如果使用固定时间范围,则每次查询的时间区间的起始时间点都相同。

触发条件

有两种触发条件可供选择:

  • 预设条件

    预设的触发条件基本可以满足大部分常用的触发场景,如根据查询结果的条数(count)判断是否应该触发告警。

  • 自定义条件

    自定义的触发条件则是针对查询结果中的某个特定字段的值判断是否应该触发告警。 对于查询结果的条数大于一的情况,可以使用各种聚合函数计算出该字段的最终值用作判断条件;如果查询结果的条数大于一,但不使用聚合函数时,第一条查询结果的字段值将被用作判断条件。

执行计划

  • 执行计划

    执行计划规定了查询被周期性执行的时间点,采用 Cron 时间格式,例如:

Cron表达式说明
*/5 * * * *每五分钟执行
0 * * * *每个小时整点执行
  • 时区选择

    用户可以根据自己所在时区或者任务目标时区进行自由合理选取: cron_timezone_support

  • 延迟

    查询被执行的时间点还可以通过设置 "延迟" 进行微调。 比如考虑到从数据源产生数据的时间点距离数据进入数据平台并可以被查询的时间点之间存在五秒种的延迟,那么可以通过设置五秒中延迟来推迟查询的执行(但是查询所使用的时间区间并不会受延迟的影响)。

触发动作

  • 动作

    从平台内置或自定义的通知渠道中选择接收告警的渠道,并完成所选择的通知渠道配置

  • 严重性

    您可以设置告警严重性级别。严重性级别有助于在"触发记录"页面中的告警触发记录进行排序或筛选。

  • 限制

    为避免频繁执行的告警发送大量重复的通知,可以限制同一个告警发送的通知数量。 当限制被打开时,如果告警被第一次触发,则会立刻发送通知。但是在发送第一次通知之后指定的时间段里,系统不会再发送相同的通知。 直至时间段过完,并且告警再次被触发时,才会再次发送通知,同时新一轮的限制被打开。


通知渠道配置

邮件

使用邮件通知告警时,可以指定邮件的接收者、标题、正文等:

alert_email_form

信息

使用邮件前,先要由系统管理员完成相关的配置,如SMTP服务器连接、通知邮件发送者等

如何配置邮件服务?详见邮件设置

正文模式为“纯文本”时,邮件内容将以纯文本形式发送,内部所有HTML特殊字符将被转义;正文模式为“HTML”时,邮件内容将以HTML的形式发送,保留所有HTML特殊字符。

邮件的标题和正文部分除了可以被设置为固定内容外,用户还可以使用Token将告警的执行信息带入邮件的标题和正文,为响应者提供更加精确的告警信息:

Token格式说明使用示例
{{token名}}两层花括号 + token名 + 两层反花括号在邮件标题中使用查询结果中host字段的值:
服务器 {{search.result.host}} CPU利用率异常
可用Token请参考 Token清单

Webhook

Webhook给用户提供了一种通过第三方API提供商(比如slack/teams等IM工具)发送告警的能力。用户可以配置供应商网址,请求方式,验证方式等参数:

alert_webhook_form

备注

标头(headers)和负载(payload)的输入必须是合法的JSON格式,比如

  • 标头:{ "Content-Type": "application/json" }
  • 负载:{ "text": "Hello, world." }

如何在第三方软件上配置Webhook?Webhook配置

自定义渠道

自定义渠道来源于自定义应用。

新建应用,并选择带有自定义渠道的应用。

create_app

在告警的触发动作中选择自定义的触发动作,并填写触发动作需要的基本信息。

alert_custom_action


Token清单

查询结果相关Token

名称例值描述
search.result.*-查询结果中的字段值可以通过 search.result.字段名 获得,比如 search.result.host 表示查询结果中host字段的值

查询执行相关Token

名称示例说明
execution.flowIdALERT - 49101d62-3efd-4cab-b84e-0d9703bb1ea2本次监测告警任务所属告警的唯一标识符
execution.flowRunIdec9cf5b6-1a6b-4ea3-8cb6-3b134f994ab0本次监测告警任务执行的唯一标识符
execution.startTime2020-09-17T18:12:39.683475+08:00本次监测告警任务执行的开始时间点
execution.endTime2020-09-17T18:12:41.002609+08:00本次监测告警任务执行的结束时间点
execution.duration1319134本次监测告警任务执行的时长,单位/微秒
execution.callbackBaseUrlhttps://www.example.com.cn本次监测告警所运行的环境的链接根URL
execution.callbackUrlhttps://www.example.com.cn/zh-CN/app/test/alerts/39c80fc7-23df-4b9f-987a-3d1f7f278533?flowRunId=464dad5f-2ba8-4623-963d-6ff0f79b867d本次监测告警详情页面的链接
search.execution.searchStartTime2020-09-17T18:12:39.734908+08:00本次监测告警任务中查询的开始时间点
search.execution.searchEndTime2020-09-17T18:12:40.945788+08:00本次监测告警任务中查询的结束时间点
search.execution.searchDuration1210880本次监测告警任务中查询的时长,单位/微秒
search.execution.searchJobId952bfd3c-39dd-499c-9c23-2eaa0858f366本次监测告警任务中查询的jobID
search.execution.searchEventCount10本次监测告警任务中查询结果的数量
search.execution.filterDuration543本次监测告警任务中应用触发条件执行的时长,单位/微秒
search.execution.filterEventCount3本次监测告警任务中符合触发条件的结果的数量

告警配置相关Token

名称示例说明
config.title-告警的名称
config.description-告警的描述
config.conditions.querySELECT * FORM app_log WHERE level = 'FATAL'告警中执行的查询语句
config.conditions.earliestTime3600告警中执行的查询时间范围的起始时间点
config.conditions.latestTimenow告警中执行的查询时间范围的结束时间点
config.schedule.cron/10 * * *告警执行计划的Cron表达式
config.schedule.delay10告警执行计划的延迟时间,单位/秒