> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DataWorks 运维中心集成

> 通过自定义 Webhook 的方式同步阿里云 DataWorks 智能监控（运维中心）告警事件到 Flashduty On-call，实现告警事件自动化降噪处理

<div className="hide">
  ## 在 Flashduty On-call

  ***

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

  ### 使用专属集成

  当您不需要将告警事件路由到不同的协作空间，优先选择此方式，更简单。

  <AccordionGroup>
    <Accordion title="展开">
      1. 进入 Flashduty 控制台，选择 **协作空间**，进入某个空间的详情页面
      2. 选择 **集成数据** tab，点击 **添加一个集成**，进入添加集成页面
      3. 选择 **DataWorks 运维中心** 集成，点击 **保存**，生成卡片。
      4. 点击生成的卡片，可以查看到 **推送地址**，复制备用，完成。
    </Accordion>
  </AccordionGroup>

  ### 使用共享集成

  当您需要根据告警事件的 Payload 信息，将告警路由到不同的协作空间，优先选择此方式。

  <AccordionGroup>
    <Accordion title="展开">
      1. 进入 Flashduty 控制台，选择 **集成中心=>告警事件**，进入集成选择页面。
      2. 选择 **DataWorks 运维中心** 集成：
         * **集成名称**：为当前集成定义一个名称。
      3. 配置默认路由，并选择对应的协作空间（集成创建后可以前往 `路由` 进行更多路由规则的配置）。
      4. 点击 **保存** 后，复制当前页面的新生成的 **推送地址** 备用。
      5. 完成。
    </Accordion>
  </AccordionGroup>
</div>

## 在阿里云 DataWorks

***

**步骤 1：创建自定义 Webhook**

<div className="md-block">
  1. 登录阿里云控制台，进入 **DataWorks** 产品
  2. 进入 **数据开发（DataStudio）** 或 **运维中心**，打开 **智能监控** 页面
  3. 进入 **报警接收配置**（或 **自定义 webhook** 配置入口），新建一个 Webhook
  4. `请求地址` 填写 Flashduty 集成的推送地址（上一步复制），`请求方法` 为 POST
  5. 保存后，可点击 **发送测试消息**，DataWorks 会推送一条连通性测试消息（`message.content`），Flashduty 收到后返回成功但不产生告警事件
</div>

**步骤 2：在监控规则中启用 Webhook**

<div className="md-block">
  1. 进入 **智能监控** 的 **自定义规则**（周期实例状态告警、资源组告警）、**基线管理** 或 **事件管理** 页面
  2. 创建或编辑规则，在 **报警方式** 中勾选上一步创建的自定义 Webhook
  3. 保存规则，完成。此后该规则触发的告警会实时推送到 Flashduty
</div>

## 支持的告警类型

***

<div className="md-block">
  DataWorks 智能监控自定义 Webhook 推送的消息统一包裹在 `message` 字段中，通过 `message.title` 区分类型，本集成支持以下三类告警：

  | message.title              | 告警类型  | 说明                                                                                                     |
  | -------------------------- | ----- | ------------------------------------------------------------------------------------------------------ |
  | `DataWorks_Remind`         | 自定义告警 | 周期实例状态告警（remind\_unit 为 Task、Baseline、Project、BizProcess）与资源组告警（ScheduleResourceGroup、DiResourceGroup） |
  | `DataWorks_Baseline_Alert` | 基线告警  | 基线预警（dangerous）与破线（overSla）                                                                            |
  | `DataWorks_Event_Remind`   | 事件告警  | 任务出错（ERROR）与变慢（SLOW）                                                                                   |

  连通性测试消息（`message.content`）仅用于验证推送地址，不会产生告警事件。
</div>

## 严重程度对照

***

<div className="md-block">
  DataWorks 自定义告警 `remind_type` 到 Flashduty 告警等级（Severity）映射关系：

  | DataWorks remind\_type                             | Flashduty | 状态 |
  | -------------------------------------------------- | --------- | -- |
  | error（出错）                                          | Critical  | 严重 |
  | exhausted error（自动重跑仍出错）                           | Critical  | 严重 |
  | uncompleted（未完成）                                   | Warning   | 警告 |
  | cycle uncompleted（周期未完成）                           | Warning   | 警告 |
  | run over time（运行超时）                                | Warning   | 警告 |
  | resGroup use ratio（资源组利用率）                         | Warning   | 警告 |
  | the number of waiting task in resGroup（资源组等待资源实例数） | Warning   | 警告 |
  | completed（完成）                                      | Info      | 提醒 |
  | 空值或未知值                                             | Warning   | 警告 |

  基线告警 `status` 映射关系：

  | DataWorks status | Flashduty | 状态 |
  | ---------------- | --------- | -- |
  | overSla（破线）      | Critical  | 严重 |
  | dangerous（预警）    | Warning   | 警告 |
  | 空值或未知值           | Warning   | 警告 |

  事件告警 `event_type` 映射关系：

  | DataWorks event\_type | Flashduty | 状态 |
  | --------------------- | --------- | -- |
  | ERROR（出错）             | Critical  | 严重 |
  | SLOW（变慢）              | Warning   | 警告 |
  | 空值或未知值                | Warning   | 警告 |
</div>

## Alert Key 与告警合并

***

<div className="md-block">
  DataWorks 智能监控 Webhook 属于**一次性事件**（one-shot）：官方协议只定义告警通知，**不恢复**、无更新语义，也没有提供厂商级别的去重 ID 或指纹字段。因此本集成不会自动恢复（关闭）任何告警，所有事件均以触发状态投递。

  每次 webhook 投递都会生成一个全新的随机 UUID 作为 Alert Key，即每条推送都会创建一条独立的告警事件，重复触发不会自动合并。如需降噪，请在 Flashduty 中配置告警聚合或收敛策略。
</div>

## 字段标签对照

***

<div className="md-block">
  推送消息中的主要字段会以标签（Labels）形式保留在告警事件中，可用于路由、静默与模板渲染：

  | 标签                                                          | 来源字段              | 说明                                 |
  | ----------------------------------------------------------- | ----------------- | ---------------------------------- |
  | alert\_type                                                 | title             | 告警类型（DataWorks\_Remind 等）          |
  | remind\_name                                                | remind\_name      | 规则名称                               |
  | remind\_unit                                                | remind\_unit      | 监控粒度（Task、ScheduleResourceGroup 等） |
  | remind\_type                                                | remind\_type      | 触发条件原始值                            |
  | occur\_time                                                 | occur\_time       | 发生时间原文                             |
  | remind\_founder                                             | remind\_founder   | 规则创建人                              |
  | more\_information                                           | more\_information | 运维中心周期实例链接                         |
  | task\_size / number\_of\_alerts                             | 同名字段              | 任务数量 / 第几次告警                       |
  | node\_id\_list / node\_name\_list / node\_owner\_list       | 同名字段              | 节点 ID / 名称 / 责任人列表（英文逗号分隔，最多 5 个）  |
  | resource\_group\_name / threshold / duration                | 同名字段              | 资源组名 / 阈值 / 持续时间（分钟），资源组监控特有       |
  | baseline\_name / baseline\_owners                           | 同名字段              | 基线名 / 基线责任人                        |
  | cycle\_number / key\_instance / sla\_time / buffer / status | 同名字段              | 周期号 / 关键实例 / 承诺时间 / 余量（分钟）/ 基线状态   |
  | task\_name / task\_owner\_name / event\_type / event\_name  | 同名字段              | 任务名 / 责任人 / 事件类型 / 事件名称            |
</div>

## 常见问题

***

<div className="md-block">
  **为什么告警不会自动恢复？**

  DataWorks 智能监控 Webhook 协议没有定义恢复（resolve）消息，属于一次性通知。如需关闭告警，请在 Flashduty 控制台手动处理，或为规则配置告警收敛策略。

  **发送测试消息后为什么看不到告警？**

  DataWorks 的连通性测试消息（`message.content`）仅用于验证推送地址可达，Flashduty 收到后返回成功但不生成告警事件。请通过真实触发规则来验证端到端链路。
</div>
