在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Harness,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Harness,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Harness 中配置
Harness SaaS 的各个版本都可以在流水线上配置通知规则,需要对该流水线有 Create/Edit 权限。以下步骤在单条流水线上配置;如果账号开启了集中通知(Centralised Notifications),也可以在 Account Settings → Notification Rules 中为多条流水线统一配置,事件和通知方式的选择与下面相同。
1
新建通知规则
- 在 Harness 中打开需要接入的流水线,进入 Pipeline Studio
- 点击右侧的 Notify,选择 Notifications
- 填写规则名称(例如
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 通知方式
- 在 Notification Method 中选择 Webhook
- 将 Flashduty 集成的完整推送地址粘贴到 Enter the URL to be called,地址中需包含
integration_key - 不需要添加请求头(Headers)
- 不要选择 Notification Template,Flashduty 按 Harness 默认的请求体解析;使用自定义模板的请求会被直接返回成功、不创建告警
- Connectivity Mode 选择 Connect through Harness Platform;如果只能从 Delegate 访问外网,选择 Connect through Harness Delegate 并指定 Delegate
- 点击 Test 确认地址可以访问,然后点击 Submit 保存
4
验证
运行一次会失败的流水线(例如在 Shell Script 步骤中执行
exit 1),确认 Flashduty 收到活动告警;修复后重新运行同一条流水线并成功,确认原告警恢复。Alert Key
Flashduty 按流水线和阶段生成 Alert Key,同一对象的失败和成功事件使用同一个 Alert Key:
流水线、阶段和触发器的显示名称、执行 ID(
planExecutionId)和错误信息变化不影响 Alert Key。缺少上表字段的失败或成功事件会被拒绝。
同时勾选流水线事件和阶段事件时,一次失败会产生两条告警:一条是流水线告警,一条是失败阶段的告警。只需要一个层级时,只勾选该层级的事件。
状态和告警等级
告警不会自动恢复的情况
以下情况之后不会再有同一对象的成功事件,告警不会自动恢复:
- 触发器失败(
TriggerFailed):Harness 没有对应的恢复事件 - 流水线失败后被删除,或之后不再运行
- 通知规则只勾选了失败事件,或阶段成功事件的阶段范围比阶段失败事件小
标签
用户邮箱不会写入标签。
排查问题
- 收不到告警:确认通知规则处于启用状态,Notification Method 为 Webhook,推送地址完整且包含
integration_key;使用 Delegate 连接时,确认 Delegate 可以访问 Flashduty 的推送地址 - 告警不恢复:确认勾选了 Pipeline Success(或 Stage Success),并且之后同一条流水线有一次成功运行
- 收到请求但没有告警:通知规则选择了自定义 Notification Template,或只勾选了开始、结束、暂停、等待操作等事件,Flashduty 会返回成功但不创建告警
- 一次失败收到两条告警:同时勾选了流水线和阶段事件,见上文 Alert Key 部分