> ## 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.

# Alibaba Cloud DataWorks Integration

> Sync alert events from Alibaba Cloud DataWorks Intelligent Monitoring (Operation Center) to Flashduty On-call through a custom webhook, with automated alert noise reduction

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

  ***

  You can obtain an integration push URL in either of the following two ways.

  ### Use an exclusive integration

  Choose this option when you do not need to route alert events to different collaboration spaces. It is simpler.

  <AccordionGroup>
    <Accordion title="Expand">
      1. Go to the Flashduty console, select **Collaboration Spaces**, and open a space's detail page
      2. Select the **Integrated Data** tab, click **Add an integration**, and open the add-integration page
      3. Select the **Alibaba Cloud DataWorks Operation Center** integration and click **Save** to generate a card
      4. Click the card to view the **push URL**, copy it for later use, and you are done
    </Accordion>
  </AccordionGroup>

  ### Use a shared integration

  Choose this option when you need to route alerts to different collaboration spaces based on the alert payload.

  <AccordionGroup>
    <Accordion title="Expand">
      1. Go to the Flashduty console and select **Integration Center => Alert Events** to open the integration selection page
      2. Select the **Alibaba Cloud DataWorks Operation Center** integration:
         * **Integration name**: define a name for this integration
      3. Configure the default route and select the corresponding collaboration space (after creation, you can go to `Routing` to configure more routing rules)
      4. Click **Save**, then copy the newly generated **push URL** on the current page for later use
      5. Done
    </Accordion>
  </AccordionGroup>
</div>

## In Alibaba Cloud DataWorks

***

**Step 1: Create a custom webhook**

<div className="md-block">
  1. Log in to the Alibaba Cloud console and open the **DataWorks** product
  2. Go to **DataStudio** or **Operation Center** and open the **Intelligent Monitoring** page
  3. Open the alarm receiver configuration (the custom webhook entry) and create a new webhook
  4. Set the request URL to the Flashduty integration push URL copied above; the request method is POST
  5. After saving, you can click **Send test message**. DataWorks pushes a connectivity test message (`message.content`); Flashduty returns success without creating an alert event
</div>

**Step 2: Enable the webhook in monitoring rules**

<div className="md-block">
  1. In **Intelligent Monitoring**, open the **custom rules** (instance status alerts, resource group alerts), **baseline management**, or **event management** page
  2. Create or edit a rule, and select the custom webhook created above as an alarm channel
  3. Save the rule. Alerts triggered by this rule are pushed to Flashduty in real time
</div>

## Supported alert types

***

<div className="md-block">
  DataWorks Intelligent Monitoring wraps every custom webhook message in a `message` field, distinguished by `message.title`. This integration supports the following three alert families:

  | message.title              | Alert family   | Description                                                                                                                                   |
  | -------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
  | `DataWorks_Remind`         | Custom alert   | Instance status alerts (remind\_unit: Task, Baseline, Project, BizProcess) and resource group alerts (ScheduleResourceGroup, DiResourceGroup) |
  | `DataWorks_Baseline_Alert` | Baseline alert | Baseline warning (dangerous) and SLA breach (overSla)                                                                                         |
  | `DataWorks_Event_Remind`   | Event alert    | Task error (ERROR) and task slowdown (SLOW)                                                                                                   |

  The connectivity test message (`message.content`) is used only to verify the push URL and never creates an alert event.
</div>

## Severity mapping

***

<div className="md-block">
  Mapping from custom alert `remind_type` to Flashduty severity:

  | DataWorks remind\_type                 | Flashduty | State    |
  | -------------------------------------- | --------- | -------- |
  | error                                  | Critical  | Critical |
  | exhausted error                        | Critical  | Critical |
  | uncompleted                            | Warning   | Warning  |
  | cycle uncompleted                      | Warning   | Warning  |
  | run over time                          | Warning   | Warning  |
  | resGroup use ratio                     | Warning   | Warning  |
  | the number of waiting task in resGroup | Warning   | Warning  |
  | completed                              | Info      | Info     |
  | empty or unknown value                 | Warning   | Warning  |

  Mapping from baseline alert `status`:

  | DataWorks status       | Flashduty | State    |
  | ---------------------- | --------- | -------- |
  | overSla (SLA breach)   | Critical  | Critical |
  | dangerous (warning)    | Warning   | Warning  |
  | empty or unknown value | Warning   | Warning  |

  Mapping from event alert `event_type`:

  | DataWorks event\_type  | Flashduty | State    |
  | ---------------------- | --------- | -------- |
  | ERROR                  | Critical  | Critical |
  | SLOW                   | Warning   | Warning  |
  | empty or unknown value | Warning   | Warning  |
</div>

## Alert Key and alert merging

***

<div className="md-block">
  DataWorks Intelligent Monitoring webhooks are **one-shot events**: the official protocol defines alert notifications only, with **no recovery** or update semantics, and it provides no vendor-level deduplication ID or fingerprint field. Therefore this integration never automatically recovers (closes) any alert; every event is delivered in a triggered state.

  Every webhook delivery receives a fresh random UUID as its Alert Key, so each push creates an independent alert event and repeated triggers are not merged automatically. To reduce noise, configure alert grouping or convergence policies in Flashduty.
</div>

## Field label mapping

***

<div className="md-block">
  Key fields from the push message are preserved as labels on the alert event and can be used for routing, silencing, and template rendering:

  | Label                                                       | Source field      | Description                                                                          |
  | ----------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------ |
  | alert\_type                                                 | title             | Alert family (DataWorks\_Remind, etc.)                                               |
  | remind\_name                                                | remind\_name      | Rule name                                                                            |
  | remind\_unit                                                | remind\_unit      | Monitoring granularity (Task, ScheduleResourceGroup, etc.)                           |
  | remind\_type                                                | remind\_type      | Raw trigger condition                                                                |
  | occur\_time                                                 | occur\_time       | Raw occurrence time string                                                           |
  | remind\_founder                                             | remind\_founder   | Rule creator                                                                         |
  | more\_information                                           | more\_information | Operation Center instance URL                                                        |
  | task\_size / number\_of\_alerts                             | same-name fields  | Task count / nth alert notification                                                  |
  | node\_id\_list / node\_name\_list / node\_owner\_list       | same-name fields  | Node IDs / names / owners (comma-separated, up to 5)                                 |
  | resource\_group\_name / threshold / duration                | same-name fields  | Resource group name / threshold / duration (minutes), resource group monitoring only |
  | baseline\_name / baseline\_owners                           | same-name fields  | Baseline name / baseline owners                                                      |
  | cycle\_number / key\_instance / sla\_time / buffer / status | same-name fields  | Cycle number / key instance / SLA time / buffer (minutes) / baseline status          |
  | task\_name / task\_owner\_name / event\_type / event\_name  | same-name fields  | Task name / owner / event type / event name                                          |
</div>

## FAQ

***

<div className="md-block">
  **Why are alerts never automatically recovered?**

  The DataWorks Intelligent Monitoring webhook protocol defines no resolve message; it is a one-shot notification with no recovery semantics. To close an alert, handle it manually in the Flashduty console or configure alert convergence policies for the rule.

  **Why is no alert visible after sending a test message?**

  The DataWorks connectivity test message (`message.content`) only verifies that the push URL is reachable. Flashduty returns success without creating an alert event. Trigger a real rule to verify the end-to-end flow.
</div>
