Skip to main content
Moesif 的告警规则(Alert Rule)触发时,可以通过 Webhook 类型的通知渠道(Notification Channel)把告警以 JSON 发送到指定地址。把渠道指向 Flashduty 的推送地址后,Moesif 每发送一次告警通知,Flashduty 中就产生一条告警。 Moesif 只在告警触发时发送通知,没有恢复通知,Flashduty 中的告警不会自动恢复。请按 告警恢复和自动关闭 开启超时自动关闭。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 Moesif,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 Moesif,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Moesif 中配置


1

创建 Webhook 通知渠道

  1. 登录 Moesif,点击左下角账号菜单,选择 Settings → Notification Channels
  2. 点击 Create Channel,填写渠道名称(例如 Flashduty),Channel Type 选择 Webhook
  3. Webhook URL 填 Flashduty 集成的完整推送地址(以 https:// 开头,包含 integration_key)
  4. Method 选择 POST。Flashduty 不校验 Request Headers,可以留空
  5. 点击 Save
2

在告警规则中选择该渠道

  1. 打开 Alert Rules,编辑已有规则,或在任一时间序列图表上点击 Alert 新建规则
  2. 在 Send To 中选择上一步创建的渠道,保存
  3. 需要发送到 Flashduty 的每条告警规则都要单独选择该渠道
3

验证

让一条已选择该渠道的告警规则触发一次(例如临时把静态告警的阈值调低),确认 Flashduty 出现一条告警,标题为告警规则名称。
渠道和告警规则的 Notification Throttle、Silencing alerts 会让 Moesif 不再发送部分通知,被抑制的通知不会到达 Flashduty。

告警恢复和自动关闭


Moesif 只在规则触发时发送通知,请求体中没有告警 ID,也没有表示恢复的字段,所以 Flashduty 中的告警不会自动恢复。 Moesif 的每次通知对应一条独立的 Flashduty 告警,需要手动关闭,或在接收该集成的协作空间中开启 超时自动关闭。建议设为告警规则评估周期的 2 倍,例如 15 分钟的规则设为 30 分钟。

Alert Key


请求中没有可以标识同一告警的字段,Flashduty 为每次通知生成随机 Alert Key,不同通知不会合并为同一条告警。

状态和告警等级


Moesif 告警没有严重程度字段。Flashduty 中的告警等级固定为 Warning,状态等于告警等级,不会恢复。 请求中 type 不是 alert 的通知(例如同一渠道收到的其他类型通知)会被忽略,不产生告警。

告警内容


  • 标题:告警规则名称 name;规则只有一个分组值时,追加该分组值,例如 Latency per user: user-1。缺少规则名称时为 Moesif alert
  • 描述:规则条件 metric,以及每个分组值的当前取值和变化方向(动态告警),最多列出 20 个

排查问题


  • Flashduty 没有收到告警:确认告警规则的 Send To 中选择了该渠道,规则处于开启状态;确认渠道的 Webhook URL 是完整的推送地址,包含 integration_key;在 Moesif 的 Alert History 中确认规则已经触发,且没有被 Throttle 或 Silencing 抑制
  • Flashduty 返回参数错误:请求体不是 JSON,或既没有 name 也没有 metric_values。请使用 Moesif 自带的 Webhook 渠道,不要改写请求体
  • 告警一直不关闭:Moesif 不发送恢复通知。请在协作空间中开启超时自动关闭,或手动关闭