跳转到主要内容
通过 Redash 的 Webhook 告警目的地(Alert Destination),将查询告警(Alert)的状态变化同步到 Flashduty On-call。每个 Redash 告警对应一条 Flashduty 告警:查询结果满足条件(TRIGGERED)时触发,恢复正常(OK)时自动恢复。适用于自建的 Redash。

在 Flashduty On-call

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

使用专属集成

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

使用共享集成

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

在 Redash 中配置

需要 Redash 管理员权限创建告警目的地,Redash 服务器需要能访问 Flashduty 推送地址。
1

在 Redash 中创建 Webhook 告警目的地

操作路径:Redash › Settings › Alert Destinations › New Alert Destination填写后点击 Create。
2

在 Redash 告警上添加该目的地

操作路径:Redash › Alerts › Destinations › Add可以打开已有告警,或新建一个告警:选择已发布且不含参数的查询,设置 Value column、条件和阈值。保存告警。恢复通知无需单独配置:告警状态从 TRIGGERED 变回 OK 时,Redash 会向同一目的地发送通知,Flashduty 据此恢复告警。
3

触发并确认告警

  1. 让查询结果满足告警条件,等待查询按刷新计划执行,确认 Flashduty 收到活动告警
  2. 让查询结果恢复正常,确认原告警恢复
请让告警真实触发一次。几秒后回到 Flashduty,集成显示 最新事件时间,说明配置成功。

Alert Key

Flashduty 使用 Redash 告警的 ID(alert.id)作为 Alert Key,同一个 Redash 告警的触发、重复通知和恢复使用同一个 Alert Key。告警名称、条件、阈值、状态等字段变化不会改变 Alert Key。缺少 alert.id 的请求会被拒绝。 同一个 Flashduty 集成请只接入一个 Redash 实例;不同 Redash 实例的告警 ID 会重复,请分别创建集成。

状态和告警等级

Redash 的通知不携带等级,Flashduty 按告警状态处理: unknown 表示查询暂无数据可供评估。Redash 只在状态变化,或触发状态下超过重复通知间隔时发送通知;告警第一次评估就是 OK 时不发送通知。

标签

排查问题

  • Flashduty 没收到告警:确认告警已添加 Webhook 目的地、告警没有被静音(Muted),查询已发布且按刷新计划运行(自建时 worker 需要消费 periodic 和 scheduled_queries 队列,默认配置已包含);Redash 请求超时为 5 秒,失败后不重试,只在 Redash 日志中记录
  • Flashduty 返回参数错误:确认 URL 完整且包含 integration_key
  • 告警没有恢复:Redash 只在状态变为 OK 时发送恢复通知;查询没有数据时状态为 unknown,不会恢复告警
  • 收不到重复通知:When triggered, send notification 选择了 Just once
更多字段含义请参阅 Redash 告警文档。