Skip to main content
通过 Harness 流水线通知规则(Notification Rule)的 Webhook 通知方式,将 Harness CI/CD 流水线的失败事件同步到 Flashduty On-call。每条流水线、每个阶段(Stage)各对应一条 Flashduty 告警:流水线失败时触发,之后同一条流水线运行成功时恢复;阶段失败时触发,之后同一阶段运行成功时恢复。触发器(Trigger)启动流水线失败时也会产生告警。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 Harness 中配置


Harness SaaS 的各个版本都可以在流水线上配置通知规则,需要对该流水线有 Create/Edit 权限。以下步骤在单条流水线上配置;如果账号开启了集中通知(Centralised Notifications),也可以在 Account Settings → Notification Rules 中为多条流水线统一配置,事件和通知方式的选择与下面相同。
1

新建通知规则

  1. 在 Harness 中打开需要接入的流水线,进入 Pipeline Studio
  2. 点击右侧的 Notify,选择 Notifications
  3. 填写规则名称(例如 flashduty),点击 Continue
2

选择流水线事件

在 Pipeline Events 中按下表勾选。失败事件和成功事件需要成对勾选,只勾选失败事件时告警不会自动恢复。Pipeline Start、Pipeline End、Pipeline Pause、Stage Start、Step Failed、Waiting for User Action、Pipeline Resumed 不需要勾选,勾选了 Flashduty 也会直接返回成功、不创建告警。Trigger Failed 需要 Harness 开启 PIPE_ENABLE_TRIGGER_FAILED_NOTIFICATION 功能开关,请联系 Harness Support。
3

配置 Webhook 通知方式

  1. 在 Notification Method 中选择 Webhook
  2. 将 Flashduty 集成的完整推送地址粘贴到 Enter the URL to be called,地址中需包含 integration_key
  3. 不需要添加请求头(Headers)
  4. 不要选择 Notification Template,Flashduty 按 Harness 默认的请求体解析;使用自定义模板的请求会被直接返回成功、不创建告警
  5. Connectivity Mode 选择 Connect through Harness Platform;如果只能从 Delegate 访问外网,选择 Connect through Harness Delegate 并指定 Delegate
  6. 点击 Test 确认地址可以访问,然后点击 Submit 保存
4

验证

运行一次会失败的流水线(例如在 Shell Script 步骤中执行 exit 1),确认 Flashduty 收到活动告警;修复后重新运行同一条流水线并成功,确认原告警恢复。

Alert Key


Flashduty 按流水线和阶段生成 Alert Key,同一对象的失败和成功事件使用同一个 Alert Key: 流水线、阶段和触发器的显示名称、执行 ID(planExecutionId)和错误信息变化不影响 Alert Key。缺少上表字段的失败或成功事件会被拒绝。 同时勾选流水线事件和阶段事件时,一次失败会产生两条告警:一条是流水线告警,一条是失败阶段的告警。只需要一个层级时,只勾选该层级的事件。

状态和告警等级


告警不会自动恢复的情况


以下情况之后不会再有同一对象的成功事件,告警不会自动恢复:
  • 触发器失败(TriggerFailed):Harness 没有对应的恢复事件
  • 流水线失败后被删除,或之后不再运行
  • 通知规则只勾选了失败事件,或阶段成功事件的阶段范围比阶段失败事件小
建议在协作空间开启超时自动关闭,超时计时起点选 故障触发,超时时长建议 12 小时。流水线的正常修复一般在当天完成,未恢复的告警会在超时后关闭。

标签


用户邮箱不会写入标签。

排查问题


  • 收不到告警:确认通知规则处于启用状态,Notification Method 为 Webhook,推送地址完整且包含 integration_key;使用 Delegate 连接时,确认 Delegate 可以访问 Flashduty 的推送地址
  • 告警不恢复:确认勾选了 Pipeline Success(或 Stage Success),并且之后同一条流水线有一次成功运行
  • 收到请求但没有告警:通知规则选择了自定义 Notification Template,或只勾选了开始、结束、暂停、等待操作等事件,Flashduty 会返回成功但不创建告警
  • 一次失败收到两条告警:同时勾选了流水线和阶段事件,见上文 Alert Key 部分
更多事件和请求体说明请参阅 Harness 流水线通知。