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

# 结合外部数据实现动态分派

> 通过标签映射与动态分派，让告警自动路由到正确的处理人，无需频繁修改分派策略

## 为什么需要动态分派

在企业运维中，监控对象（主机、服务、数据库等）成千上万，且负责人随组织架构调整频繁变化。如果为每个对象单独维护分派策略，成本极高且容易出错。

**动态分派** 解决的正是这个问题：您只需配置一条分派策略作为"模板"，系统会根据告警携带的特定标签，自动替换该策略中的通知对象。这样，无论负责人如何变更，您只需更新标签数据，无需修改分派策略本身。

## 工作原理

动态分派的核心流程分为三步：

<Steps>
  <Step title="告警进入协作空间">
    告警通过集成接入后，进入协作空间，匹配到已配置的分派策略。
  </Step>

  <Step title="系统读取动态标签">
    系统检测到告警携带了特定标签（如 `layer_person_reset_0_emails=bob@corp.com`），自动将分派策略中环节 1 的通知对象替换为 Bob。
  </Step>

  <Step title="按替换后的策略执行分派">
    按照替换后的分派策略进行通知。分派完成后，系统自动移除这些控制类标签，保持告警详情页整洁。
  </Step>
</Steps>

<Warning>
  动态分派并不是独立工作的，它依赖于协作空间中已有的分派策略。您需要预先配置一条分派策略作为"模板"——动态标签只会替换其中的通知对象（人员、团队或群聊机器人），策略中的其他配置（如通知方式、超时时间、升级规则等）保持不变。

  详细的标签参数说明请参考 [动态分派](/zh/on-call/advanced/dynamic-notifications)。
</Warning>

## 如何生成动态标签

动态分派的关键在于告警需要携带正确的标签。以下两种方式都可以实现，您可以根据实际情况选择。

### 方式一：在监控系统中直接打标

如果您拥有监控系统的配置权限，且监控系统支持自定义标签（如 Prometheus、Nightingale、Zabbix），直接在告警规则中添加标签即可：

* **标签键**：`layer_person_reset_0_emails`
* **标签值**：`bob@corp.com`

<Tip>
  此方式配置最简单，适合负责人相对固定的场景。但人员变更时需要同步修改监控系统的告警规则。
</Tip>

### 方式二：通过标签映射自动生成

如果您无法修改监控配置，或者希望将"监控对象 → 负责人"的对应关系集中管理（例如从 CMDB、配置平台或任何外部数据源同步），推荐使用 **标签映射** 功能。

此方式通过建立一张映射表，将告警中已有的基础标签（如 `host`）自动"翻译"为动态分派标签，无需修改监控系统。

<Steps>
  <Step title="准备映射数据">
    梳理监控对象与负责人的对应关系。小规模数据可以在页面中手动输入；大规模数据建议整理为 CSV 文件。

    <Note>
      CSV 中的目标列名必须使用动态分派的专用参数名（如 `layer_person_reset_0_emails`）。
    </Note>

    | host（源标签）     | layer\_person\_reset\_0\_emails（目标标签）   |
    | :------------ | :-------------------------------------- |
    | web-server-01 | [bob@corp.com](mailto:bob@corp.com)     |
    | db-server-02  | [alice@corp.com](mailto:alice@corp.com) |

    数据来源不限——CMDB、配置管理平台、运维系统或 Excel 表格均可，满足上述格式即可。
  </Step>

  <Step title="创建映射表">
    将数据录入系统，建立一个可复用的映射"字典"。

    1. 进入 **集成中心 → 标签映射**。
    2. 点击 **创建标签映射**。
    3. 录入数据：
       * **上传文件**：上传 CSV 文件，适合批量操作。
       * **手动输入**：在页面上逐条添加，适合少量数据维护。
    4. 保存后，您将获得一个可供集成引用的映射表。

    <Tip>
      如需与外部系统保持实时同步，推荐使用 [Flashduty API](https://developer.flashcat.cloud/flashduty/enrichment/mapping-data-upsert) 自动更新映射表，实现全自动的配置同步。
    </Tip>
  </Step>

  <Step title="配置标签增强规则">
    在告警集成中引用映射表，让系统在告警接入时自动补全动态标签。

    1. 进入 **集成中心 → 标签增强**。
    2. 找到目标告警集成（如 Zabbix 集成），进入详情。
    3. 选择 **标签增强** 页签，动作类型选择 **标签映射**。
    4. **选择映射表**：选择上一步创建的映射表。
    5. **配置映射关系**：
       * **源标签**：选择 `host`。
       * **目标标签**：选择 `layer_person_reset_0_emails`。

    完成后，系统会在告警接入时自动根据 `host` 的值查表，生成对应的动态分派标签。
  </Step>

  <Step title="配置模板分派策略">
    在目标协作空间中配置一条分派策略。此策略中的通知对象可以设为任意值（例如一个默认团队），它仅作为"模板"——实际分派时，通知对象会被动态标签替换。

    策略中的其他配置项（通知方式、超时升级等）会正常生效。

    详细配置方法请参考 [分派策略](/zh/on-call/channel/escalation-rule)。
  </Step>
</Steps>

## 验证效果

完成配置后，触发一条测试告警来验证：

1. **查看分派过程**：在 **故障详情 → 时间线** 中，您会看到类似日志："基于动态标签，分派对象已重置为 [bob@corp.com](mailto:bob@corp.com)"。
2. **检查告警标签**：在告警详情页，您**不会**看到 `layer_person_reset_xxx` 标签——这些控制指令在生效后会被系统自动清理。

## 延伸阅读

<CardGroup cols={2}>
  <Card title="动态分派" icon="shuffle" href="/zh/on-call/advanced/dynamic-notifications">
    查看完整的动态标签参数说明和推送示例
  </Card>

  <Card title="标签增强" icon="tags" href="/zh/on-call/integration/alert-integration/label-enhancement">
    了解如何根据已有标签自动生成新标签
  </Card>
</CardGroup>
