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

# Moesif 告警集成

> 通过 Moesif 的 Webhook 通知渠道，把 API 监控告警同步到 Flashduty On-call。

Moesif 的告警规则（Alert Rule）触发时，可以通过 **Webhook** 类型的通知渠道（Notification Channel）把告警以 JSON 发送到指定地址。把渠道指向 Flashduty 的推送地址后，Moesif 每发送一次告警通知，Flashduty 中就产生一条告警。

Moesif 只在告警触发时发送通知，没有恢复通知，Flashduty 中的告警不会自动恢复。请按 [告警恢复和自动关闭](#告警恢复和自动关闭) 开启超时自动关闭。

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

  ***

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

  ### 使用专属集成

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

  ### 使用共享集成

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

## 在 Moesif 中配置

***

<Steps>
  <Step title="创建 Webhook 通知渠道">
    1. 登录 Moesif，点击左下角账号菜单，选择 **Settings → Notification Channels**
    2. 点击 **Create Channel**，填写渠道名称（例如 `Flashduty`），**Channel Type** 选择 **Webhook**
    3. **Webhook URL** 填 Flashduty 集成的完整推送地址（以 `https://` 开头，包含 `integration_key`）
    4. **Method** 选择 **POST**。Flashduty 不校验 **Request Headers**，可以留空
    5. 点击 **Save**
  </Step>

  <Step title="在告警规则中选择该渠道">
    1. 打开 **Alert Rules**，编辑已有规则，或在任一时间序列图表上点击 **Alert** 新建规则
    2. 在 **Send To** 中选择上一步创建的渠道，保存
    3. 需要发送到 Flashduty 的每条告警规则都要单独选择该渠道
  </Step>

  <Step title="验证">
    让一条已选择该渠道的告警规则触发一次（例如临时把静态告警的阈值调低），确认 Flashduty 出现一条告警，标题为告警规则名称。
  </Step>
</Steps>

<Note>
  渠道和告警规则的 **Notification Throttle**、**Silencing alerts** 会让 Moesif 不再发送部分通知，被抑制的通知不会到达 Flashduty。
</Note>

## 告警恢复和自动关闭

***

Moesif 只在规则触发时发送通知，请求体中没有告警 ID，也没有表示恢复的字段，所以 Flashduty 中的告警不会自动恢复。

Moesif 的每次通知对应一条独立的 Flashduty 告警，需要手动关闭，或在接收该集成的协作空间中开启 [超时自动关闭](/zh/on-call/channel/create-edit)。建议设为告警规则评估周期的 2 倍，例如 15 分钟的规则设为 30 分钟。

## Alert Key

***

请求中没有可以标识同一告警的字段，Flashduty 为每次通知生成随机 Alert Key，不同通知不会合并为同一条告警。

## 状态和告警等级

***

Moesif 告警没有严重程度字段。Flashduty 中的告警等级固定为 **Warning**，状态等于告警等级，不会恢复。

请求中 `type` 不是 `alert` 的通知（例如同一渠道收到的其他类型通知）会被忽略，不产生告警。

## 告警内容

***

* **标题**：告警规则名称 `name`；规则只有一个分组值时，追加该分组值，例如 `Latency per user: user-1`。缺少规则名称时为 `Moesif alert`
* **描述**：规则条件 `metric`，以及每个分组值的当前取值和变化方向（动态告警），最多列出 20 个

| 标签 | 来源 |
| :- | :- |
| `alert_rule` | 告警规则名称 |
| `metric` | 规则条件描述 |
| `grouping_feature_level1` / `grouping_feature_level2` | 规则的第一、第二层分组字段（Group By） |
| `feature` | 分组值；未分组的规则为 `global`。仅在通知只包含一个值时设置 |
| `value` | 触发时的指标取值。仅在通知只包含一个值时设置 |
| `direction` | 动态告警的变化方向（`spike`、`increase`、`drop`、`positive_trend`）。仅在通知只包含一个值时设置 |
| `feature_count` | 通知包含多个分组值时，分组值的数量 |

## 排查问题

***

* **Flashduty 没有收到告警**：确认告警规则的 **Send To** 中选择了该渠道，规则处于开启状态；确认渠道的 Webhook URL 是完整的推送地址，包含 `integration_key`；在 Moesif 的 **Alert History** 中确认规则已经触发，且没有被 Throttle 或 Silencing 抑制
* **Flashduty 返回参数错误**：请求体不是 JSON，或既没有 `name` 也没有 `metric_values`。请使用 Moesif 自带的 Webhook 渠道，不要改写请求体
* **告警一直不关闭**：Moesif 不发送恢复通知。请在协作空间中开启超时自动关闭，或手动关闭


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.