+
+## 一、告警推送配置
+
+1. 登录您的 `Cloudflare` 控制台,转到 `通知` 菜单中,。
+2. 在`Webhooks` 中点击创建。
+3. 在编辑页面中,名称填写 `Flashduty` ,`URL` 处填写告警集成的
。
+4. 点击 `保存和测试` 完成配置。
+
+配置 Webhook 通道后,即可在通知策略中使用。
+
+
+## 二、状态对照
+
+
+
+当前 Cloudflare 集成推送到 Flashduty 的告警等级均为 Warning,但您可以通过[告警处理 Pipeline](https://docs.flashcat.cloud/zh/flashduty/alert-pipelines) 来自定义严重程度。
+
+
+
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.52 \344\274\201\345\276\256\345\221\212\350\255\246\351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.52 \344\274\201\345\276\256\345\221\212\350\255\246\351\233\206\346\210\220\346\214\207\345\274\225.md"
new file mode 100644
index 00000000..18f7a967
--- /dev/null
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.52 \344\274\201\345\276\256\345\221\212\350\255\246\351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -0,0 +1,81 @@
+---
+title: "企微告警集成"
+description: "在 Flashduty 生成唯一的企微机器人地址,通过企微的方式将告警的发生与恢复同步到 Flashduty"
+date: "2025-05-19T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/wecom-alert-integration-guide"
+---
+
+在 Flashduty 生成唯一的企微机器人告警地址,通过企微机器人告警地址将告警的发生与恢复同步到 Flashduty。
+
+
+
+## 操作步骤
+---
+
+### 创建企微告警集成
+
+您可通过以下2种方式,获取一个企微机器人告警集成地址,任选其一即可。
+
+#### 使用专属集成
+
+当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。
+
+
+ 展开
+
+ 1. 进入 Flashduty 控制台,选择 **协作空间**,进入某个空间的详情页面
+ 2. 选择 **集成数据** tab,点击 **添加一个集成**,进入添加集成页面
+ 3. 选择 **企微告警** 集成,点击 **保存**,生成卡片。
+ 4. 点击生成的卡片,可以查看到 **企微告警集成地址**,复制备用,完成。
+
+
+
+#### 使用共享集成
+
+当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。
+
+
+ 展开
+
+ 1. 进入 Flashduty 控制台,选择 **集成中心=>告警事件**,进入集成选择页面。
+ 2. 选择 **企微告警** 集成:
+ - **集成名称**:为当前集成定义一个名称。
+ - **消息类型**:选择企微告警消息类型,目前仅支持 Text、Markdown。
+ - **推送模式**:选择企微告警在何种情况下触发或恢复告警。
+ 3. 复制当前页面的 **企微告警集成地址** 备用。
+ 4. 配置默认路由,并选择对应的协作空间(集成创建后可以前往 `路由` 进行更多路由规则的配置)。
+ 5. 完成。
+
+
+
+
+### 定制企微告警集成
+
+#### 企微告警集成地址
+
+系统会帮您生成一个唯一的企微告警集成地址,该地址兼容企微机器人消息的协议,在有的平台仅支持企微机器人通道时,您可以使用该地址来接收对应的消息。
+
+#### 推送模式
+
+默认系统总是为每一条消息创建新的告警,但您可以切换模式为:
+
+**根据规则触发或关闭告警**:该模式下,每当接收到新消息,系统会根据您的规则进行消息匹配,匹配到的消息按照规则去触发新告警或关闭已有告警。
+
+ - 您至少需要填写一条**触发**规则;
+ - 您必须设置 Alert Key 的正则提取规则。系统使用该字段来查找历史告警,以便对其进行更新或关闭;**如果正则提取失败,系统将随机来生成 Alert Key**,以确保告警不会因为配置错误而丢失;
+ - 您可以选择,当所有的规则都不匹配时,是否丢弃消息。
+
+ 配置示例:
+
+ - 接收所有消息,当消息内容中包含 **RESOVED** 字样时,关闭告警,否则触发新告警;
+ - Alert Key 从消息内容中提取,规则为 **/(.\*)/**。
+
+
+### 注意事项
+- 企微告警集成地址仅支持接收 Text、Markdown 消息类型,其他消息无法接收。
+- Flashduty 会生成默认告警标题: “企微机器人告警”,如果您需要更改标题,可以通过[告警处理 Pipeline](https://docs.flashcat.cloud/zh/flashduty/alert-pipelines) 来自定义标题。
+
+## 严重程度映射关系
+---
+
+当前企微告警集成推送到 Flashduty 的严重程度均为Warning,但您可以通过[告警处理 Pipeline](https://docs.flashcat.cloud/zh/flashduty/alert-pipelines) 来自定义严重程度。
\ No newline at end of file
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.6 Uptime Kuma \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.6 Uptime Kuma \351\233\206\346\210\220\346\214\207\345\274\225.md"
index 0964ccc8..97867482 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.6 Uptime Kuma \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.1 \345\221\212\350\255\246\351\233\206\346\210\220/8.1.6 Uptime Kuma \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -50,7 +50,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/uptime-kuma-integration-guide"
**步骤 1:设置通知渠道**
1. 进入 `Settings -> Notifications` 页面,单击 Setup 进行编辑,如下图所示;
-2. `Notification Type` 选择 `FlashDuty( Flashduty )`;
+2. `Notification Type` 选择 `Flashduty( Flashduty )`;
3. `Integration Key` 复制写入集成推送地址中的 integration_key 参数值;
4. `Severity` 为严重程度,按需选择;
5. 提交保存
@@ -63,7 +63,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/uptime-kuma-integration-guide"
1. 点击 `Add New Monitor` 或编辑已有的监控项,按需完成监控配置;
2. 如图,右侧 `Notifications` 部分启用上一步创建的通知方式;
-3. 如需设置标签,可以添加 `Tags`,注意仅同时存在 Key/Value 的标签才会推送到 FlashDuty;
+3. 如需设置标签,可以添加 `Tags`,注意仅同时存在 Key/Value 的标签才会推送到 Flashduty;
4. 提交保存,等待告警触发。
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.1 \351\243\236\344\271\246 Lark \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.1 \351\243\236\344\271\246 Lark \351\233\206\346\210\220\346\214\207\345\274\225.md"
index 84dc6a8d..b6ae5b82 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.1 \351\243\236\344\271\246 Lark \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.1 \351\243\236\344\271\246 Lark \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -1,10 +1,10 @@
---
-title: Contributing to our documentation — Meilisearch documentation
-description: The Meilisearch documentation is open-source. Learn how to help make it even better.
-sidebarDepth: 3
+title: "飞书集成"
+description: "通过集成飞书自建应用,您可以在飞书端内接收和响应告警。"
+date: "2025-05-19T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/lark-integration-guide"
---
-
-通过集成飞书自建应用,实现在飞书端内接收和响应告警的能力。
+通过集成飞书自建应用,您可以在飞书端内接收和响应告警。
@@ -18,120 +18,136 @@ sidebarDepth: 3
### 1. 创建自建应用
-访问 [飞书开发者后台](https://open.feishu.cn/app),创建企业内自建应用。 (详见飞书开发文档-[创建企业自建应用](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step1#132c1aac))
+访问 [飞书开发者后台](https://open.feishu.cn/app),创建企业内自建应用。应用图标可使用 [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
-

+详见飞书开发文档 [创建企业自建应用](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step1#132c1aac)。
-应用图标可使用[Flashduty官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
+
### 2. 复制凭证信息
-前往 **凭证与基础信息** 页面,复制 `App ID` 和 `App Secret`备用。
+前往 **凭证与基础信息** 页面,复制 `App ID` 和 `App Secret` 备用。
+
-

+
### 3. 复制事件回调的 Token 信息
-前往 **开发配置-事件与回调-加密策略** 页面,复制 `Encrypt Key`(推荐启用,更安全) 和 `Verification Token`备用。
+前往 开发配置 → 事件与回调 → **加密策略** 页面,生成并复制 `Encrypt Key`(推荐启用,更安全)和 `Verification Token` 备用。
-

+
## 二、添加飞书集成
---
-回到 Flashduty **集成中心** 页面,选择 **即时消息=>飞书**,在表单中填入 `名称` 以及上一步复制的`App ID`、`App Secret`、`Verification Token` 和 `Encrypt Key`后,点击保存创建。
+回到 Flashduty **集成中心** 页面,选择 即时消息 → **飞书**,在表单中填入 `名称` 以及上一步复制的 `App ID`、`App Secret`、`Verification Token` 和 `Encrypt Key` 后,点击 **保存** 完成创建。
-

+创建成功后,您将在列表中看到已添加的飞书集成。点击其名称进入详情页面,即可查看 **网页配置** 地址、**重定向 URL** 和 **消息卡片请求网址**,这些信息将在后续步骤中使用。
-创建后在列表中会看到刚才添加的飞书集成,点击名称进入详情后,会看到 **网页配置** 地址、**重定向 URL** 地址以及 **消息卡片请求网址** 等信息,后边流程会用到。
-
-

+
## 三、配置飞书应用
---
### 1. 开通并配置应用能力
-1). 回到飞书开发者后台,进入刚才创建的飞书应用,进入 **添加应用能力-按能力添加** 页面,同时开通 **网页应用** 和 **机器人** 能力。
+1. 回到飞书开发者后台,进入刚才创建的飞书应用,进入 添加应用能力 → **按能力添加** 页面,同时开通 **网页应用** 和 **机器人** 能力。
-

+
-2). 前往 **网页应用** 页面,配置 `桌面端主页` 和 `移动端主页`,内容均为集成详情中的 **网页配置** 地址。
+2. 前往 **网页应用** 页面,配置 `桌面端主页` 和 `移动端主页`,内容均为集成详情中的 **网页配置** 地址。详见飞书开发文档 [配置应用主页地址](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step1#8366b844)。
-

+
-(详见飞书开发文档-[配置应用主页地址](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step1#8366b844))
+3. 前往 事件回调 → **事件配置** 页面,配置 `订阅方式`(内容为集成详情中的 **消息卡片请求网址**)。然后,添加以下两项事件:
-3). 前往 **事件回调-回调配置** 页面,配置 `消息卡片请求网址`(内容为集成详情中的 **消息卡片请求网址**)并添加回调。
+- `im.chat.disbanded_v1`
+- `im.message.receive_v1`
-

-

+
-### 2. 添加重定向 URL 到飞书应用中
+4. 前往 事件回调 → **回调配置** 页面,配置 `订阅方式`(内容为集成详情中的 **消息卡片请求网址**)。然后,订阅以下两项回调:
-进入 **安全设置** 页面,配置 `重定向URL`,内容为集成详情中的 **重定向 URL**。
+- `card.action.trigger`
+- `card.action.trigger_v1`
-

-
-(详见飞书开发文档-[配置重定向 URL](https://open.feishu.cn/document/uYjL24iN/uYjN3QjL2YzN04iN2cDN?lang=zh-CN#c863e533))
-
-### 3. 申请应用权限
+
-进入 **权限管理** 页面,申请 `im:chat` 和 `im:message` 两项权限。此两项权限将允许当前应用获取自身所在群聊信息以及向群聊或个人发送消息的能力。
+### 2. 添加重定向 URL 到飞书应用
-

+进入 **安全设置** 页面,配置 `重定向URL`,内容为集成详情中的 **重定向 URL**。
-## 四、应用发布与使用
----
+详见飞书开发文档 [配置重定向 URL](https://open.feishu.cn/document/uYjL24iN/uYjN3QjL2YzN04iN2cDN?lang=zh-CN#c863e533)。
-完成上述步骤后,进行应用的发布与使用,管理员审核后即可使用。
-注意:**可用范围** 需要特别配置,推荐 **所有员工**。
+
-

+### 3. 申请应用权限
-详见飞书开发文档-[应用发布与使用](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step-4)。
+进入 **权限管理** 页面,为先前步骤创建的群应用申请以下权限:
-应用发布后,就可以使用 手机端/PC 端 访问应用。首次访问需要登录并关联(飞书< - >Flashduty)账号,后续可以免登录使用。
+- `im:chat`:获取与更新群组信息
+- `im:message`:获取与发送单聊、群组消息
+- `contact:user.id:readonly`:通过手机号或邮箱获取用户 ID
-1. 手机端:手机端通过 飞书 > 工作台 > 搜索应用名称 > 打开应用 使用网页应用。
-2. PC 端:桌面(PC)端通过 飞书 > 工作台 > 搜索应用名称 > 打开应用 使用网页应用。
+
-## 五、常见问题
+## 四、应用发布与使用
---
-1. **消息无法投递到个人**,操作记录提示`未关联应用`?
+完成上述所有配置后,请发布应用。待管理员审核通过后即可使用。
- - 前往 飞书 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(飞书< - >Flashduty)账号,系统才能拿到用户身份进行消息推送
+详见飞书开发文档 [应用发布与使用](https://open.feishu.cn/document/uYjL24iN/uMTMuMTMuMTM/development-guide/step-4)。
-2. **消息卡片按钮点击无效或报错**?
+> 为了确保所有人可以使用应用,需将应用 **可见范围** 调整为全部员工,再进行应用发布。
- - 确保账户已经完成关联,前往 飞书 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(飞书< - >Flashduty)账号。如果已经登录过,尝试点击右上角菜单,切换账户,重新登录来绑定账号
- - 确保已购买足够的 license,已使用 license 情况,可以在控制台 > 费用中心查看
+
-3. **分派策略飞书群聊列表为空**?
- - 前往 飞书,选择群聊会话,添加已创建的Flashduty机器人,如下图所示:
- - 回到分派策略配置页面,刷新后重新选择群聊列表
+应用发布后,即可通过 **手机端** 或 **PC 端** 访问应用。首次访问需要登录并关联飞书与 Flashduty 账号,后续可以免登录使用。
-

-

+- **手机端**:通过 飞书 → 工作台 → 搜索应用名称 → **打开应用** 使用网页应用。
+- **PC 端**:通过 飞书 → 工作台 → 搜索应用名称 → **打开应用** 使用网页应用。
-4. **飞书自建应用 API 限制:** [飞书文档说明](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit)
+
- **调用量限制:**
+## 五、配置作战室
- | 飞书版本 | 调用总量/月 | 刷新时间 |
- | :----------: | :--: | :----: |
- |基础免费版|10,000 次|每个自然月的 1 号|
- |其他版本|不限制|-|
+> 确保应用已被授权使用作战室功能所需的[额外权限](#war-room-scope)。
- **频控限制:**
+完成先前步骤后,在 Flashduty 集成配置页面的 **增强功能** 模块,勾选 **开启作战室** 即可启用该功能,无需额外配置。
- | 场景 | 限制 |
- | :----------: | :--: |
- |所有接口|每个应用最高频率 50 次/秒|
- |发消息接口|每个应用最高频率 1000 次/分钟|
- |群机器人 Webhook|最高频率 100 次/分钟|
- |给同一个用户或同一个群发消息|最高频率 5 次/秒|
+## 六、常见问题
+---
- **注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
+1. **消息无法投递到个人,操作记录提示 `未关联应用`?**
+ - 前往 飞书 → 工作台 → 搜索应用名称 → **打开应用**,完成一次登录以关联飞书与 Flashduty 账号,系统才能获取用户身份进行消息推送。
+2. **消息卡片按钮点击无效或报错?**
+ - 确保账户已经完成关联。您可以前往 飞书 → 工作台 → 搜索应用名称 → **打开应用**,完成一次登录。如果已经登录过,请尝试点击右上角菜单,切换账户后重新登录以绑定账号。
+ - 确保已购买足够的 License。已使用 License 情况,可以在 控制台 → **费用中心** 查看。
+3. **分派策略飞书群聊列表为空?**
+ - 前往飞书,在指定群聊会话中添加已创建的 Flashduty 机器人。
+ - 回到分派策略配置页面,刷新后重新选择群聊列表。
+
+
+
+4. **飞书自建应用 API 限制?**
+ - **调用量限制:**
+
+ | **飞书版本** | **调用总量/月** | **刷新时间** |
+ | :---: | :---: | :---: |
+ | 基础免费版 | 10,000 次 | 每月 1 日 |
+ | 其他版本 | 不限制 | - |
+
+ - **频控限制:**
+
+ | **场景** | **限制** |
+ | :---: | :--- |
+ | 所有接口 | 每个应用最高频率 50 次/秒 |
+ | 发消息接口 | 每个应用最高频率 1000 次/分钟 |
+ | 群机器人 Webhook | 最高频率 100 次/分钟 |
+ | 给同一个用户或同一个群发消息 | 最高频率 5 次/秒 |
+
+ > 超出 API 调用量限制后,飞书应用将无法正常推送消息,建议合理使用通知渠道。详见 [飞书官方文档](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit)。
+5. **为什么作战室功能未按预期工作?**
+ - 请再次检查是否为应用配置了作战室功能[所需权限](#war-room-scope)。
+ - 请参考 Flashduty [作战室介绍文档](https://docs.flashcat.cloud/zh/flashduty/war-room) 的 **常见问题** 部分。
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.2 \351\222\211\351\222\211 Dingtalk \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.2 \351\222\211\351\222\211 Dingtalk \351\233\206\346\210\220\346\214\207\345\274\225.md"
index 1c460e22..a1b7ed64 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.2 \351\222\211\351\222\211 Dingtalk \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.2 \351\222\211\351\222\211 Dingtalk \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -5,157 +5,229 @@ date: "2025-05-19T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/dingtalk-integration-guide"
---
-通过集成钉钉自建应用,实现在钉钉端内接收和响应告警的能力。
+通过集成钉钉自建应用,您可以在钉钉端内接收和响应告警。
-**(本文档以钉钉开放平台新版为例)**
+> 本文档以钉钉开放平台新版为例。
## 视频介绍
+
---
+
+
-## 一、创建钉钉应用
+## 一、创建钉钉应用与添加钉钉集成
+
---
### 1. 创建自建应用
-访问 [钉钉开发者后台](https://open-dev.dingtalk.com/fe/app) - 应用开发 - 企业内部开发,创建应用。 (详见钉钉开发文档-[创建企业内部应用-H5 微应用](https://open.dingtalk.com/document/orgapp/microapplication-creation-and-release-process#title-ovn-666-1ty))
+访问 [钉钉开发者后台](https://open-dev.dingtalk.com/fe/app) → 应用开发 → **企业内部开发**,创建应用。
+
+详见钉钉开发文档 [创建企业内部应用-H5 微应用](https://open.dingtalk.com/document/orgapp/microapplication-creation-and-release-process#title-ovn-666-1ty)。
-

+
-应用图标可使用[Flashduty官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
+应用图标可使用 [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
-### 2. 复制企业 CorpId
+### 2. 复制企业 `CorpId`
-点击页面右上角企业,在下拉菜单中复制 `CorpId` 备用。
+点击页面右上角企业头像,在下拉菜单中复制 `CorpId`。
-

+
+
+回到 Flashduty 集成配置页面,在表单中填入对应的 `CorpId`。
### 3. 复制应用凭证信息
-前往 **凭证与基础信息** 页面,复制 `AgentID`、 `ClientID` 和 `ClientSecret` 备用。
+进入创建的应用详情界面,通过左侧菜单栏前往 应用能力 → **凭证与基础信息** 页面,复制 `AgentId`、`Client ID` 和 `Client Secret`。
+
+
-

+回到 Flashduty 集成配置页面,在表单中填入对应的 `AgentId`、 `Client ID` 和 `Client Secret`。
### 4. 复制事件订阅信息
-前往 **开发配置 - 事件与回调** 页面。
+前往 开发配置 → **事件与回调** 页面。设置推送方式为 `HTTP推送`,然后点击按钮生成 `加密 aes_key` 和 `签名 Token`,并复制保存。
-生成 `加密 aes_key` 和 `签名 Token` 备用。
+
-**(注意:生成 aes_key 和 Token 后请将信息临时保存到其它地方,离开页面后信息会消失,后续会用到)**
+回到 Flashduty 集成配置页面,在表单中填入对应的 `加密 aes_key` 和 `签名 Token`,点击 **保存** 按钮。
-

+### 5. 配置事件订阅
-## 二、添加钉钉集成
----
+进入 开发配置 → **事件订阅** 页面。
-回到Flashduty **集成中心** 页面,选择即时消息 > 钉钉,在表单中填入 `集成名称` 以及上一步复制的 应用信息后,点击保存创建。
+根据 Flashduty 集成详情中的 `事件订阅请求地址`,配置 **事件订阅请求网址**。配置完成后 **保存**。
-

+
-保存后会看到 **网页配置** 地址、**服务器出口 IP** 地址以及 **事件订阅请求网址** 等信息,后边流程会用到。
+在 **保存** 按钮下方,选中 `群会话更换群名称`、`群内安装酷应用` 和 `群内卸载酷应用` 三种群会话事件,配置完成后点击 **保存**。
-

+
-## 三、配置钉钉应用
----
+### 6. 添加应用能力
-### 1. 添加酷应用、网页应用和机器人
-

+创建酷应用。进入 开发配置 → 添加应用能力 → 酷应用 → **酷应用列表** 页面,点击 **创建酷应用** 按钮,选择 **扩展到群会话**。
-1)创建酷应用 **酷应用-酷应用列表** 页面,点击 **创建酷应用** 按钮,选择 **扩展到群会话**
+进入 **编辑酷应用** 页面,完成以下步骤:
-

+1. 填写基本信息。图标可使用 [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
-2)进入到 **编辑酷应用** 页面,完成以下步骤:
+
-2.1) 第一步,填写基本信息,图标可使用[Flashduty官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
+2. 配置功能设计。在左侧选中 **群快捷入口** 和 **消息卡片**。群快捷入口图标可使用 [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png),桌面和移动端访问地址请复制集成详情里的 **酷应用网页地址**。
-

+
-2.2) 第二步,配置功能设计,左侧选中 **群快捷入口** 和 **消息卡片**。群快捷入口图标可使用[Flashduty官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png),桌面和移动端访问地址请复制集成详情里的 **酷应用网页地址**。
+3. 跳过第三步功能开发,进入第四步 **预览发布**,点击 **发布** 按钮并确认。
-

+### 7. 配置机器人与消息推送
-2.3) 跳过第三步功能开发,来到第四步 **预览发布**,点击 **发布** 按钮并确认。
+进入 应用能力 → **机器人** 页面,打开机器人配置,填写名称并上传图标,然后点击 **保存**。图标可使用 [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png)。
-### 2. 配置机器人与消息推送
+
-进入 **应用能力-机器人** 页面,打开机器人配置,填写名称并上传图标,图标可使用[Flashduty官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png),保存即可。
+### 8. 配置应用地址
-

+进入 应用能力 → **网页应用** 页面。
-### 3. 配置应用地址
+根据 Flashduty 集成详情中的 `应用首页地址` 和 `PC 端首页地址`,配置 **应用首页地址** 和 **PC 端首页地址**。完成后点击 **保存**。
-进入 **应用能力-网页应用** 页面
+
-1)配置 **应用首页地址** 和 **PC 端首页地址**,内容为集成详情中的 **应用首页地址** 和 **PC 端首页地址**。
+### 9. 申请应用权限
-2)点击右上角 **保存**。
+进入 开发配置 → **权限管理** 页面,为先前步骤创建的群应用申请以下权限:
-

+- `qyapi_chat_manage`:获取群聊信息
+- `qyapi_robot_sendmsg`:向群聊或个人发送消息
-### 4. 配置事件订阅
+
-1)**开发配置-事件订阅** 页面,配置 **请求网址**,内容为集成详情中的 **事件订阅请求网址**,配置完成后**保存**。
+## 二、配置作战室
-

+> 若您无需配置作战室功能,可跳过本步骤,直接进入 [**应用发布与使用**](#publish)。
-2)**保存**按钮下方,选中`群会话更换群名称`、`群内安装酷应用`和`群内卸载酷应用`三种群会话事件,配置完成后**保存**。
+
-

+### 1. 申请应用权限
-### 5. 申请应用权限
+进入 开发配置 → **权限管理** 页面,为先前步骤创建的群应用申请以下权限:
-进入 权限管理 页面,申请 `qyapi_chat_manage` 和 `qyapi_robot_sendmsg` 两项权限。此两项权限将允许当前应用获取自身所在群聊信息以及向群聊或个人发送消息的能力。
+- `qyapi_chat_read`:获取群聊信息
+- `qyapi_chat_base_read`:获取群聊信息
+- `qyapi_get_member_by_mobile`:允许当前应用根据手机号获取钉钉用户以便邀请用户加入群聊
-

+
-## 四、应用发布与使用
----
+### 2. 配置群模板
+
+通过钉钉开放平台顶部菜单栏,前往 开放能力 → **场景群**。
+
+1. 配置 **群机器人**。在左侧菜单栏中选择 **机器人**,然后点击 **创建群机器人**。
+
+ > 本步骤中配置的 **群机器人** 和 **应用机器人** 是两个不同的概念。群机器人被用于在生成群聊时自动创建群机器人。群机器人和应用机器人拥有不同的 **机器人 ID**。若要为钉钉开启作战室功能,必须额外配置 **群机器人**。
+
+ 填写群机器人配置。**消息回调地址**、**消息回调 token**、**信息来源网站** 三项配置在 Flashduty 的应用场景中并无实际作用,您可选择任意满足要求的值进行配置。
+
+ **示例配置**:
+
+ | **配置项** | **值** |
+ | -------------- | --------------------------------------------------------------------------------- |
+ | 机器人名称 | Flashduty |
+ | 机器人头像 | [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png) |
+ | 简介 | Flashduty |
+ | 消息预览图 | [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png) |
+ | 详细描述 | Flashduty 消息推送机器人。 |
+ | 消息回调地址 | `https://flashcat.cloud/` |
+ | 消息回调 token | `token` |
+ | 信息来源网站 | `https://flashcat.cloud/` |
+
+ 完成配置后,点击 **创建**,然后点击 **审批**。右上角弹出 “提交成功” 后,钉钉已自动完成群机器人的审批。
-完成上述步骤后,进行**应用发布-版本管理与发布**,进行创建新版本,然后进行发布(注意把可见范围调整为全部员工,否则其他人无法使用)
+ 
-

-

+2. 配置 **群模板**。在左侧菜单栏中选择 **群模板**,点击 **创建群模板**。
-应用发布后,就可以使用 手机端/PC 端 访问应用。首次访问需要登录并关联(钉钉< - >Flashduty)账号,后续可以免登录使用。
+ 将 **企业类型** 设置为 `企业内部`,将 **可选应用** 设置为先前步骤创建的自建应用。然后,在下一步骤中填写模板信息。
-1. 手机端:手机端通过 钉钉 > 工作台 > 搜索应用名称 > 打开应用 使用网页应用。
-2. PC 端:桌面(PC)端通过 钉钉 > 工作台 > 搜索应用名称 > 打开应用 使用网页应用。
+ **模板名称**、**图标**、**描述**、**文案介绍**、**模板描述**、**图片介绍** 等介绍性信息不会影响群模板功能的使用,您可选择任意满足要求的值进行配置。
+ **示例配置**:
+
+ | **配置项** | **值** |
+ | ---------- | --------------------------------------------------------------------------------- |
+ | 模板名称 | Flashduty 作战室 |
+ | 图标 | [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png) |
+ | 描述 | 为活跃故障一键创建作战室。 |
+ | 文案介绍 | 为活跃故障一键创建作战室。 |
+ | 模板描述 | 为活跃故障一键创建作战室。 |
+ | 图片介绍 | [Flashduty 官方 icon](https://download.flashcat.cloud/flashcat_logo_circular.png) |
+
+ 在 **选择机器人** 配置项中,点击 **选择已创建的机器人**,选择上一步骤中创建的群机器人。其他配置项保持默认。最后点击 **保存编辑**。
+
+ 
+ 
+
+ 在 **填写灰度群** 步骤中,点击 **创建灰度群**,然后点击 **发布灰度**。
+
+ 最后,再次点击左侧菜单栏的 **群模板**,然后点击进入刚才创建的群模板。点击 **提交审核**,待钉钉自动通过审核后,最后点击 **发布**。
+
+3. 在已经发布的群模板详细信息页,复制 **模板 ID** 和 **机器人 ID**。
+
+ 
+
+ 回到 Flashduty 集成配置页面,在表单中填入对应的 `模版 ID` 和 `机器人 ID`,点击 **保存** 按钮。
+
+
+
+## 三、应用发布与使用
-## 五、常见问题
---
-1. **消息无法投递到个人**,操作记录提示`未关联应用`?
- - 前往 钉钉 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(钉钉< - >Flashduty)账号,系统才能拿到用户身份进行消息推送
+完成上述步骤后,前往 应用发布 → **版本管理与发布**,创建新版本并发布。
-2. **消息卡片按钮点击无效或报错?**
+> 为了确保所有人可以使用应用,需将应用 **可见范围** 调整为全部员工,再进行应用发布。
+
+
+
+应用发布后,即可通过 **手机端** 或 **PC 端** 访问应用。首次访问需要登录并关联钉钉与 Flashduty 账号,后续可以免登录使用。
- - 前往 钉钉 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(钉钉< - >Flashduty)账号。如果已经登录过,尝试点击右上角菜单,切换账户,重新登录来绑定账号
- - 确保已购买足够的 license,已使用 license 情况,可以在控制台 > 费用中心查看
+- **手机端**:通过 钉钉 → 工作台 → 搜索应用名称 → **打开应用** 使用网页应用。
+- **PC 端**:通过 钉钉 → 工作台 → 搜索应用名称 → **打开应用** 使用网页应用。
+## 四、常见问题
+
+---
+
+1. **消息无法投递到个人,操作记录提示 `未关联应用`?**
+ - 前往 钉钉 → 工作台 → 搜索应用名称 → **打开应用**,完成一次登录以关联钉钉与 Flashduty 账号,系统才能获取用户身份并推送消息。
+2. **消息卡片按钮点击无效或报错?**
+ - 前往 钉钉 → 工作台 → 搜索应用名称 → **打开应用**,完成一次登录以关联钉钉与 Flashduty 账号。如果已经登录过,尝试点击右上角菜单,切换账户,重新登录来绑定账号。
+ - 确保您已购买足够的 License。已使用 License 情况,可以在 控制台 → [**费用中心**](https://console.flashcat.cloud/wallet) 查看。
3. **分派策略钉钉群聊列表为空?**
+ - 前往钉钉,选择群聊会话安装酷应用,否则无法获取群聊列表。
- - 前往 钉钉,选择群聊会话安装酷应用,否则无法拿到群聊列表
- - 回到分派策略配置页面,刷新后重新选择群聊列表
- - 如果仍然拿不到群聊列表,请尝试群内卸载酷应用后,重试以上步骤。如果还不可以,请联系客户或专属技术支持
+ 
+ 
-

-

+ - 回到分派策略配置页面,刷新后重新选择群聊列表。
+ - 如果仍然无法获取群聊列表,请尝试在群内卸载酷应用后,重试以上步骤。如果问题依旧,请联系客户或专属技术支持。
-

+4. **为什么作战室功能未按预期工作?**
+ - 请再次检查是否为应用配置了作战室功能[所需权限](#war-room-scope)。
+ - 请参考 Flashduty [作战室介绍文档](https://docs.flashcat.cloud/zh/flashduty/war-room) 的 **常见问题** 部分。
-4. **钉钉自建应用 API 调用量:** [钉钉文档说明](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI)
+5. **钉钉自建应用 API 调用量?**
-| 钉钉版本 | 调用总量/月 | QPS| 刷新时间 |
-| :----------: | :--: | :----: | :----:|
-|标准版|10,000 次|20|每月1日|
-|专业版|50万次|40| 每月1日 |
-|专属版|550万次|60| 每月1日 |
+ | **钉钉版本** | **调用总量/月** | **QPS** | **刷新时间** |
+ | :----------: | :-------------: | :-----: | :----------: |
+ | 标准版 | 10,000 次 | 20 | 每月 1 日 |
+ | 专业版 | 50 万次 | 40 | 每月 1 日 |
+ | 专属版 | 550 万次 | 60 | 每月 1 日 |
-**注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
+ > 超出 API 调用量限制后,钉钉应用将无法正常推送消息。建议合理使用通知渠道。详见 [钉钉官方文档](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI)。
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.3 \344\274\201\344\270\232\345\276\256\344\277\241 Wecom \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.3 \344\274\201\344\270\232\345\276\256\344\277\241 Wecom \351\233\206\346\210\220\346\214\207\345\274\225.md"
index a717213e..6b46b76f 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.3 \344\274\201\344\270\232\345\276\256\344\277\241 Wecom \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.3 \344\274\201\344\270\232\345\276\256\344\277\241 Wecom \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -1,80 +1,152 @@
---
-title: "企业微信集成"
-description: "通过集成企业微信第三方应用,实现在企业微信端内接收和响应告警的能力"
+title: "企业微信 WeCom 集成"
+description: "通过集成企业微信第三方应用,实现在企业微信端接收和响应告警的能力"
date: "2025-05-19T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/wecom-integration-guide"
---
-通过集成企业微信第三方应用,实现在企业微信端内接收和响应告警的能力。
+通过集成企业微信应用,您可以在企业微信端内接收和响应告警。
+
+本文档支持 [集成第三方应用](#third-party) 或 [集成企业自建应用](#self) 两种方式。
## 视频介绍
+
---
+
+
-## 一、安装应用
+> **集成第三方应用** 和 **集成自建应用** 两种方式只需按需配置其中一种。
+
+
+
+## 一、集成第三方应用
+
---
-1. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps) - `应用管理` - `第三方`,选择添加第三方应用
+> Flashduty 作为企业微信服务商,为您提供 Flashduty 应用的长期免费版本。该应用需要获得企业微信接口调用许可才能使用(免密登录 + 消息发送)。
+>
+> 该许可目前支持 **最多 60 天** 免费,超出该使用时长后,Flashduty 需要为您购买企业微信许可,您方可继续使用。
+
+1. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps),进入 应用管理 → **应用** 页面,点击 **添加第三方应用**。
-

+ 
-2. 搜索栏输入 `flashduty`,检索到应用,并点击 `添加` 按钮
+2. 在搜索栏输入 `Flashduty`,检索到应用后,点击 **添加** 按钮。
-

+ 
-3. 修改应用 `可见范围`,推荐全员或具体部门节点,防止新增成员时还要修改范围。点击 `同意以上授权并添加`,完成安装
+3. 修改应用 **可见范围**,推荐选择全员或具体部门节点,以避免新增企业成员时仍需修改。然后,点击 **同意以上授权并添加** 完成安装。
-

+ 
-4. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps) - `我的企业` 页面,复制 `企业ID` 作为当前页面的 `Corp ID` 填写到集成配置,点击保存,完成集成配置
+4. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps),进入 **我的企业** 页面,获取 `企业 ID`。
-

+ 
-5. **请注意:Flashduty作为企业微信服务商,为您提供 `FlashDuty` 应用的长期免费版本。该应用需要获得企业微信接口调用许可才能使用(免密登录+发消息),该许可目前支持`最多60天`免费,超过后我们必须为您购买企微许可才能使用。**
+5. 返回 Flashduty 集成配置页面,填写上一步获取的 `企业 ID`,点击 **保存** 完成集成。
+
+
+
+## 二、集成企业自建应用
-## 二、常见问题
---
-1. **点击集成保存按钮,报错 `authorize app first`?**
+1. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps),进入 应用管理 → **应用** 页面,点击 **创建应用**。
- - 请检查您是否完成应用的安装步骤,比如您是否可以在工作台看到 `FlashDuty` 这个应用
- - 请检查您是否正确配置了 `Corp ID`
+ 
-2. **如何完成账户关联?或消息发送提示`未关联应用`?**
+2. 配置 **应用 Logo**、**应用名称** 和 **应用可见范围**。
- - 登入企业微信客户端(桌面端和移动端均可),进入 `工作台`,找到并进入应用 `FlashDuty`
- - 首次进入应用需要登录,选择成员账号 - 密码或单点登录,登入成功后,即完成 `Flashduty` 到 `企业微信` 账户关联
- - 后续进入应用将免密登录
+ 
-3. **如何进行故障通知?**
+3. 返回 Flashduty 集成配置页面,根据您的实际情况选择企业微信是否为 `非私有化部署版本`。
- - 必须参照问题 1,先完成账户关联,才能发送通知
- - 进入某个协作空间详情页面-分派策略,在个人渠道部分,选择通知到企业微信集成,完成通知配置
- - 支持对企业微信通知内容进行自定义,您前往模板管理页面,设定自定义模板。注意:**自定义区域展示行数最多 8 行**,超过会被企业微信截断
+ 若您的企业微信为私有化部署版本,则需要在配置页面中填写 `Endpoint`。此地址需要能够被 Flashduty 服务访问,您可以考虑为其设置 **白名单授权**。
-

+4. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps),进入 **我的企业** 页面,获取 `企业 ID`,并将其填写至 Flashduty 集成配置页面。
-4. **如何在微信内处理告警?**
+5. 返回 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps),进入 **应用管理** 页面,点击您所创建的应用进入详情页。获取页面中的 `AgentId`,并将其填写至 Flashduty 集成配置页面。
- - 点击卡片消息,直接进入告警详情页面
- - 点击 `开始处理`,直接将告警置为 `处理中` 状态
- - 点击 `直接关闭`,直接将告警置为 `已关闭` 状态
- - 点击 `屏蔽2小时`,直接将告警屏蔽 2 小时,如果想屏蔽更多时间,点击卡片右上角 `...`有更多屏蔽选项
+6. 在应用详情页,获取 `Secret`,并将其填写至 Flashduty 集成配置页面。
-5. **为什么卡片消息提供了 `状态刷新` 按钮?**
+7. 在应用详情页,进入 **网页授权及 JS-SDK** 页面,点击 **设置可信域名**,并按要求配置。
+
+ > 可信域名需要指向 Flashduty 的后端地址 `{api_host}`(可通过 CNAME 或代理转发实现)。
+ >
+ > 关于可信域名的要求,详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
+
+ 
+
+ 返回 Flashduty 集成配置页面,填写该域名,并完成验证。
+
+8. 在应用详情页,进入 **接收消息** 页面,并 **设置 API 接收**。分别对 `Token` 和 `EncodingAESKey` 点击 **随机获取**,然后复制并保存所生成的值。
- - 企业微信限制一次卡片交互后 72 小时只可更新一次。每一次按钮操作,都是一次交互
- - 当告警的状态发生变化时,Flashduty会请求卡片内容更新
- - 当告警状态频繁变化时,可能因为超过更新次数限制,导致卡片无法实时更新,这时可以点击刷新按钮,来获得一次更新卡片状态机会
+ 
-6. **Mac 桌面端点击卡片消息如何使用 `系统默认浏览器` 打开?**
+ 返回 Flashduty 集成配置页面,填写已保存的 `Token` 和 `EncodingAESKey`,点击 **保存** 完成集成。
- - Mac 桌面端默认使用端内浏览器打开链接
- - 您可以尝试快捷键 `ctrl` + `command` + `shift` + `d` 开启调试模式,然后选择 `调试 - 浏览器、webView相关 - 系统浏览器打开网页`,来更改链接打开模式。使用同样的快捷键可以关闭调试模式,并保持设置。
+9. 复制 Flashduty 集成详情页中的 `回调地址`,返回企业微信刚才的 **接收消息** 页面。在 **API 接收** 设置中,填入该 `回调地址` 以及上一步保存的 `Token` 和 `EncodingAESKey`,然后点击 **保存**。
-7. **故障通知失败,提示`未开通企微许可`?**
+ 
- - 联系 Flashduty 客服或专属支持,为您购买开通
+10. 配置**前端可信域名**
+
+ > 可信域名需要指向 Flashduty 的前端地址 `console.flashcat.cloud`(可通过 CNAME 或代理转发实现)。
+ >
+ > 关于可信域名的要求,详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
+
+ 前端可信域名校验通过后将生成的**主页地址**配置到企微应用的**工作台应用主页**
+
+ 
+
+11. 配置**可信 IP 地址**:`47.93.12.134`
+
+ 
+
+## 三、配置作战室
+
+---
+
+> 作战室功能仅支持在 **企业自建应用** 模式下开启。
+
+完成先前步骤后,在 Flashduty 集成配置页面的 **增强功能** 模块,勾选 **开启作战室** 即可启用该功能,无需额外配置。
+
+## 四、常见问题
+
+---
+
+1. **点击集成保存按钮后,系统报错 `authorize app first`?**
+ - 请检查您是否已完成应用的安装步骤。例如,您是否可以在企业微信工作台中看到 Flashduty 应用。
+ - 请检查您是否正确配置了 `Corp ID`。
+2. **如何完成账户关联或消息发送提示 `未关联应用`?**
+ - 登录企业微信客户端(桌面端和移动端均可),进入 **工作台**,找到并打开 Flashduty 应用。
+ - 首次进入应用需要登录。选择您的成员账号,通过密码或单点登录方式登入成功后,即可完成 Flashduty 账号与企业微信账号的关联。
+ - 后续进入应用将自动免密登录。
+3. **如何发送故障通知?**
+ - 发送通知前,必须参照上一问题完成账户关联。
+ - 进入指定协作空间,导航至 `分派策略` → **个人渠道**,选择 `企业微信` 作为通知方式即可。
+ - Flashduty 支持对企业微信通知内容进行自定义。您可以前往 **模板管理** 页面,设定自定义模板。**自定义区域最多可展示 8 行**,超出部分将被企业微信截断。
+ 
+
+4. **如何在企业微信内处理告警?**
+ - 点击卡片消息,可直接进入告警详情页面。
+ - 点击 **开始处理**,可直接将告警置为 `处理中` 状态。
+ - 点击 **直接关闭**,可直接将告警置为 `已关闭` 状态。
+ - 点击 **屏蔽 2 小时**,可直接将告警屏蔽 2 小时。如果想屏蔽更长时间,可点击卡片右上角的 `...` 查看更多屏蔽选项。
+5. **为什么卡片消息提供了 `状态刷新` 按钮?**
+ - 根据企业微信的限制,一次卡片交互后,72 小时内只可更新一次。每一次按钮操作,都视为一次交互。
+ - 当告警状态发生变化时,Flashduty 会请求更新卡片内容。
+ - 当告警状态频繁变化时,可能因超出更新次数限制导致卡片无法实时更新。此时,您可以点击 **刷新** 按钮,手动获取一次更新卡片状态的机会。
+6. **在 Mac 桌面端,如何设置点击卡片消息时使用 `系统默认浏览器` 打开?**
+ - Mac 桌面端默认使用企业微信的内置浏览器打开链接。
+ - 您可以尝试使用快捷键 `ctrl` + `command` + `shift` + `d` 开启调试模式,然后选择 **调试** → **浏览器、webView 相关** → **系统浏览器打开网页**,来更改链接的打开方式。使用相同的快捷键可以关闭调试模式,设置将会保留。
+7. **故障通知失败,并提示 `未开通企微许可`?**
+ - 请联系 Flashduty 客服或您的专属技术支持,为您购买并开通许可。
+8. **为什么作战室功能未按预期工作?**
+ - 请参考 Flashduty [作战室介绍文档](https://docs.flashcat.cloud/zh/flashduty/war-room) 的 **常见问题** 部分。
+9. **为什么在企微工作台打开应用后提示“redirect_uri需使用应用可信域名”?**
+ - 请确认**应用主页**的url中的`redirect_uri`参数中的域名是否完成企业微信要求的域名归属认证,详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
\ No newline at end of file
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.4 Slack \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.4 Slack \351\233\206\346\210\220\346\214\207\345\274\225.md"
index 95231e6e..638b185a 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.4 Slack \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.4 Slack \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -1,55 +1,55 @@
---
title: "Slack 集成"
-description: "通过集成Slack第三方应用,实现在Slack内接收和响应告警的能力"
+description: "通过集成 Slack 第三方应用,您可以在 Slack 内接收和响应告警。"
date: "2025-05-19T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/slack-integration-guide"
---
-通过集成Slack第三方应用,实现在Slack内接收和响应告警的能力。
+通过集成 Slack 第三方应用,您可以在 Slack 内接收和响应告警。
-## 一、安装应用
----
-
-1. 访问 FlashDuty `集成中心` - `即时消息` - `Slack` - `添加`
-
-2. 页面跳转到Slack的界面,右上角选择 `工作区` ,然后点击 `允许`
-
-

-
-3. 输入数据源名称,点击 `保存`
+
+## 一、安装应用
-## 二、常见问题
---
-1. **分派策略的群聊列表中没有想要的私有频道**
- - 添加应用到频道,需要 步骤一 `安装应用` 未报错
- - 进入到 slack 相关的频道中, 执行 `/invite @FlashDuty` , 提示 `已加入` 或 `已由 xx 添加至 xxx`, 表明添加成功
-
-2. **分派策略的群聊列表中没有想要的公共频道**
- - 将应用授权人添加到公共频道中
- - 或者参考 `常见问题 1` 将应用添加到频道中
+1. 访问 Flashduty 集成中心 → 即时消息 → **Slack**,点击 **添加**。
+2. 在跳转的 Slack 页面,于右上角选择 **工作区**,然后点击 **允许**。
+ 
+3. 输入数据源名称,点击 **保存**。
-3. **点击 安装步骤2的 允许 按钮,报错**
- - 重新操作,可能是服务器跟 Slack 通信有问题,导致授权出现问题,回到添加数据源页面重新操作
- - 重试后仍然报错,联系客服
+## 二、配置作战室
-4. **点击 安装步骤3的 保存 按钮,报错**
- - 重新操作,可能是服务器跟 Slack 通信有问题,FlashDuty去获取永久授权码错误,回到添加数据源页面重新操作
- - 重试后仍然报错,联系客服
+完成先前步骤后,在 Flashduty 集成配置页面的 **增强功能** 模块,勾选 **开启作战室** 即可启用该功能,无需额外配置。
-5. **Slack App 内 not_authed,报错**
- - 重新操作,可能是 Slack 服务有问题
- - 重试后仍然报错,联系客服
-
-6. **Slack App 内 Operation timed out,报错**
- - 重新操作,可能是服务器跟 Slack 超时了,可能是服务器与 Slack 通信出现了问题
- - 重试后仍然报错,联系客服
+## 二、常见问题
-7. **Slack App 内 This app responded with Status Code 500,报错**
- - 重新操作,可能是服务报错了,例如 数据源被关闭了
- - 重试后仍然报错,联系客服
+---
-8. **Slack App 内 Other questions,报错**
- - 重新操作,遇到了还没被记录的问题
- - 重试后仍然报错,联系客服
\ No newline at end of file
+1. **分派策略的群聊列表中没有想要的私有频道?**
+ - 确保 [**安装应用**](#install-app) 步骤已成功完成且未报错。
+ - 进入相关的 Slack 频道,执行 `/invite @Flashduty` 命令。当看到 `已加入` 或 `已由 xxx 添加至 xxx` 的提示时,即表示添加成功。
+2. **分派策略的群聊列表中没有想要的公共频道?**
+ - 将应用授权人添加到公共频道中。
+ - 参考 **问题 1** 的方法,将应用添加到频道中。
+3. **点击安装步骤 2 的 `允许` 按钮后报错?**
+ - 请重新操作。这可能是由于服务器与 Slack 通信异常导致授权失败。请返回添加数据源页面重试。
+ - 如果重试后仍然报错,请联系客服。
+4. **点击安装步骤 3 的 `保存` 按钮后报错?**
+ - 请重新操作。这可能是由于 Flashduty 服务器在获取永久授权码时与 Slack 通信异常。请返回添加数据源页面重试。
+ - 如果重试后仍然报错,请联系客服。
+5. **Slack App 提示 `not_authed` 错误?**
+ - 请重新操作,这可能是 Slack 服务暂时出现问题。
+ - 如果重试后仍然报错,请联系客服。
+6. **Slack App 提示 `Operation timed out` 错误?**
+ - 请重新操作。这可能是服务器与 Slack 通信超时。
+ - 如果重试后仍然报错,请联系客服。
+7. **Slack App 提示 `This app responded with Status Code 500` 错误?**
+ - 请重新操作。这可能是 Flashduty 服务端出现错误(例如,数据源被关闭)。
+ - 如果重试后仍然报错,请联系客服。
+8. **Slack App 提示其他未知错误?**
+ - 请重新操作。
+ - 如果重试后仍然报错,请联系客服以记录和解决新问题。
+9. **为什么作战室功能未按预期工作?**
+ - 对于之前授权的 Slack IM 集成,需要您在 Flashduty 集成配置页中对 Slack 手动进行重新授权,以使应用获得作战室功能所需的额外权限。
+ - 请参考 Flashduty [作战室介绍文档](https://docs.flashcat.cloud/zh/flashduty/war-room) 的 **常见问题** 部分。
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.5 Microsoft Teams \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.5 Microsoft Teams \351\233\206\346\210\220\346\214\207\345\274\225.md"
index c7c49c9d..abcbe4e7 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.5 Microsoft Teams \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.3 \345\215\263\346\227\266\346\266\210\346\201\257/8.3.5 Microsoft Teams \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -1,131 +1,118 @@
---
-title: "Microsoft Teams集成"
-description: "通过集成 Microsoft Teams 第三方应用,实现在 Microsoft Teams 内接收和响应告警的能力"
+title: "Microsoft Teams 集成"
+description: "通过集成 Microsoft Teams 第三方应用,您可以在 Microsoft Teams 内接收和响应告警。"
date: "2025-05-19T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/microsoft-teams-integration-guide"
---
+通过集成 Microsoft Teams 第三方应用,您可以在 Microsoft Teams 内接收和响应告警。
-通过集成 Microsoft Teams 第三方应用,实现在 Microsoft Teams 内接收和响应告警的能力。
-## 一、安装/更新应用
+## 一、安装与更新应用
---
-Microsoft Teams 集成现处于 Beta 阶段,在关联前您需要先完成以下操作:
+Microsoft Teams 集成现处于 Beta 阶段,在关联前您需要先完成以下操作。
::: caution
-此步骤需由 Microsoft Teams 管理员完成
+此步骤需由 Microsoft Teams 管理员完成。
:::
### 1. 下载应用
-将 [FlashDutyBot-v1.0.3.zip](https://flashduty-docs.oss-cn-beijing.aliyuncs.com/docs/FlashdutyBot-v1.0.3.zip) 下载到本地
+将 [FlashdutyBot-v1.0.3.zip](https://flashduty-docs.oss-cn-beijing.aliyuncs.com/docs/FlashdutyBot-v1.0.3.zip) 下载到本地。
### 2. 安装应用
-进入 **Microsoft Teams,跳转 [+Apps] - [Manage your apps] - [Upload an app] - [Upload an app to your org's app catalog]** 上传应用包 FlashDutyBot.zip
+进入 Microsoft Teams,导航至 +Apps → Manage your apps → Upload an app → **Upload an app to your org's app catalog**,然后上传应用包 `FlashdutyBot.zip`。
-
-
+
#### 配置应用可见范围
-进入 [Microsoft Teams 管理中心](https://admin.teams.microsoft.com/policies/manage-apps),找到 FlashDuty 应用,将应用可见范围调整为所有人(或者您自定义的范围)
+进入 [Microsoft Teams 管理中心](https://admin.teams.microsoft.com/policies/manage-apps),找到 Flashduty 应用,将应用可见范围调整为所有人或您指定的范围。
::: tip
-如遇到应用状态为 [已阻止],请稍等片刻后刷新页面或手动修改
+如遇到应用状态为“已阻止”,请稍等片刻后刷新页面或手动修改。
:::
-
+
#### 查看是否添加成功
-等待几分钟,组织成员即可在 [+Apps] - [Built for your org] 找到此应用集成
+等待几分钟,组织成员即可在 +Apps → **Built for your org** 找到此应用。
-
+
### 3. 更新应用
::: caution
-若您已安装应用版本低于 1.0.3,请按照以下流程更新
+若您已安装的应用版本低于 1.0.3,请按照以下流程更新。
:::
-进入 [Microsoft Teams 管理中心](https://admin.teams.microsoft.com/policies/manage-apps),找到并进入 FlashDuty 应用详情页
-
-
-
-上传新版 FlashdutyBot.zip
-
-
+1. 进入 [Microsoft Teams 管理中心](https://admin.teams.microsoft.com/policies/manage-apps),找到并进入 Flashduty 应用详情页。
-等待客户端内应用版本更新(可能需要几十分钟)
+ 
-
+2. 上传新版 `FlashdutyBot.zip`。
+
-## 二、关联团队
+3. 等待客户端内应用版本更新(可能需要几十分钟)。
+
-### 1. 添加 FlashDuty 应用到目标 Team 中
+## 二、关联团队 (Team)
+---
+### 1. 添加 Flashduty 应用
+1. 在应用市场中找到 Flashduty 应用。
+ > 如无应用,请联系您的 Microsoft Teams 组织管理员。
-#### 1.1 找到 FlashDuty 应用
-如无应用,请联系您的 Microsoft Teams 组织管理员
+ 
-
-#### 1.2 添加到目标 Team
+2. 将应用添加到目标 Team。
::: caution
-注意:此步必须选择目标 Team 的 General Channel,否则将无法发送故障到 Team 中
+此步骤必须选择目标 Team 的 General Channel,否则将无法发送故障到 Team 中。
:::
-
+ 
### 2. 发送关联指令
-@FlashDuty 并发送 linkTeam {ID} 到添加的 Team 中,点击立即关联
-
-
-
-## 三、关联团队
-
-### 1. 添加 FlashDuty 应用到目标 Chat 中
+在 Team 中 @Flashduty 并发送指令 `linkTeam {ID}`,然后点击 **立即关联**。
-#### 1.1 找到 FlashDuty 应用
-如无应用,请联系您的 Microsoft Teams 组织管理员
+ 
-
+## 三、关联群聊 (Chat)
+---
+### 1. 添加 Flashduty 应用
+1. 在应用市场中找到 Flashduty 应用。
+> 如无应用,请联系您的 Microsoft Teams 组织管理员。
-#### 1.2 添加到目标 Chat
+
-
+2. 将应用添加到目标 Chat。
+
### 2. 发送关联指令
-@FlashDuty 并发送 linkChat {ID} {ChatName} 到添加的 Team 中,点击立即关联
-
-
-
+在 Chat 中 @Flashduty 并发送指令 `linkChat {ID} {ChatName}`,然后点击 **立即关联**。
+
## 四、关联用户
+---
+### 1. 添加 Flashduty 应用
+1. 在应用市场中找到 Flashduty 应用。
+> 如无应用,请联系您的 Microsoft Teams 组织管理员。
-### 1. 添加 FlashDuty 应用
-
-#### 1.1 找到 FlashDuty 应用
-如无应用,请联系您的 Microsoft Teams 组织管理员
+
-
+2. 点击 **打开应用**。
-#### 1.2 点击打开应用
-
+
### 2. 发送关联指令
-复制指令:linkUser {} 发送到聊天中,再点击立即关联
-
-
+复制并发送指令 `linkUser {}` 到聊天中,然后点击 **立即关联**。
-## 常见问题
-
-团队或个人收不到消息
-请前往集成中心=>即时消息=>Microsoft Teams中的团队和用户是否有关联成功
-
+
-
-怎么查看已关联的团队和用户
-请前往集成中心=>即时消息=>Microsoft Teams中的关联Teams和关联用户中查看
-
+## 五、常见问题
+---
-
-怎么取消关联的团队和用户
-暂不支持
-
+1. **团队或个人收不到消息?**
+ - 请前往 集成中心 → 即时消息 → **Microsoft Teams**,检查团队和用户是否已成功关联。
+2. **如何查看已关联的团队和用户?**
+ - 请前往 集成中心 → 即时消息 → **Microsoft Teams**,在 **关联 Teams** 和 **关联用户** 中查看。
+3. **如何取消已关联的团队和用户?**
+ - 暂不支持此功能。
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Authing \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Authing \351\233\206\346\210\220\346\214\207\345\274\225.md"
index b9628f4f..3d55323b 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Authing \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Authing \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -8,7 +8,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/authing-integration-guide"
快速了解
---
-[Authing](https://www.authing.cn/)是一家提供身份识别和访问控制管理的供应商,通过Authing平台,可实现以OIDC、SAML2.0或CAS协议的方式登录FlashDuty管理控制台
+[Authing](https://www.authing.cn/)是一家提供身份识别和访问控制管理的供应商,通过Authing平台,可实现以OIDC、SAML2.0或CAS协议的方式登录Flashduty管理控制台
## 准备工作
---
@@ -27,16 +27,16 @@ url: "https://docs.flashcat.cloud/zh/flashduty/authing-integration-guide"
|字段|描述|
|---|---|
-|App ID|对应 FlashDuty 的 Client ID|
-|APP Secret|对应 FlashDuty 的 Client Secret|
-|Issuer|对应 FlashDuty 的 Issuer|
+|App ID|对应 Flashduty 的 Client ID|
+|APP Secret|对应 Flashduty 的 Client Secret|
+|Issuer|对应 Flashduty 的 Issuer|
|认证地址|通过 SSO 登录时跳转的地址|
## 开始配置 OIDC 协议
---
-### 1. 打开 [FlashDuty](console.flashcat.cloud) 控制台并开启单点登录配置
+### 1. 打开 [Flashduty](console.flashcat.cloud) 控制台并开启单点登录配置

@@ -68,7 +68,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/authing-integration-guide"
4.1 在 Authing 中创建用户
:::tip
-FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户
+Flashduty 只支持用户邮箱关联,所以需要用邮箱创建用户
:::

@@ -88,7 +88,7 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户
:::tip
-使用在 Authing 创建的用户,登录 FlashDuty 控制台
+使用在 Authing 创建的用户,登录 Flashduty 控制台
:::
@@ -105,7 +105,7 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户

-1.2 将 FlashDuty 的单点登录协议改成 SAML 协议,并复制 acs 地址
+1.2 将 Flashduty 的单点登录协议改成 SAML 协议,并复制 acs 地址

@@ -113,13 +113,13 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户

-### 2.在 FlashDuty 中配置
+### 2.在 Flashduty 中配置
2.1 下载 metadata 数据,点击链接并保存到本地

-2.2 上传到 FlashDuty 的单点登录配置中并保存
+2.2 上传到 Flashduty 的单点登录配置中并保存

@@ -128,13 +128,13 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户

:::tip
-以上是两种方式的全部配置方式,两个平台在配置时有穿插,所以请务必小心不要遗忘关键信息,如在配置过程中有任何问题,可以联系 FlashDuty 技术支持协助
+以上是两种方式的全部配置方式,两个平台在配置时有穿插,所以请务必小心不要遗忘关键信息,如在配置过程中有任何问题,可以联系 Flashduty 技术支持协助
:::
## 开始配置 CAS 协议
---
-### 1. 打开 [FlashDuty](console.flashcat.cloud) 控制台并开启单点登录配置
+### 1. 打开 [Flashduty](console.flashcat.cloud) 控制台并开启单点登录配置

@@ -167,7 +167,7 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户
4.1 在 Authing 中创建用户
:::tip
-FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户
+Flashduty 只支持用户邮箱关联,所以需要用邮箱创建用户
:::

@@ -181,5 +181,5 @@ FlashDuty 只支持用户邮箱关联,所以需要用邮箱创建用户

:::tip
-使用在 Authing 创建的用户,登录 FlashDuty 控制台
+使用在 Authing 创建的用户,登录 Flashduty 控制台
:::
\ No newline at end of file
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Keycloak \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Keycloak \351\233\206\346\210\220\346\214\207\345\274\225.md"
index c005d5ce..d24b2d34 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Keycloak \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/Keycloak \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -18,8 +18,8 @@ Keycloak 是一个开源的身份和访问管理解决方案,它提供了一
## 基于 SAML2.0 协议
---
-### 1.登录 FlashDuty 控制台
-1.1 从 FlashDuty 获取 acs 地址(第2步会用到)
+### 1.登录 Flashduty 控制台
+1.1 从 Flashduty 获取 acs 地址(第2步会用到)
1.2 路径:访问控制=>单点登录=>设置=>SAML2.0协议=>Flashduty服务提供商信息=>Assertion Consumer Service URL

@@ -32,7 +32,7 @@ Keycloak 是一个开源的身份和访问管理解决方案,它提供了一

-2.4 Valid redirect URIs: 填写从 FlashDuty 获取的 acs 地址
+2.4 Valid redirect URIs: 填写从 Flashduty 获取的 acs 地址

@@ -83,7 +83,7 @@ src="https://api.apifox.com/api/v1/projects/4169655/resources/437038/image-previ%20%20%3Cimg%20alt="drawing" width="600" src="https://api.apifox.com/api/v1/projects/4169655/resources/437039/image-preview" />
-4.2 上传 XML 文件到 FlashDuty 的单点登录配置中
+4.2 上传 XML 文件到 Flashduty 的单点登录配置中

@@ -100,8 +100,8 @@ src="https://api.apifox.com/api/v1/projects/4169655/resources/437038/image-previ%20%20##%20%E5%9F%BA%E4%BA%8E%20OIDC%20%E5%8D%8F%E8%AE%AE%20----###%201.%E7%99%BB%E5%BD%95%20FlashDuty%20%E5%B9%B3%E5%8F%B0-1.1%20%E4%BB%8EFlashDuty%E8%8E%B7%E5%8F%96Redirect%20URL%EF%BC%88%E7%AC%AC2%E6%AD%A5%E4%BC%9A%E7%94%A8%E5%88%B0%EF%BC%89+###%201.%E7%99%BB%E5%BD%95%20Flashduty%20%E5%B9%B3%E5%8F%B0+1.1%20%E4%BB%8EFlashduty%E8%8E%B7%E5%8F%96Redirect%20URL%EF%BC%88%E7%AC%AC2%E6%AD%A5%E4%BC%9A%E7%94%A8%E5%88%B0%EF%BC%89%202.2%20%E8%B7%AF%E5%BE%84%EF%BC%9A**%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6=%3E%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95=%3E%E8%AE%BE%E7%BD%AE=%3EOIDC%E5%8D%8F%E8%AE%AE=%3EFlashduty%20%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E5%95%86%E4%BF%A1%E6%81%AF==%3ERedirect%20URL**%20%20%3Cimg%20alt="drawing" width="600" src="https://api.apifox.com/api/v1/projects/4169655/resources/437183/image-preview" />
@@ -132,7 +132,7 @@ src="https://api.apifox.com/api/v1/projects/4169655/resources/437038/image-previ%20%20%3Cimg%20alt="drawing" width="600" src="https://api.apifox.com/api/v1/projects/4169655/resources/437187/image-preview" />
-### 4.FlashDuty 单点登录配置样式
+### 4.Flashduty 单点登录配置样式

diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/OpenLDAP \351\233\206\346\210\220\346\214\207\345\274\225.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/OpenLDAP \351\233\206\346\210\220\346\214\207\345\274\225.md"
index 44f615f8..902deb12 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/OpenLDAP \351\233\206\346\210\220\346\214\207\345\274\225.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.4 \345\215\225\347\202\271\347\231\273\345\275\225/OpenLDAP \351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -129,8 +129,8 @@ docker-compose down
:::
-## FlashDuty 集成
-结合上述OpenLDAP配置,FlashDuty集成信息如下图所示:
+## Flashduty 集成
+结合上述OpenLDAP配置,Flashduty集成信息如下图所示:

diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.1 \345\221\212\350\255\246 webhook.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.1 \345\221\212\350\255\246 webhook.md"
index 926a7974..d6fad4fd 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.1 \345\221\212\350\255\246 webhook.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.1 \345\221\212\350\255\246 webhook.md"
@@ -109,7 +109,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \
"data_source_name":"阿里云 SLS",
"data_source_ref_id":"",
"data_source_type":"aliyun-sls.alert",
- "description":"测试发送到FlashDuty告警触发",
+ "description":"测试发送到Flashduty告警触发",
"end_time":0,
"event_cnt":1,
"incident":{
@@ -121,7 +121,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \
"alert_type":"sls_alert",
"alert_url":"https://sls.console.aliyun.com/lognext/project/sls-api-testing/alert/alert-1683548531-071659",
"aliuid":"1082109605037616",
- "check":"测试发送到FlashDuty",
+ "check":"测试发送到Flashduty",
"fire_results":"{\"_col0\":\"true\"}",
"fire_results_count":"1",
"project":"sls-api-testing",
@@ -133,7 +133,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \
"last_time":1683809153,
"progress":"Triggered",
"start_time":1683766013,
- "title":"测试发送到FlashDuty告警触发",
+ "title":"测试发送到Flashduty告警触发",
"title_rule":"$resource::$check",
"updated_at":1683809170
},
@@ -152,11 +152,14 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \
1. **服务是否有响应超时时间?**
- - 服务需要在 1 秒内返回响应,超过 1 秒则认为响应失败
+ - 服务需要在 2 秒内返回响应,超过 2 秒则认为响应失败
2. **推送失败后是否会持续推送?**
- - 目前 FlashDuty 最多推送一次,未来可能会引入重试机制,也可能因为中间链路超时导致重试,您需要做好幂等处理
+ 针对特定的网络错误,会进行重试,最多重试2次:
+ - context deadline exceeded (排除 awaiting headers)
+ - i/o timeout
+ - eof
3. **如何保证推送顺序?**
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.2 \346\225\205\351\232\234 webhook.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.2 \346\225\205\351\232\234 webhook.md"
index 73c4b782..26d0eac5 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.2 \346\225\205\351\232\234 webhook.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.2 \346\225\205\351\232\234 webhook.md"
@@ -98,7 +98,7 @@ acknowledged_at | int64| 否 | 认领时间
| fields | map[string]interface{} | 否 | 自定义字段 KV,Key 为字符串,Value 可能为任意类型,取决于字段类型|
| creator | [Person](#Person) | 否 | 创建人员信息,仅手动创建故障时存在 |
| closer | [Person](#Person) | 否 | 关闭人员信息,仅手动关闭故障时存在 |
-| responders | [][Responder](#Responder) | 否 | 处理人员信息列表 |
+| responders | [][Responder](#Responder) | 否 | 处理人员信息列表,仅故障被分派后存在。对于i_new事件,此值可能为空 |
| alert_cnt | int64 | 否 | 关联告警个数 |
| channel_id | int64 | 否 | 协作空间ID,为0代表不属于任何空间 |
| channel_name | string | 否 | 协作空间名称 |
@@ -193,11 +193,14 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \
1. **服务是否有响应超时时间?**
- - 服务需要在 1 秒内返回响应,超过 1 秒则认为响应失败
+ - 服务需要在 2 秒内返回响应,超过 2 秒则认为响应失败
2. **推送失败后是否会持续推送?**
- - 目前 FlashDuty 最多推送一次,未来可能会引入重试机制,也可能因为中间链路超时导致重试,您需要做好幂等处理
+ 针对特定的网络错误,会进行重试,最多重试2次:
+ - context deadline exceeded (排除 awaiting headers)
+ - i/o timeout
+ - eof
3. **如何保证推送顺序?**
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.3 \350\207\252\345\256\232\344\271\211\346\223\215\344\275\234.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.3 \350\207\252\345\256\232\344\271\211\346\223\215\344\275\234.md"
index 5c3b364e..8b7bb0e8 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.3 \350\207\252\345\256\232\344\271\211\346\223\215\344\275\234.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.3 \350\207\252\345\256\232\344\271\211\346\223\215\344\275\234.md"
@@ -2,7 +2,7 @@
## 一、创建操作
-1. 登录 FlashDuty 控制台,进入【集成中心-Webhook】
+1. 登录 Flashduty 控制台,进入【集成中心-Webhook】
2. 点击添加 自定义操作 集成
3. 配置 操作名称,此名称将以按钮的形式体现在故障详情中
4. 配置 协作空间,可以配置多个,但每个协作空间至多添加三个 自定义操作
@@ -238,7 +238,7 @@ curl -X POST 'https://example.com/incident/action?a=a' \
### 信息丰富
-当故障发生时,回调您的服务,根据告警详情调取 Tracing、Logging、拓扑等信息,主动调用 FlashDuty Open API 来更新故障信息,比如增加标签或设定自定义字段,辅助排障。
+当故障发生时,回调您的服务,根据告警详情调取 Tracing、Logging、拓扑等信息,主动调用 Flashduty Open API 来更新故障信息,比如增加标签或设定自定义字段,辅助排障。
### 回滚变更
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.5 ServiceNow \345\220\214\346\255\245.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.5 ServiceNow \345\220\214\346\255\245.md"
index 29f42f94..d20829b4 100644
--- "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.5 ServiceNow \345\220\214\346\255\245.md"
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.5 ServiceNow \345\220\214\346\255\245.md"
@@ -10,6 +10,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/service-now-sync"
## 在 ServiceNow
### 创建用户
+需创建一个用户以连接 ServiceNow 实例,用于 Incident 的同步与更新。如果已有可用用户,请直接跳过本步骤。
1. 登录 ServiceNow 实例控制台,通过选择 `ALL` ,输入 `USERS` 选择`Organization`-`Users` 。
2. 点击 `New` 新建用户。
@@ -17,18 +18,24 @@ url: "https://docs.flashcat.cloud/zh/flashduty/service-now-sync"
4. `Password needs reset` 和 `Web service access only` 以及 `Internal Integration User` 保持取消勾选状态。
5. 提交保存。
-

+
### 配置用户
-用于访问 ServiceNow 的用户需要是管理员角色。
+ > **用户角色说明**
+ > **itil:** 该角色在 Flashduty 中的主要使用范围仅限于在同步 ServiceNow Incident 时,进行获取、创建、更新 ServiceNow Incident,不涉及其他任何操作。
+ >
+ > **personalize_dictionary:** 该角色在 Flashduty 中的主要使用范围仅限于 ServiceNow Incident Table 的字段获取,不涉及其他任何操作。
+ >
+ > 关于以上两个角色更多权限范围,可以参考 ServiceNow [官方文档](https://www.servicenow.com/docs/bundle/washingtondc-platform-administration/page/administer/roles/reference/r_BaseSystemRoles.html#d130465e3182)
1. 在用户列表页面,找到新创建的 `flashduty` 用户并进到配置页面。
2. 在编辑页面中,点击 `Set Password` 设置一个密码。
-3. 点击 `Roles` 添加 **admin 和 itil** 角色。
+3. 点击 `Roles` 添加 **personalize_dictionary 和 itil** 角色(如果不需要配置自定义字段映射关系,可以不授予 personalize_dictionary 权限)。
4. 点击 `Update` 更新配置。
-

+
+
## 在 Flashduty
@@ -36,18 +43,31 @@ url: "https://docs.flashcat.cloud/zh/flashduty/service-now-sync"
将以上配置的用户名/密码以及实例名称输入到左侧集成信息中并点击下一步进行配置。
-- **集成名称:** 为当前集成定义一个名称。
-- **管理团队:** 当选择管理团队后,只有该团队成员以及租户管理员可以编辑此集成。
-- **协作空间**:选择该集成生效的协作空间,。
-- **同步方向:**
- - To_ServiceNow:将 Flashduty 的故障同步至 ServiceNow。
- - From_ServiceNow:将 ServiceNow 的 Incident 同步至 Flashduty。
- - Two-way:Flashduty 和 ServiceNow 互相同步。
-- **触发模式**:
- - 自动触发:需要配置相应的条件,Flashduty 会自动将符合条件的故障同步到 ServiceNow 中。
- - 手动触发:需要在故障详情页的更多操作中手动触发 ServiceNow 同步(该集成配置的名称为触发器名称)。
-- **严重程度映射**:ServiceNow 的 Priority 是由 Impact 和 Urgency 的值共同决定的,所以可以参考 ServiceNow 的 `Priority Lookup Rules` 进行配置。另外需要注意的是,只有当 ServiceNow Incident 的 Urgency 发生变化时,才会触发 Flashduty 故障严重程度的更新。
-- **自定义字段映射**:可以选择将故障的某些标签或所有标签以及自定义字段内容同步至 ServiceNow 的字段中(仅支持文本类型的字段)。
+1. **集成名称:** 为当前集成定义一个名称。
+2. **管理团队:** 当选择管理团队后,只有该团队成员以及租户管理员可以编辑此集成。
+3. **协作空间**:选择该集成生效的协作空间,。
+4. **同步方向:**
+
+ - To_ServiceNow:将 Flashduty 的故障同步至 ServiceNow。
+ - From_ServiceNow:将 ServiceNow 的 Incident 同步至 Flashduty。
+ - Two-way:Flashduty 和 ServiceNow 互相同步。
+
+5. **触发模式**:
+ - 自动触发:需要配置相应的条件,Flashduty 会自动将符合条件的故障同步到 ServiceNow 中。
+ - 手动触发:需要在故障详情页的更多操作中手动触发 ServiceNow 同步(该集成配置的名称为触发器名称)。
+
+6. **严重程度映射**:
+
+ - ServiceNow 的 Priority 是由 Impact 和 Urgency 的值共同决定的,所以可以参考 ServiceNow 的 `Priority Lookup Rules` 进行配置。
+ - 当 ServiceNow Incident 的 Urgency 发生变化时,才会触发 Flashduty 故障严重程度的更新。
+ - 由于 Flashduty 在遵循最小权限的情况下,无法获取 ServiceNow 的 Impact 和 Urgency 列表,所以只提供了默认值,如果您需要自定义映射关系时,可以联系技术支持。
+
+7. **自定义字段映射**:可以将故障中的标签或自定义字段,映射到 ServiceNow 工单中的对应文本字段,实现信息自动填充。该功能支持将常见上下文信息(如服务名、实例地址、指标名称等)同步至 ServiceNow,便于后续排查与跟踪。
+
+ - 仅支持目标为单行文本或多行文本类型的字段。
+ - 支持从故障标签(如 service、instance)或自定义属性中提取值。
+ - 若源字段为空,目标字段也将保持为空,不会覆盖原有内容。
+ - 映射配置在集成设置中统一管理,无需每次手动填写。
## 在 ServiceNow
@@ -88,7 +108,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/service-now-sync"
2. 点击 `New` 新建 Script Include。
3. `Name` 输入:**IncidentWebhookHelper** , `Accessible from` 选择 **All application scopes**。
4. `Client callable` 和 `Active` 保持勾选状态。
-5. `Script` 输入以下内容,其中 **request.setEndpoint** 中需要补充集成的推送地址:
+5. `Script` 输入以下内容,其中 **request.setEndpoint** 中需要补充集成的
推送地址:
@@ -182,7 +202,7 @@ IncidentWebhookHelper.prototype = {
3. `Name` 输入:**Send To Flashduty** , `Table` 选择 **Incident**。
4. `Advanced` 和 `Active` 保持勾选状态。
5. 在 `When to run` 区域中,`When` 选择 **async**,`Insert` 和 `Upsert` 保持勾选状态,其他按需配置。
-6. 在 `Advanced` 区域中,`Script` 填写以下内容,其中 **endpoint** 中需要补充集成的推送地址:
+6. 在 `Advanced` 区域中,`Script` 填写以下内容,其中 **endpoint** 中需要补充集成的
推送地址
@@ -253,23 +273,23 @@ IncidentWebhookHelper.prototype = {
| ServiceNow | Flashduty | 备注 |
| ------------------- | ------------- | ---- |
-| Short_description | Title | |
-| Description | Description | |
-| Additional comments | Comments | |
-| State | Progress | |
-| Urgency | Severity | |
-| Others | Custom Fields | |
+| Short_description | Title | 标题 |
+| Description | Description | 描述信息 |
+| Additional comments | Comments | 评论 |
+| State | Progress | 状态 |
+| Urgency | Severity | 严重程度 |
+| Others | Custom Fields | 自定义字段 |
### 状态映射
| ServiceNow | Flashduty | 备注 |
| ----------- | ---------- | --------------- |
-| New | Trigger | |
-| In Progress | Processing | |
+| New | Trigger | 触发 |
+| In Progress | Processing | 待处理 |
| On Hold | Snoozed | 默认暂缓 2 小时 |
-| Resolved | CLosed | |
-| Closed | CLosed | |
-| Canceled | CLosed | |
+| Resolved | CLosed | 关闭 |
+| Closed | CLosed | 关闭 |
+| Canceled | CLosed | 关闭 |
### 优先级映射
@@ -277,6 +297,18 @@ IncidentWebhookHelper.prototype = {
| ServiceNow | Flashduty | 备注 |
| ---------- | --------- | ---- |
-| Low | Info | |
-| Medium | Warning | |
-| High | Critical | |
+| Low | Info | 提示 |
+| Medium | Warning | 警告 |
+| High | Critical | 灾难 |
+
+## 常见问题
+
+
+ 新建 ServiceNow 用户时,UserID 是否可以自定义?
+ 可以自定义,文档指引中使用 flashduty 作为 UserID,是为了更好的标识该用户用于 Incident 同步
+
+
+
+ 配置集成时提示 401 错误
+ 提示 401 一般是密码错误导致的,请检查密码是否正确,或者重新设置新的密码(在配置密码时,请勿勾选 Password needs reset 选项)
+
\ No newline at end of file
diff --git "a/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.6 ServiceDesk Plus \345\220\214\346\255\245.md" "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.6 ServiceDesk Plus \345\220\214\346\255\245.md"
new file mode 100644
index 00000000..4dc4658f
--- /dev/null
+++ "b/flashduty/zh/1. On-call/5. \351\233\206\346\210\220\345\274\225\345\257\274/8.5 Webhooks/8.5.6 ServiceDesk Plus \345\220\214\346\255\245.md"
@@ -0,0 +1,189 @@
+---
+title: "ServiceDesk Plus 同步"
+description: "通过 ServiceDesk Plus 同步 Webhook,实现故障与 ServiceDesk Plus request 的关联。"
+date: "2025-05-19T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/servicedesk-plus-sync"
+---
+
+通过 ServiceDesk Plus 同步 Webhook,将 Flashduty 的故障与 ServiceDesk Plus request 进行关联同步,实现 Flashduty 与 ServiceDesk Plus 的联动。
+
+本集成基于 ServiceDesk Plus 官方提供的 v3 API 协议,兼容其接口规范。若您使用私有化部署版本,请确认其 API 是否支持 v3 版本。此外,ServiceDesk Plus 的云版本与私有化版本在授权配置方式上存在差异,具体配置请参考相关文档说明。
+
+ - [云版本](#云版本)
+ - [私有化](#私有化)
+
+在配置此集成时,如果您选择的同步方向是 From_ServiceDesk_Plus,您可以直接跳过授权相关配置,直接参考[配置同步](#配置同步)即可。
+
+## 云版本
+
+### 在 ServiceDesk Plus
+#### 步骤1 创建授权应用
+请根据您的 ServiceDesk Plus 服务区域选择对应的 Developer Console 地址:[Data Centres](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/data-centers.html)
+
+1. 登录 Developer Console,选择 `Self Client` 类型的 Client 并创建。
+2. 点击 `Generate Code`,在 `Scope` 中填写:**SDPOnDemand.requests.ALL,SDPOnDemand.setup.READ,SDPOnDemand.custommodule.READ**。权限范围参考[官方文档](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/oauth-2.0.html#scopes)。
+
+3. `Time Duration` 选择最大的 **10 minutes**,`Scope Description` 填写内容可自定义,比如: Flashduty 同步使用,并创建。
+4. 将生成的 **Code** 和 **Client ID** 以及 **Client Secret** 复制备用。
+
+
+
+
+###### 注意:Code 的有效期只有 10 分钟且只能使用一次,所以在获取到 Code 后,请在有效期内尽快完成[集成授权](#集成授权)
+
+### 在 Flashduty
+#### 步骤2 集成授权
+请根据您的 ServiceDesk Plus 服务区域选择对应的 API Endpoint 和 Accounts Server URL:[Data Centres](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/data-centers.html)
+
+1. `平台类型` 选择**云版本**,填写`API Endpoint` 和 `Accounts Server URL`。
+2. 将**创建授权应用**步骤中生成的 `Code` 和 `Client ID` 以及 `Client Secret` 填写到对应的编辑框并点击下一步完成[集成配置](#集成配置)(如果报错请重新获取 Code,或联系技术支持排查问题)。
+
+## 私有化版本
+### 在 ServiceDesk Plus
+#### 步骤1 生成 API 密钥
+1. 登录 ServiceDesk Plus 控制台,在个人中心点击 `生成 API 密钥`。
+2. `令牌过期时间` 选择 **永不过期**,将生成的 **Token** 复制备用,并完成[集成授权](#私有化版本集成授权)。
+
+###### 注意:生成 API 密钥的用户需要具备相关权限,比如创建/更新请求、获取模版/优先级/自定义字段列表等权限,如果权限不足,会导致无法完成集成配置,建议使用管理员角色生成。
+
+### 在 Flashduty
+#### 步骤2 集成授权
+1. `平台类型` 选择**私有化版本**,填写`API Endpoint`。
+2. 将生成的 **Token** 填写到对应的编辑框并点击下一步完成[集成配置](#集成配置)。
+
+
+## 通用配置
+
+### 在 Flashduty
+#### 步骤1 集成配置
+
+1. **集成名称:** 为当前集成定义一个名称。
+2. **管理团队:** 当选择管理团队后,只有该团队成员以及租户管理员可以编辑此集成。
+3. **同步方向:**
+
+ - To_ServiceDesk_Plus:将 Flashduty 的故障同步至 ServiceDesk Plus。
+ - From_ServiceDesk_Plus:将 ServiceDesk Plus 的 Request 同步至 Flashduty。
+ - Two-way:Flashduty 和 ServiceDesk Plus 互相同步。
+
+4. **触发模式**:
+ - 自动触发:需要配置相应的条件,Flashduty 会自动将符合条件的故障同步到 ServiceDesk Plus 中。
+ - 手动触发:需要在故障详情页的更多操作中手动触发 ServiceDesk Plus 同步(该集成配置的名称为触发器名称)。
+
+5. **协作空间**:选择该集成生效的协作空间。
+6. **请求模版**:选择创建 request 时使用的模版。
+7. **严重程度映射**:Flashduty 的严重程度与 ServiceDesk Plus 优先级的映射关系,默认映射关系,请参考[优先级映射](#优先级映射)。
+8. **自定义字段映射**:可以将故障中的标签或自定义字段,映射到 ServiceDesk Plus 工单中的对应文本字段,实现信息自动填充。该功能支持将常见上下文信息(如服务名、实例地址、指标名称等)同步至 ServiceDesk Plus,便于后续排查与跟踪。
+ - 仅支持目标为单行文本或多行文本类型的字段。
+ - 支持从故障标签(如 service、instance)或自定义属性中提取值。
+ - 若源字段为空,目标字段也将保持为空,不会覆盖原有内容。
+ - 映射配置在集成设置中统一管理,无需每次手动填写。
+
+9. **指派对象映射**:当 Flashduty 的故障同步至 ServiceDesk Plus 并需要自动指派到 Technician 或 Group 时,可以获取 Flashduty 故障标签的值作为指派对象(如果对应的指派对象不存在,会导致同步失败,请谨慎选择)。
+
+10. 点击`保存`完成配置。
+
+### 在 ServiceDesk Plus
+#### 步骤2 创建 Requester
+当 Flashduty 的故障同步到 ServiceDesk Plus 时,系统自动设置的 Requester
+
+1. 登录 ServiceDesk Plus 控制台,找到 `Setup` 配置页面。
+2. 选择 `Users & Permissions` 之后,进入到 `Users` 创建页面,选择 `New Requester`。
+3. `Name (Display Name)` 和 `First Name` 填写 **flashduty**,`Email` 填写 **flashduty-sync@flashcat.cloud** 。
+4. 其他可按需设置,点击 `Save` 保存配置。
+
+
+
+#### 步骤3 配置同步
+要实现 ServiceDesk Plus 的 Request 向 Flashduty 的同步,请参考此配置项。**注意:** 不同版本的路径可能略有不同,但配置方法相同。
+##### 创建 Webhook
+1. 登录 ServiceDesk Plus 控制台,找到 `Setup` 配置页面。
+2. 选择 `Automation` 之后,进入到 `Custom Actions` 页面,并选择 `Webhooks`。
+3. 点击 `New Webhook`,在编辑页面中 `Webhook Name` 填写 **to_Flashduty**。
+4. `URL` 填写集成的
推送地址。
+5. `Applies to` 选择 **Requsts**,`Method` 选择 **POST**,`Headers` 中填写 **Content-Type application/json**。
+6. `Message Body` 的 Type 选择 **JSON**,并填写以下内容:
+
+ ```
+ # 云版本
+ {
+ "subject":"${subject}",
+ "request_id":"${id}",
+ "description":"${udf_fields.txt_destination}",
+ "priority":"${priority.name}",
+ "status":"${status.name}",
+ "txt_test_field":"${udf_fields.txt_test_field}"
+
+ }
+ ```
+
+ ```
+ # 私有化版本
+ {
+ "suject":"${{request.subject}}",
+ "request_id":"${{request.id}}",
+ "description":"${{request.description}}",
+ "status":"${{request.status.name}}",
+ "priority":"${{request.priority.name}}",
+ "udf_sline_301":"${{request.udf_fields.udf_sline_301}}"
+ }
+
+ ```
+7. 点击 `Save` 完成配置。
+
+
+
+##### 创建触发器
+1. 登录 ServiceDesk Plus 控制台,找到 `Setup` 配置页面。
+2. 选择 `Automation` 之后,进入到 `Triggers` 页面,并选择 `Request`。
+3. 点击 `New Trigger`,在编辑页面中 `Name` 填写 **to_Flashduty**。
+4. `Trigger applies to` 选择 **Request**,`Execute when a request is` 勾选 **Create 和 Edited**。
+5. `Execute during` 选择 **Any time**,并勾选 **Enable Trigger**。
+6. `Conditions` 选择 `Without condition` 或按实际需求配置。
+7. 在 `Actions` 中选择 **Webhook** 并勾选 **to_Flashduty** 通道。
+8. 点击 `Save` 完成配置。
+
+
+
+
+## 同步信息映射关系
+
+### 表单字段
+
+| ServiceDesk Plus | Flashduty | 备注 |
+| ------------------- | ------------- | ---- |
+| Subjeck | Title | | 标题
+| Description | Description | 描述信息 |
+| Status | Progress | 状态 |
+| Priority | Severity | 严重程度 |
+| Others | Custom Fields | 自定义字段 |
+
+### 状态映射
+
+| ServiceDesk Plus | Flashduty | 备注 |
+| ----------- | ---------- | --------------- |
+| Open | Trigger | 触发 |
+| In Progress | Processing | 待处理 |
+| Assigned | Processing | 待处理 |
+| Pending Verification | Processing | 待处理 |
+| Staging | Processing | 待处理 |
+| On Hold | Snoozed | 默认暂缓 2 小时 |
+| Resolved | CLosed | 关闭 |
+| Closed | CLosed | 关闭 |
+| Canceled | CLosed | 关闭 |
+| Rejected | CLosed | 关闭 |
+
+### 优先级映射
+
+| ServiceDesk Plus | Flashduty | 备注 |
+| ---------- | --------- | ---- |
+| Low | Info | 提示 |
+| Medium | Warning | 警告 |
+| High | Critical | 灾难 |
+
+
+## 常见问题
+
+
+ Scope 是否可以更改
+ 不可以,目前所使用的 Scope 已经是最小单元了,Flashduty 在与 ServiceDesc Plus 进行同步 request 时,需要做获取/创建/更新操作,以及在配置集成时,需要获取优先级/自定义字段列表,所以需要相应的权限支持。
+
diff --git "a/flashduty/zh/2. RUM/1. \345\277\253\351\200\237\345\274\200\345\247\213/3. \345\270\270\350\247\201\351\227\256\351\242\230.md" "b/flashduty/zh/2. RUM/1. \345\277\253\351\200\237\345\274\200\345\247\213/3. \345\270\270\350\247\201\351\227\256\351\242\230.md"
index 64f0a98c..47e5c581 100644
--- "a/flashduty/zh/2. RUM/1. \345\277\253\351\200\237\345\274\200\345\247\213/3. \345\270\270\350\247\201\351\227\256\351\242\230.md"
+++ "b/flashduty/zh/2. RUM/1. \345\277\253\351\200\237\345\274\200\345\247\213/3. \345\270\270\350\247\201\351\227\256\351\242\230.md"
@@ -35,7 +35,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/frequently-asked-questions"
service: "
",
env: "",
version: "1.0.0",
- sessionSampleRate: 100,
+ sessionSampleRate: 10, // 会话采样率10%
});
```
@@ -392,4 +392,4 @@ A:可以通过以下方式:
3. 排除特定页面
4. 配置数据脱敏
-通过遵循本指南的排查步骤,您可以确保 Flashduty RUM 正常运行,为您提供准确的用户体验监控数据。
\ No newline at end of file
+通过遵循本指南的排查步骤,您可以确保 Flashduty RUM 正常运行,为您提供准确的用户体验监控数据。
diff --git "a/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/2. SDK\346\216\245\345\205\245.md" "b/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/2. SDK\346\216\245\345\205\245.md"
index 7307faf2..d95ce719 100644
--- "a/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/2. SDK\346\216\245\345\205\245.md"
+++ "b/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/2. SDK\346\216\245\345\205\245.md"
@@ -108,34 +108,35 @@ flashcatRum.init({
您可以用`window.FC_RUM`检查 RUM 浏览器 SDK 发生加载失败时出现的问题。
-
-
## 初始化参数
-| 配置项 | 类型 | 必填 | 必填 | 说明 |
-| -------------------------- | -------------------------- | ---- | -------------------------------------------------------------------------------------------------------------- | ---- |
-| applicationId | String | 是 | 应用 ID,在应用管理页面获取 |
-| clientToken | String | 是 | 客户端 Token,在应用管理页面获取 |
-| service | String | 是 | 服务名称,用于区分不同的服务 |
-| env | String | 否 | 环境标识,如 production、staging 等 |
-| version | String | 否 | 应用版本号 |
-| trackingConsent | "granted" \| "not-granted" | 否 | 设置初始用户跟踪同意状态。请参阅用户跟踪同意。默认值:`granted` |
-| trackViewsManually | Boolean | 否 | 允许您控制 RUM 视图的创建。请参阅覆盖默认 RUM 视图名称。默认值:`false` |
-| trackUserInteractions | Boolean | 否 | 启用自动收集用户操作。默认值:`true` |
-| trackResources | Boolean | 否 | 启用资源事件的收集。默认值:`true` |
-| trackLongTasks | Boolean | 否 | 启用长任务事件的收集。默认值:`true` |
-| trackAnonymousUser | Boolean | 否 | 启用跨会话收集匿名用户 ID。默认值:`true` |
-| enablePrivacyForActionName | Boolean | 否 | 请参见掩码操作名称。默认值:`false` |
-| actionNameAttribute | String | 否 | 指定您自己的属性以用于命名操作。`false` |
-| sessionSampleRate | Number | 否 | 要跟踪的会话百分比:100 为所有,0 为无。仅跟踪的会话发送 RUM 事件。默认值:`100` |
-| silentMultipleInit | Boolean | 否 | 如果 RUM 浏览器 SDK 已在页面上初始化,则初始化会静默失败。默认值:`false` |
-| proxy | String | 否 | 可选代理 URL,例如:`https://www.proxy.com/path` |
-| allowedTracingUrls | Array | 否 | 用于注入跟踪 Headers 的请求 URL 列表。请参阅[集成rum与分布式追踪](https://docs.flashcat.cloud/zh/flashduty/rum/advanced-configuration#%E9%9B%86%E6%88%90rum%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E8%BF%BD%E8%B8%AA) |
-| traceSampleRate | Number | 否 | 要跟踪的请求百分比:100 为所有,0 为无。默认值:`100` |
-| excludedActivityUrls | Array | 否 | 计算页面活动时忽略的请求来源列表。 |
-| compressIntakeRequests | Boolean | 否 | 压缩发送到 FlashDuty 入口的请求,以减少发送大量数据时的带宽使用。压缩是在 Worker 线程中完成的。默认值:`false` |
-| storeContextsAcrossPages | Boolean | 否 | 将全局上下文和用户上下文存储在 localStorage 中以沿用户导航保留它们。默认值:`false` |
-| allowUntrustedEvents | Boolean | 否 | 允许捕获[不受信任的事件](https://developer.mozilla.org/zh-CN/docs/Web/API/Event/isTrusted),例如在自动化 UI 测试中。默认值:`false` |
+| 配置项 | 类型 | 必填 | 必填 | 说明 |
+| ----------------------------------- | -------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
+| applicationId | String | 是 | 应用 ID,在应用管理页面获取 |
+| clientToken | String | 是 | 客户端 Token,在应用管理页面获取 |
+| service | String | 是 | 服务名称,用于区分不同的服务 |
+| env | String | 否 | 环境标识,如 production、staging 等 |
+| version | String | 否 | 应用版本号 |
+| trackingConsent | "granted" \| "not-granted" | 否 | 设置初始用户跟踪同意状态。请参阅用户跟踪同意。默认值:`granted` |
+| trackViewsManually | Boolean | 否 | 允许您控制 RUM 视图的创建。请参阅覆盖默认 RUM 视图名称。默认值:`false` |
+| trackUserInteractions | Boolean | 否 | 启用自动收集用户操作。默认值:`true` |
+| trackResources | Boolean | 否 | 启用资源事件的收集。默认值:`true` |
+| trackLongTasks | Boolean | 否 | 启用长任务事件的收集。默认值:`true` |
+| trackAnonymousUser | Boolean | 否 | 启用跨会话收集匿名用户 ID。默认值:`true` |
+| enablePrivacyForActionName | Boolean | 否 | 请参见掩码操作名称。默认值:`false` |
+| actionNameAttribute | String | 否 | 指定您自己的属性以用于命名操作。`false` |
+| sessionSampleRate | Number | 否 | 要跟踪的会话百分比:100 为所有,0 为无。仅跟踪的会话发送 RUM 事件。默认值:`100` |
+| sessionReplaySampleRate | Number | 否 | 启用[会话重放](https://docs.flashcat.cloud/zh/flashduty/rum/session-replay)功能的跟踪会话百分比:全部为 100,无则为 0。默认值:`0` |
+| sessionReplayPrivacyLevel | String | 'mask-user-input' | 会话重放数据采集时,隐私策略。 'allow'会采集除 password 外所有的数据,'mask-user-input'会隐藏用户数据框内容, 'mask-all' 将会隐藏所有文本信息 |
+| startSessionReplayRecordingManually | Boolean | 否 | 是否手动开启会话重放采集开关 |
+| silentMultipleInit | Boolean | 否 | 如果 RUM 浏览器 SDK 已在页面上初始化,则初始化会静默失败。默认值:`false` |
+| proxy | String | 否 | 可选代理 URL,例如:`https://www.proxy.com/path` |
+| allowedTracingUrls | Array | 否 | 用于注入跟踪 Headers 的请求 URL 列表。请参阅[集成 rum 与分布式追踪](https://docs.flashcat.cloud/zh/flashduty/rum/advanced-configuration#%E9%9B%86%E6%88%90rum%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E8%BF%BD%E8%B8%AA) |
+| traceSampleRate | Number | 否 | 要跟踪的请求百分比:100 为所有,0 为无。默认值:`100` |
+| excludedActivityUrls | Array | 否 | 计算页面活动时忽略的请求来源列表。 |
+| compressIntakeRequests | Boolean | 否 | 压缩发送到 Flashduty 入口的请求,以减少发送大量数据时的带宽使用。压缩是在 Worker 线程中完成的。默认值:`false` |
+| storeContextsAcrossPages | Boolean | 否 | 将全局上下文和用户上下文存储在 localStorage 中以沿用户导航保留它们。默认值:`false` |
+| allowUntrustedEvents | Boolean | 否 | 允许捕获[不受信任的事件](https://developer.mozilla.org/zh-CN/docs/Web/API/Event/isTrusted),例如在自动化 UI 测试中。默认值:`false` |
## 应用场景
diff --git "a/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/3. \351\253\230\347\272\247\351\205\215\347\275\256.md" "b/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/3. \351\253\230\347\272\247\351\205\215\347\275\256.md"
index ee51df84..9d807791 100644
--- "a/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/3. \351\253\230\347\272\247\351\205\215\347\275\256.md"
+++ "b/flashduty/zh/2. RUM/2. \345\272\224\347\224\250\347\256\241\347\220\206/3. \351\253\230\347\272\247\351\205\215\347\275\256.md"
@@ -7,7 +7,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/advanced-configuration"
## 概述
-FlashDuty 真实用户监控(RUM)提供多种高级配置选项,允许您根据需求修改收集的数据和上下文,支持以下场景:
+Flashduty 真实用户监控(RUM)提供多种高级配置选项,允许您根据需求修改收集的数据和上下文,支持以下场景:
- **保护敏感数据**:屏蔽个人身份信息等敏感数据。
- **关联用户会话**:将用户会话与内部用户标识关联,便于支持和问题排查。
@@ -18,13 +18,13 @@ FlashDuty 真实用户监控(RUM)提供多种高级配置选项,允许您
## 覆盖默认 RUM 视图名称
-FlashDuty RUM 浏览器 SDK 会在用户访问新页面或单页应用(SPA)中 URL 更改时自动生成视图事件。视图名称默认从当前页面 URL 计算,并自动移除变量 ID(包含数字的路径段)。例如,`/dashboard/1234` 和 `/dashboard/9a` 会被归一化为 `/dashboard/?`。
+Flashduty RUM 浏览器 SDK 会在用户访问新页面或单页应用(SPA)中 URL 更改时自动生成视图事件。视图名称默认从当前页面 URL 计算,并自动移除变量 ID(包含数字的路径段)。例如,`/dashboard/1234` 和 `/dashboard/9a` 会被归一化为 `/dashboard/?`。
您可以通过设置 `trackViewsManually` 选项手动跟踪视图事件,并为视图指定自定义名称以及关联的服务和版本。
### 配置手动跟踪视图
-在初始化 FlashDuty RUM SDK 时,设置 `trackViewsManually` 为 `true`:
+在初始化 Flashduty RUM SDK 时,设置 `trackViewsManually` 为 `true`:
```javascript
import { flashcatRum } from "@flashcatcloud/browser-rum";
@@ -119,7 +119,7 @@ flashcatRum.setViewName("Checkout");
## 丰富和控制 RUM 数据
-FlashDuty RUM 浏览器 SDK 会自动捕获 RUM 事件并填充其主要属性。通过 `beforeSend` 回调函数,您可以在事件发送到 FlashDuty 之前对其进行拦截和修改,支持以下操作:
+Flashduty RUM 浏览器 SDK 会自动捕获 RUM 事件并填充其主要属性。通过 `beforeSend` 回调函数,您可以在事件发送到 Flashduty 之前对其进行拦截和修改,支持以下操作:
- **丰富事件**:添加额外的上下文属性。
- **修改事件**:更改事件内容或屏蔽敏感信息。
@@ -279,7 +279,7 @@ flashcatRum.clearUser();
## 采样
-默认情况下,FlashDuty RUM 会收集所有会话的数据。您可以通过 `sessionSampleRate` 参数设置采样率(百分比)来减少收集的会话数量。例如,采集 90% 的会话:
+默认情况下,Flashduty RUM 会收集所有会话的数据。您可以通过 `sessionSampleRate` 参数设置采样率(百分比)来减少收集的会话数量。例如,采集 90% 的会话:
```javascript
flashcatRum.init({
@@ -294,9 +294,9 @@ flashcatRum.init({
## 用户跟踪同意
-为遵守 GDPR、CCPA 等隐私法规,FlashDuty RUM 允许在初始化时设置用户跟踪同意状态(`trackingConsent`)。可选值:
+为遵守 GDPR、CCPA 等隐私法规,Flashduty RUM 允许在初始化时设置用户跟踪同意状态(`trackingConsent`)。可选值:
-- **"granted"**:开始收集数据并发送到 FlashDuty。
+- **"granted"**:开始收集数据并发送到 Flashduty。
- **"not-granted"**:不收集任何数据。
您可以通过 `setTrackingConsent` API 在初始化后更改同意状态:
@@ -413,11 +413,11 @@ flashcatRum.init({
- 不建议在上下文中存储个人身份信息,因为 `localStorage` 数据会超出用户会话生命周期。
- 与 `trackSessionAcrossSubdomains` 选项不兼容,因为 `localStorage` 仅在同一域名下共享。
-- `localStorage` 容量限制为 5 MiB,需确保应用数据、FlashDuty 上下文及其他第三方数据总和在此范围内。
+- `localStorage` 容量限制为 5 MiB,需确保应用数据、Flashduty 上下文及其他第三方数据总和在此范围内。
## 微前端支持
-FlashDuty RUM 支持微前端架构,通过堆栈跟踪(stacktrace)机制识别事件来源。您需要从应用文件路径和文件名中提取 `service` 和 `version` 属性。
+Flashduty RUM 支持微前端架构,通过堆栈跟踪(stacktrace)机制识别事件来源。您需要从应用文件路径和文件名中提取 `service` 和 `version` 属性。
### 使用方法
@@ -574,5 +574,5 @@ allowedTracingUrls 匹配完整 URL(`://[:]/[?`, `<`, `,`, `(`, `)`, `[`, `]`, `\` 和空格 (Space)。
+
+## 属性检索
+
+您可以使用 `attribute:term` 来检索特定属性:
+
+| 查询语句 | 描述 |
+| :---------------------- | -------------------------------- |
+| browser_name:Chrome | 检索值为 `Chrome` 的浏览器 |
+| view_name:\*/detail | 检索以 `/detail` 结尾的视图名称 |
+| -resource_status_code:0 | 检索状态码不为 `0` 的资源 |
+| os_name:"Mac OS X" | 检索值为 `"Mac OS X"` 的系统名称 |
+
+## 数值检索
+
+对于数值类型的属性,我们可以使用比较操作符 `>` `>=` `<` `<=` 检索:
+
+| 查询语句 | 描述 |
+| :-------------------------- | -------------------------------------- |
+| session_error_count:>5 | 检索错误数大于 `5` 的会话 |
+| view_time_spent:>=1.00min | 检索停留时间大于 `1min` 的视图 |
+| session_view_count:[2 TO 8] | 检索视图访问量在 `2` 和 `8` 之间的会话 |
+
+## 复杂检索
+
+对于复杂的情况,我们可以任意组合条件进行检索。
+
+### 错误分析检索
+
+```
+error_message:Warning\:* view_url_path:/wallet/*
+```
+
+检索钱包页面中发生的 Warning 类型的错误。
+
+### 性能分析检索
+
+```
+view_loading_time:>=5s view_url_path:/incident/detail/*
+```
+
+检索加载时间超过 5 秒,且 以 `/incident/detail/` 开头的视图。
+
+### 错误请求分析
+
+```
+-resource_status_code:200 resource_type:(fetch OR xhr)
+```
+
+检索请求类型为 `fetch` 或者 `xhr`,且状态码不为 `200` 的资源。
+
+### 页面行为分析
+
+```
+view_url_path:/incident (view_action_count:>=2 OR view_error_count:>=3)
+```
+
+检索 URL 为 `/incident`,且操作数大于 `2` 或者错误数大于 `3` 的视图
+
+## 高级检索技巧
+
+### 1. 时间范围检索
+
+结合时间范围进行精确检索:
+
+```
+view_loading_time:>2s client_time:>1758253826081
+```
+
+### 2. 用户行为检索
+
+```
+action_type:click view_url_path:/checkout/*
+```
+
+检索结账页面的用户点击行为。
+
+### 3. 设备类型检索
+
+```
+device_type:mobile view_loading_time:>3s
+```
+
+检索移动设备上加载时间超过 3 秒的视图。
+
+### 4. 地理位置检索
+
+```
+geo_country:China session_error_count:>0
+```
+
+检索中国地区发生错误的会话。
+
+## 最佳实践
+
+1. **使用引号包围短语**:确保多词短语的精确匹配
+2. **合理使用通配符**:避免过于宽泛的检索条件
+3. **组合多个条件**:通过 AND/OR 操作符构建精确查询
+4. **保存常用检索**:提高重复查询的效率
+5. **利用自动补全**:减少输入错误,提高检索准确性
+
+## 下一步
+
+- [RUM 查看器概览](https://docs.flashcat.cloud/zh/flashduty/rum/rum-explorer)
+- [分布式追踪最佳实践](https://docs.flashcat.cloud/zh/flashduty/rum/distributed-tracing)
diff --git "a/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/1. \346\246\202\350\247\210.md" "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/1. \346\246\202\350\247\210.md"
new file mode 100644
index 00000000..e916eab3
--- /dev/null
+++ "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/1. \346\246\202\350\247\210.md"
@@ -0,0 +1,78 @@
+---
+title: "RUM 会话重放功能概览"
+description: "掌握 Flashduty RUM 的会话重放功能,通过重现用户操作路径快速定位问题并优化用户体验。"
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/rum/session-replay"
+---
+
+## 概述
+
+Flashduty RUM 的 **会话重放功能**(Session Replay)是一款强大的用户行为分析工具,旨在帮助开发者通过重现用户在网站或应用中的操作路径,结合 RUM 性能和异常追踪数据,可直观了解用户体验,快速定位问题根因。
+
+## 核心功能
+
+1. **用户操作录制**:自动记录用户的鼠标点击、页面滚动、表单输入、导航行为等操作,生成直观的会话回放视频。
+2. **异常关联**:将会话重放与异常追踪结合,自动关联异常发生时的用户操作和页面状态,帮助快速定位问题触发场景。
+3. **交互分析**:提供用户交互时间线,展示用户操作序列、页面加载时间以及关键事件(如错误或网络请求失败)的发生点。
+4. **隐私保护**:提供灵活的隐私配置,可屏蔽敏感信息(如表单输入内容)或限制录制范围,确保数据合规性。
+
+## 价值与优势
+
+1. **直观问题定位**:通过可视化回放,快速了解用户遇到问题的具体操作路径,减少排查时间。
+2. **提升用户体验**:洞察用户行为模式,发现交互痛点,优化页面设计和功能逻辑。
+3. **数据驱动优化**:结合异常数据和用户行为分析,为产品迭代提供可靠的数据支持。
+
+## 使用场景
+
+1. **问题复现**:通过重放用户会话,复现异常发生时的操作场景,快速定位问题根源。
+2. **用户行为分析**:分析用户在关键页面(如支付、注册)的行为,优化用户体验和转化率。
+3. **调试与优化**:结合异常追踪,识别页面加载慢、交互卡顿等问题,优化前端性能。
+4. **客户支持**:通过回放用户会话,快速了解用户反馈的问题,提供更精准的支持。
+
+## 会话重放流程
+
+Flashduty RUM 的会话重放功能分为两个关键阶段:**行为记录与回放**、**问题分析与优化**。
+
+### 1. 行为记录与回放
+
+快速记录用户行为并生成回放是分析的第一步。在录制阶段,录制 SDK 会将当前 dom 和 css 样式打快照,并在用户行为(DOM 变化、鼠标移动、点击、表单输入等)发生时收集对应的事件。通过序列化、压缩、去除敏感信息后进行数据上报。
+
+### 2. 问题分析与优化
+
+Flashduty RUM 提供丰富的行为数据和分析工具,帮助定位问题并优化体验:
+
+#### 核心行为数据
+
+- **用户交互**:点击、滚动、输入、导航等操作的时间线。
+- **页面性能**:页面加载时间、资源加载失败、API 调用延迟等。
+- **异常上下文**:异常发生时的页面状态、DOM 结构和用户操作。
+
+#### 上下文信息
+
+- **用户环境**:浏览器、设备、操作系统、网络状况。
+- **操作路径**:用户在会话中的完整操作序列。
+- **页面快照**:异常发生时的页面 DOM 快照。
+
+通过 Flashduty RUM 的可视化回放工具,您可以快速分析用户行为与问题之间的关联:
+
+| 问题类型 | 典型表现 | 可能原因 | 定位方法 |
+| ---------------- | -------------------- | -------------------------- | ---------------------- |
+| **页面加载慢** | 页面白屏、加载超时 | 资源加载失败、网络延迟 | 查看是否有资源加载异常 |
+| **功能失效** | 按钮点击无反应 | 代码逻辑错误、事件绑定问题 | 查看具体行为和异常 |
+| **表单提交失败** | 数据未保存、提交失败 | API 响应错误、表单验证问题 | 查看错误和异常详情 |
+
+## 问题分析工具
+
+#### 1.会话回放面板
+
+在播放器中,您可以查看用户的所有操作,包括点击、滚动和输入等,支持快进、回放和 seek 等播放行为控制,帮助开发者直观复现问题场景并精准分析用户行为。
+
+#### 2. 事件与上下文关联
+
+会话回放支持与各类事件(如视图加载、错误、用户行为)关联,允许查看详细的 errors 和 attributes(上下文信息,如设备类型、浏览器版本、地理位置等),方便定位问题根因并进行深入分析。
+
+## 下一步
+
+- [SDK 配置](https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-config)
+- [查看会话回放](https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-explorer)
+- [了解隐私保护设置](https://docs.flashcat.cloud/zh/flashduty/rum/privacy-settings)
diff --git "a/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/2. SDK \351\205\215\347\275\256.md" "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/2. SDK \351\205\215\347\275\256.md"
new file mode 100644
index 00000000..60aac3c4
--- /dev/null
+++ "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/2. SDK \351\205\215\347\275\256.md"
@@ -0,0 +1,93 @@
+---
+title: "RUM 会话重放SDK配置"
+description: "掌握 Flashduty RUM 的会话重放功能,通过重现用户操作路径快速定位问题并优化用户体验。"
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-config"
+---
+
+## 概述
+
+Flashduty RUM 的会话重放功能集成于 RUM SDK 中,通过简单配置采样比例和隐私规则,即可快速启用重放功能。
+
+## 开启采集
+
+### 自动采集
+
+重放 SDK 已集成至 RUM SDK,配置采样比例便可开启重放功能。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 默认会话重放的session采样率10%
+ // ...
+});
+```
+
+::: tip
+
+采样方式:在客户端 sdk 初始化 session 时生成 0-1 之间的随机数,与 `rate/100` 进行大小比较。如落在区间内,则该 session 会作为采集样本,回放数据会在 session 周期内采集与上报。
+
+在 session 被采样的基础上,会话重放的采样率(sessionReplaySampleRate)会被进行二次计算和采样。
+:::
+
+默认配置采样率后,会在`RUM.init()`执行后开启自动采集。若想手动控制采集时机(如用户登录后再进行数据采集),可先开启手动采集开关,再手动调用 record 方法。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 采样率10%
+ startSessionReplayRecordingManually: true, // 开启手动采集开关
+ // ...
+});
+
+if (userIsShouldRecord()) {
+ // 如果满足某些条件,可开启回放
+ window.FC_RUM.startSessionReplayRecording(); // 在调用时再开启数据采集
+}
+```
+
+开启采集后,可通过`stopSessionReplayRecording()`方法停止采集。
+
+### 强制开启
+
+在某些场景下,即使采样率并未命中,也希望采集该 session 相关数据(如重点监测刚上线的功能,或者捕获某个异常后希望上报后续操作),此时可以通过调用
+`startSessionReplayRecording({ force: true })`方法来强制开启重放。
+
+::: warning
+注:只有当本次 session 被采样,而 sessionReplay 未被采样的情况下,强制开启才会生效。如果 session 本身并没有被采样,即使强制开启 replay 也无效。
+:::
+
+## 关闭采集
+
+如果需要关闭采集功能,将对应的 replay 采样率调整至 0 或者直接去掉该配置项即可。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 0, // 关闭重放功能
+ // ...
+});
+```
+
+## 工作原理
+
+会话重放 SDK 基于 [rrweb](https://www.rrweb.io/) 实现。
+
+在录制阶段,录制 SDK 会将当前 dom 和 css 样式打快照,并在用户行为(DOM 变化、鼠标移动、点击、表单输入等)发生时收集对应的事件。通过序列化、压缩、去除敏感信息后进行数据上报。
+
+在重放阶段,播放 SDK 会根据快照进行 dom 重建,并在合适的时机将事件行为转换为 dom 变化并进行展示。
+
+在数据上报前,SDK 会提前进行数据压缩,并将该 CPU 密集操作放在 web worker 中执行,不会影响主线程渲染。
+
+SDK 兼容性和 RUM SDK 一致,支持 IE11 以上浏览器。
+
+## 下一步
+
+- [查看会话回放](https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-explorer)
+- [了解隐私保护设置](https://docs.flashcat.cloud/zh/flashduty/rum/privacy-settings)
diff --git "a/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/3. \344\274\232\350\257\235\346\237\245\347\234\213.md" "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/3. \344\274\232\350\257\235\346\237\245\347\234\213.md"
new file mode 100644
index 00000000..63f4ddeb
--- /dev/null
+++ "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/3. \344\274\232\350\257\235\346\237\245\347\234\213.md"
@@ -0,0 +1,53 @@
+---
+title: "查看 RUM 会话重放记录"
+description: "掌握 Flashduty RUM 的会话重放功能,通过重现用户操作路径快速定位问题并优化用户体验。"
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-explorer"
+---
+
+## 概述
+
+Flashduty RUM 的会话重放功能通过直观地重现用户操作路径,帮助开发者快速定位问题、分析用户行为并优化产品体验。集成于 RUM SDK 中,只需简单配置即可启用,支持灵活的采样策略和隐私规则设置。会话重放提供强大的播放器和 Devtools 功能,包括操作时间线、异常分析和上下文信息查看,助力开发者高效排查问题并深入了解用户交互细节。
+
+## 会话列表
+
+在「会话重放」菜单中,您可以查看最近的会话记录,默认按时间倒序排列。支持按会话时长、视图数量、行为数量、异常数量等字段排序,并提供丰富的筛选条件(如时间范围、页面、标签等),便于快速定位目标重放记录。
+
+点击任一记录项,将打开播放器面板,分为以下区域:
+
+- **信息展示区**:展示会话的访问时间、起始与结束页面、标签等上下文信息。
+- **播放区**:以用户视角重现操作路径,清晰展示用户交互细节。
+- **播放控制区**:提供播放控制功能,方便操作。
+
+
+:::tip
+为方便快速浏览,列表中仅展示持续时间 **大于 3 秒** 的回放
+:::
+
+## 播放器
+
+播放器支持播放、暂停、快进、快退、重播、倍速播放、全屏和 Seek 等功能,并支持快捷键操作,提升使用效率。播放过程中,时间轴上会以不同颜色的图标标记用户行为(Action)和异常(Error),便于快速概览会话中的关键事件。
+
+
+默认情况下,播放器会自动跳过非活跃片段以提高查看效率。您也可以通过配置关闭此功能,按实际时序完整播放。
+
+
+## Devtools
+
+通过「查看全部事件和异常」功能,可进入宽屏模式,查看会话的操作时间线和详细分析。Devtools 包含以下功能:
+
+- **Events Tab**:展示会话中的所有用户操作,支持以下功能:
+
+ - 切换相对时间与绝对时间显示。
+ - 按事件类型筛选(如点击、页面跳转等)。
+ - 点击具体事件,播放器将自动跳转至对应时间戳。
+
+ 
+
+- **Error Tab**:列出会话中的所有异常和问题,支持点击跳转至详细错误信息,便于快速定位和分析。
+
+- **Attributes Tab**:展示会话的上下文信息(如设备、浏览器、地理位置等),帮助开发者深入了解问题背景并进行精准定位。
+
+## 下一步
+
+- [了解隐私保护设置](https://docs.flashcat.cloud/zh/flashduty/rum/privacy-settings)
diff --git "a/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/4. \351\232\220\347\247\201\344\277\235\346\212\244\350\257\264\346\230\216.md" "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/4. \351\232\220\347\247\201\344\277\235\346\212\244\350\257\264\346\230\216.md"
new file mode 100644
index 00000000..954f9fc4
--- /dev/null
+++ "b/flashduty/zh/2. RUM/6.\344\274\232\350\257\235\351\207\215\346\224\276/4. \351\232\220\347\247\201\344\277\235\346\212\244\350\257\264\346\230\216.md"
@@ -0,0 +1,68 @@
+---
+title: "RUM 会话重放隐私保护"
+description: "掌握 Flashduty RUM 的会话重放功能,通过重现用户操作路径快速定位问题并优化用户体验。"
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-privacy"
+---
+
+## 概述
+
+为满足不同场景的隐私需求,会话重放功能内置了灵活的隐私保护策略。通过配置 `defaultPrivacyLevel` 字段,开发者可控制数据采集的敏感度,支持从显示所有文本(除密码外)到完全隐藏页面文本的多种模式,确保用户数据的安全性和合规性
+
+## 隐私策略
+
+会话重放功能通过 `defaultPrivacyLevel` 字段提供灵活的隐私保护配置,确保在采集用户操作数据时兼顾功能性和数据安全。以下为三种主要隐私级别配置及其效果:
+:::tip
+input 类型为 password 的输入为敏感信息,所有场景都不会收集。
+:::
+
+### 隐藏页面所有文本
+
+配置 `defaultPrivacyLevel: "mask"` 将完全隐藏页面中的所有文本内容,仅保留操作行为和页面结构,适合对数据隐私要求校高的场景。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 默认采样率10%
+ defaultPrivacyLevel: "mask",
+ // ...
+});
+```
+
+
+
+### 隐藏数据框内容
+
+配置 `defaultPrivacyLevel: "mask-user-input"` 将隐藏用户输入框中的内容(如文本输入、选择框等),但保留页面其他文本,适用于需要保护用户输入隐私的场景。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 默认采样率10%
+ defaultPrivacyLevel: "mask-user-input",
+ // ...
+});
+```
+
+
+
+### 显示所有文本(除密码)
+
+配置 `defaultPrivacyLevel: "allow"` 允许采集页面中除密码字段外的所有文本内容,适合需要完整用户交互细节的场景。
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 默认采样率10%
+ defaultPrivacyLevel: "allow",
+ // ...
+});
+```
+
+
diff --git "a/flashduty/zh/2. RUM/7. \346\234\200\344\275\263\345\256\236\350\267\265/1. \345\210\206\345\270\203\345\274\217\350\277\275\350\270\252.md" "b/flashduty/zh/2. RUM/7. \346\234\200\344\275\263\345\256\236\350\267\265/1. \345\210\206\345\270\203\345\274\217\350\277\275\350\270\252.md"
new file mode 100644
index 00000000..edd07baf
--- /dev/null
+++ "b/flashduty/zh/2. RUM/7. \346\234\200\344\275\263\345\256\236\350\267\265/1. \345\210\206\345\270\203\345\274\217\350\277\275\350\270\252.md"
@@ -0,0 +1,218 @@
+---
+title: "分布式追踪功能"
+description: "了解如何在 Flashduty RUM 中配置和使用分布式追踪功能,实现前后端请求链路的完整监控。"
+date: "2024-09-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/zh/flashduty/rum/trace-tracking"
+---
+
+## 概述
+
+Flashduty RUM 的 **Trace 追踪**功能将前端用户监控与分布式追踪系统深度集成,让您能够将 Web 应用程序的请求与其对应的后端跟踪关联起来。这种组合使您能够一目了然地查看完整的前端和后端数据,实现端到端的性能监控和问题排查。
+
+通过 Trace 追踪,您可以:
+
+- **关联前后端请求**:将前端用户操作与后端 API 调用关联
+- **端到端问题排查**:快速定位从前端到后端的完整请求链路问题
+- **性能瓶颈分析**:识别整个请求链路中的性能瓶颈点
+- **用户体验优化**:基于完整的请求链路数据优化用户体验
+
+## 工作原理
+
+Trace 追踪基于 [W3C Trace Context](https://www.w3.org/TR/trace-context/) 标准实现,通过在 HTTP 请求头中注入追踪信息来关联前后端请求:
+
+1. **前端发起请求**:RUM SDK 自动为配置的 API 请求添加追踪头信息
+2. **后端接收处理**:后端服务接收并处理带有追踪信息的请求
+3. **链路关联**:通过相同的 trace_id 将前后端数据关联起来
+4. **可视化展示**:通过 trace 关联根据 trace_id 查看完整的请求链路信息
+
+## 配置步骤
+
+### 1. SDK 配置
+
+首先需要在 RUM SDK 中配置分布式追踪功能。基于 [RUM 高级配置文档](https://docs.flashcat.cloud/zh/flashduty/rum/advanced-configuration#%E9%9B%86%E6%88%90rum%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E8%BF%BD%E8%B8%AA) 中的配置,在初始化 RUM SDK 时添加以下参数:
+
+```javascript
+import { flashcatRum } from "@flashcatcloud/browser-rum";
+
+flashcatRum.init({
+ applicationId: "", // 从应用管理页面获取
+ clientToken: "", // 从应用管理页面获取
+ service: "", // 服务名称,用于区分不同的服务
+ env: "", // 环境标识
+ version: "1.0.0", // 应用版本号
+ sessionSampleRate: 100, // 采样率
+ allowedTracingUrls: [
+ "https://api.example.com/",
+ /https:\/\/.*\.my-api-domain\.com/,
+ (url) => url.startsWith("https://api.example.com/"),
+ ], // 需要跟踪的 URL 列表
+ traceSampleRate: 20, // 可选参数,要跟踪的请求百分比:100 为所有,0 为无。默认值:100
+});
+```
+
+#### 关键配置参数说明
+
+- **`allowedTracingUrls`**:指定需要添加追踪信息的 API 端点
+
+ - **字符串**:匹配以该值开头的 URL,如 `https://api.example.com`
+ - **正则表达式**:使用正则表达式匹配 URL
+ - **函数**:自定义匹配逻辑,返回 `true` 表示匹配成功
+
+- **`traceSampleRate`**:追踪采样率,控制多少比例的请求会被追踪
+ - 范围:0-100
+ - 默认值:100(追踪所有请求)
+ - 建议:生产环境可设置为 10-20 以平衡监控覆盖率和性能
+
+### 2. 应用管理配置
+
+SDK 配置完成后,可在应用管理页面进行 trace 跳转相关配置:
+
+1. 进入 **应用管理** 页面
+2. 选择对应的 RUM 应用
+3. 配置 trace 系统的跳转地址(如已集成分布式追踪系统)
+4. 在 **高级配置** 中启用 **Trace 追踪** 功能
+ ::: tip
+ 在配置的跳转链接中,系统会自动将 ${trace_id} 替换为实际的 trace_id。
+ :::
+
+
+
+### 3. 后端服务配置
+
+为了完整支持分布式追踪,后端服务需要:
+
+1. **接收追踪头信息**:处理 `traceparent` 和 `tracestate` 请求头
+2. **传递追踪信息**:在调用其他服务时继续传递追踪头信息
+3. **生成追踪数据**:将请求处理过程记录到追踪系统中
+
+## 追踪头信息说明
+
+RUM SDK 会在配置的请求中自动添加以下 HTTP 头信息:
+
+### traceparent 头
+
+```
+traceparent: 00-00000000000000008448eb211c80319c-b7ad6b7169203331-01
+```
+
+格式:`[version]-[trace-id]-[parent-id]-[trace-flags]`
+
+- **version**:当前为 `00`
+- **trace-id**:128 位的 trace ID,16 进制处理后为 32 个字符
+- **parent-id**:64 位的 span ID,16 进制处理后为 16 个字符
+- **trace-flags**:采样标志,`01` 表示命中采样,`00` 表示非采样
+
+### tracestate 头
+
+```
+tracestate: dd=s:1;o:rum
+```
+
+格式:`dd=s:[sampling-priority];o:[origin]`
+
+- **sampling-priority**:`1` 表示 trace 被采样
+- **origin**:始终为 `rum`,表示通过 RUM SDK 采集
+
+## 使用场景
+
+### 1. 在 RUM 查看器中查看 Trace
+
+配置完成后,在 RUM 查看器的 **View 视图** 中可以查看对应的 trace 信息:
+
+1. 进入 **RUM 查看器**
+2. 选择包含 API 调用的页面视图
+3. 在视图详情中查看 **Trace 信息**
+4. 点击 trace 链接可跳转至 trace 系统查看详细的请求链路
+ 
+
+### 2. 通过 trace_id 查找资源
+
+通过 trace_id 也可以在查看器中进行资源查找:
+
+1. 在查看器搜索栏中输入 trace_id
+2. 查看对应的资源和视图加载情况
+3. 分析资源加载性能与后端 API 调用的关联关系
+ 
+
+ ::: tip
+ 也可以通过在 url 上拼接对应的参数直接查询相应的 resource. url 示例:
+ https://console.flashcat.cloud/rum/explorer?appid=${YOUR_APP_ID}&end=${END_TIME}&eventType=resource&queryStr=trace_id%3A${TRACE_ID}&start=${START_TIME}
+ 其中 start、end、appid 均为选填参数,若不传则会复用当前 rum 默认查询的应用和时间范围。您可按照实际情况进行 url 拼接。
+ :::
+
+### 3. 端到端问题排查
+
+当用户报告性能问题或者异常时:
+
+1. 在 RUM 查看器中找到问题用户的会话
+2. 查看问题页面的 trace 信息
+3. 跳转到 trace 系统查看完整的请求链路
+4. 定位是前端问题还是服务问题,或是网络问题
+
+## 最佳实践
+
+### 1. 合理配置采样率
+
+- **开发环境**:建议设置为 100%,确保所有请求都被追踪
+- **测试环境**:建议设置为 50-80%,平衡监控覆盖率和性能
+- **生产环境**:建议设置为 10-20%,避免对性能造成影响
+
+### 2. 精确配置追踪 URL
+
+```javascript
+// 推荐:精确匹配 API 端点
+allowedTracingUrls: [
+ "https://api.example.com/v1/",
+ "https://api.example.com/v2/",
+];
+
+// 避免:过于宽泛的匹配
+allowedTracingUrls: [
+ "https://api.example.com/", // 可能包含不需要追踪的静态资源
+];
+```
+
+### 3. 跨域请求处理
+
+如果您的 HTTP 请求涉及跨域问题,需要确保:
+
+- 服务器配置了正确的 CORS 头信息
+- 支持预检请求(Preflight Request)
+- 允许 `traceparent` 和 `tracestate` 头信息
+
+### 4. 性能监控
+
+- 定期检查 trace 采样率对应用性能的影响
+- 监控追踪数据的存储和查询性能
+- 根据业务需求调整追踪策略
+
+## 常见问题
+
+### Q: 为什么某些请求没有 trace 信息?
+
+A: 可能的原因包括:
+
+- 请求 URL 不在 `allowedTracingUrls` 配置范围内
+- 请求被 `traceSampleRate` 采样率过滤
+- 请求在 SDK 初始化之前发起
+- 跨域请求缺少必要的 CORS 配置
+
+### Q: 如何验证 trace 配置是否正确?
+
+A: 可以通过以下方式验证:
+
+1. 在浏览器开发者工具中检查网络请求头
+2. 确认请求包含 `traceparent` 和 `tracestate` 头信息
+3. 在 RUM 查看器中查看是否有 trace 信息显示
+
+## 注意事项
+
+1. **隐私合规**:确保 trace 数据收集符合相关隐私法规要求
+2. **性能影响**:合理设置采样率,避免对应用性能造成显著影响
+3. **数据安全**:避免在 trace 数据中包含敏感信息
+4. **跨域配置**:确保后端服务正确配置 CORS 以支持追踪头信息
+
+## 相关文档
+
+- [RUM 高级配置](https://docs.flashcat.cloud/zh/flashduty/rum/advanced-configuration) - 了解 RUM SDK 的完整配置选项
+- [RUM 查看器概览](https://docs.flashcat.cloud/zh/flashduty/rum/rum-explorer) - 掌握 RUM 查看器的使用方法
diff --git "a/flashduty/zh/2. RUM/5. \345\205\266\344\273\226/1. \346\234\257\350\257\255\350\257\264\346\230\216.md" "b/flashduty/zh/2. RUM/8. \345\205\266\344\273\226/1. \346\234\257\350\257\255\350\257\264\346\230\216.md"
similarity index 100%
rename from "flashduty/zh/2. RUM/5. \345\205\266\344\273\226/1. \346\234\257\350\257\255\350\257\264\346\230\216.md"
rename to "flashduty/zh/2. RUM/8. \345\205\266\344\273\226/1. \346\234\257\350\257\255\350\257\264\346\230\216.md"
diff --git "a/flashduty/zh/2. RUM/5. \345\205\266\344\273\226/2. \346\225\260\346\215\256\346\224\266\351\233\206.md" "b/flashduty/zh/2. RUM/8. \345\205\266\344\273\226/2. \346\225\260\346\215\256\346\224\266\351\233\206.md"
similarity index 100%
rename from "flashduty/zh/2. RUM/5. \345\205\266\344\273\226/2. \346\225\260\346\215\256\346\224\266\351\233\206.md"
rename to "flashduty/zh/2. RUM/8. \345\205\266\344\273\226/2. \346\225\260\346\215\256\346\224\266\351\233\206.md"
diff --git "a/flashduty/zh/2. RUM/5. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md" "b/flashduty/zh/2. RUM/8. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md"
similarity index 85%
rename from "flashduty/zh/2. RUM/5. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md"
rename to "flashduty/zh/2. RUM/8. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md"
index d0a8c99b..c4650547 100644
--- "a/flashduty/zh/2. RUM/5. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md"
+++ "b/flashduty/zh/2. RUM/8. \345\205\266\344\273\226/4. \346\225\260\346\215\256\345\256\211\345\205\250.md"
@@ -7,15 +7,15 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/data-security"
## 概述
-真实用户监控(RUM)涉及从最终用户的浏览器和移动设备收集数据。为了保护用户隐私和确保数据安全,FlashDuty 提供了多种配置选项和工具来管理数据收集、存储和访问。
+真实用户监控(RUM)涉及从最终用户的浏览器和移动设备收集数据。为了保护用户隐私和确保数据安全,Flashduty 提供了多种配置选项和工具来管理数据收集、存储和访问。
## 隐私选项
### 客户端令牌
-浏览器 RUM 客户端令牌用于将最终用户浏览器的数据与 FlashDuty 中的特定 RUM 应用程序匹配。它是未加密的,可以从应用程序的客户端看到。
+浏览器 RUM 客户端令牌用于将最终用户浏览器的数据与 Flashduty 中的特定 RUM 应用程序匹配。它是未加密的,可以从应用程序的客户端看到。
-虽然客户端令牌仅用于向 FlashDuty 发送数据,不会造成数据泄露风险,但我们建议采取以下良好的令牌管理措施:
+虽然客户端令牌仅用于向 Flashduty 发送数据,不会造成数据泄露风险,但我们建议采取以下良好的令牌管理措施:
- 定期轮换客户端令牌,确保它只被您的应用程序使用
- 在捕获 RUM 数据时自动过滤掉机器人
@@ -24,7 +24,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/data-security"
使用客户端令牌过滤机器人的一种方法是认证代理。在这种方法中,初始化 RUM SDK 时使用占位符字符串替代 `clientToken`。代理知道真实的客户端令牌,但最终用户不知道。
-代理配置为在将会话数据传递给 FlashDuty 之前检查有效的用户信息,从而确认真实用户已登录并正在传输要监控的流量。接收流量时,代理验证数据是否包含占位符字符串,并在将数据转发给 FlashDuty 之前将其替换为真实的 `clientToken`。
+代理配置为在将会话数据传递给 Flashduty 之前检查有效的用户信息,从而确认真实用户已登录并正在传输要监控的流量。接收流量时,代理验证数据是否包含占位符字符串,并在将数据转发给 Flashduty 之前将其替换为真实的 `clientToken`。
### 事件追踪
@@ -32,7 +32,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/data-security"
### 通过代理服务器传输 RUM 事件
-您可以通过自己的代理服务器传输所有 RUM 事件,这样最终用户设备就永远不会直接与 FlashDuty 通信。
+您可以通过自己的代理服务器传输所有 RUM 事件,这样最终用户设备就永远不会直接与 Flashduty 通信。
### 用户身份追踪
@@ -40,7 +40,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/data-security"
### 数据保留
-配置事件捕获后,事件将存储在 FlashDuty 中。您可以决定捕获的事件和属性在 FlashDuty 中保留多长时间。
+配置事件捕获后,事件将存储在 Flashduty 中。您可以决定捕获的事件和属性在 Flashduty 中保留多长时间。
默认情况下,生产环境的数据保留期为:
@@ -63,8 +63,8 @@ url: "https://docs.flashcat.cloud/zh/flashduty/rum/data-security"
初始化 RUM 应用程序后,您可以在**用户数据收集**选项卡中选择是否要包含 IP 或地理位置数据。
-禁用 IP 数据收集后,更改将立即生效。在禁用之前收集的任何事件不会删除 IP 数据。这是在后端执行的,这意味着浏览器 SDK 仍在发送数据,但 IP 地址在处理时会被 FlashDuty 后端管道省略和丢弃。
+禁用 IP 数据收集后,更改将立即生效。在禁用之前收集的任何事件不会删除 IP 数据。这是在后端执行的,这意味着浏览器 SDK 仍在发送数据,但 IP 地址在处理时会被 Flashduty 后端管道省略和丢弃。
#### 地理位置
-除了删除客户端 IP 外,您还可以选择禁用从所有未来收集的数据中收集地理位置(国家、城市、县)或 GeoIP 信息。如果取消选中**收集地理位置数据**框,更改将立即生效。在禁用之前收集的任何事件不会删除相应的地理位置数据。数据省略在后端级别完成,这意味着浏览器 SDK 仍在发送数据,但地理位置数据在处理时会被 FlashDuty 后端管道省略和丢弃。
+除了删除客户端 IP 外,您还可以选择禁用从所有未来收集的数据中收集地理位置(国家、城市、县)或 GeoIP 信息。如果取消选中**收集地理位置数据**框,更改将立即生效。在禁用之前收集的任何事件不会删除相应的地理位置数据。数据省略在后端级别完成,这意味着浏览器 SDK 仍在发送数据,但地理位置数据在处理时会被 Flashduty 后端管道省略和丢弃。
diff --git "a/flashduty/zh/3. \345\271\263\345\217\260\345\212\237\350\203\275/3. \351\205\215\347\275\256\345\215\225\347\202\271\347\231\273\345\275\225.md" "b/flashduty/zh/3. \345\271\263\345\217\260\345\212\237\350\203\275/3. \351\205\215\347\275\256\345\215\225\347\202\271\347\231\273\345\275\225.md"
index f4db2c62..89a75acb 100644
--- "a/flashduty/zh/3. \345\271\263\345\217\260\345\212\237\350\203\275/3. \351\205\215\347\275\256\345\215\225\347\202\271\347\231\273\345\275\225.md"
+++ "b/flashduty/zh/3. \345\271\263\345\217\260\345\212\237\350\203\275/3. \351\205\215\347\275\256\345\215\225\347\202\271\347\231\273\345\275\225.md"
@@ -5,7 +5,7 @@ date: "2024-05-10T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/single-sign-on"
---
-FlashDuty 目前提供 SAML2.0、 OIDC、CAS 和 LDAP(仅私有化版本) 协议的单点登录(SSO)接入,使您能够轻松地集成到各种不同的应用和平台中,这些功能能够帮助您快速实现与其他平台共享身份信息,用户只需在一个平台登录一次,便可访问多个相关联的应用程序和服务,无需为每个应用程序单独进行身份验证,从而提高了工作效率,提高用户体验,简化登录流程,并增强安全性。
+Flashduty 目前提供 SAML2.0、 OIDC、CAS 和 LDAP(仅私有化版本) 协议的单点登录(SSO)接入,使您能够轻松地集成到各种不同的应用和平台中,这些功能能够帮助您快速实现与其他平台共享身份信息,用户只需在一个平台登录一次,便可访问多个相关联的应用程序和服务,无需为每个应用程序单独进行身份验证,从而提高了工作效率,提高用户体验,简化登录流程,并增强安全性。
## 配置SAML协议
---
@@ -105,15 +105,15 @@ LDAP单点登录,仅 `私有化版本` 支持
:::tip
-字段映射,需要和身份提供商的配置保持一致,否则会导致异常。具体的值根据描述来填充,可以参考[OpenLDAP 集成指引](https://docs.flashcat.cloud/zh/flashduty/openldap-integration-guide)进行配置,如果还有问题请联系 FlashDuty 客服。
+字段映射,需要和身份提供商的配置保持一致,否则会导致异常。具体的值根据描述来填充,可以参考[OpenLDAP 集成指引](https://docs.flashcat.cloud/zh/flashduty/openldap-integration-guide)进行配置,如果还有问题请联系 Flashduty 客服。
:::
## 最佳实践
-通过 [Authing 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) FlashDuty 的 SSO 单点登录。
-通过 [Keycloak 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) FlashDuty 的 SSO 单点登录。
-通过 [Ldap 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) FlashDuty 的 SSO 单点登录。
+通过 [Authing 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) Flashduty 的 SSO 单点登录。
+通过 [Keycloak 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) Flashduty 的 SSO 单点登录。
+通过 [Ldap 配置](https://docs.flashcat.cloud/zh/flashduty/introduction) Flashduty 的 SSO 单点登录。
## 常见问题
---
diff --git a/flashduty/zh/index.md b/flashduty/zh/index.md
index 2e5b5483..a5bc7950 100644
--- a/flashduty/zh/index.md
+++ b/flashduty/zh/index.md
@@ -1,9 +1,9 @@
---
layout: home
hero:
- name: FlashDuty
+ name: Flashduty
text: 文档中心
- tagline: FlashDuty 平台完整文档
+ tagline: Flashduty 平台完整文档
actions:
- theme: brand
text: 开始阅读
diff --git a/instructions.md b/i18n_instructions.md
similarity index 100%
rename from instructions.md
rename to i18n_instructions.md
diff --git a/package.json b/package.json
index b0691fe1..08e627c0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "flashduty-knowledge-base",
- "version": "1.3.1",
+ "version": "1.3.5",
"description": "flashduty knowledge base",
"type": "module",
"engines": {
diff --git a/polish_instructions.md b/polish_instructions.md
new file mode 100644
index 00000000..f93ffbff
--- /dev/null
+++ b/polish_instructions.md
@@ -0,0 +1,132 @@
+# 角色:SaaS 产品文档专家
+
+您是一位顶级的 SaaS 产品技术文档工程师,专长是将原始功能说明转化为清晰、准确、用户友好的产品文档。您的核心任务是在不改变原文技术内核的前提下,对中文文档进行专业级润色。
+
+# 核心任务:润色中文产品文档
+
+严格遵循本指引,对指定的中文 `.md` 文档进行润色。
+
+# 核心原则
+
+1. **忠于原文**: **严禁改变原文的技术含义、操作步骤和核心信息。** 润色重点在于优化表达、格式和结构,而非内容创作或重新组织。
+2. **用户中心**: 以终端用户为中心,确保文档清晰易懂,能帮助他们快速解决问题。
+3. **专业严谨**: 保证技术术语的准确性和一致性,格式规范统一。
+
+# 标准操作流程 (SOP)
+
+请严格按照以下步骤执行:
+
+1. **分析文档结构**: 根据本指引分析当前文档的整体结构(标题层级、章节顺序),识别需要优化的章节组织。判断是否符合“总-分-总”逻辑。**仅在结构严重混乱时才进行微调**,通常应保持原状。
+2. **优化内容结构与表达**:
+ - **优化段落结构**:调整段落内部的逻辑和信息层次,确保每个段落聚焦一个核心主题,使表达更清晰。
+ - **优化语言表达**:逐句精炼语言,使其更专业、简洁、易读。遵循下文【语言风格】和【语法与表达规范】。
+3. **格式与术语标准化**: 严格按照【格式规范】和【术语使用】部分,对全文进行格式化,并统一所有技术术语。
+4. **质量自检**: 完成润色后,根据【质量检查清单】进行最后复核。
+
+# 格式规范
+
+文档应以 Markdown 格式呈现,严格遵循以下结构化格式。**除此外,不应出现其他格式。**
+
+| 格式类型 | 格式示例 | 核心用途与要求 |
+| ----------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| YAML Front Matter | `---` 包围的区域 | 定义文档元数据,如 `title`、`description`。必须保留。 |
+| 二级标题 | `## 章节标题` | 构建文档主要框架。`##`后必须有 1 个空格。 |
+| 三级标题 | `### 步骤标题` | 细分章节内容,通常用于操作步骤。`###`后必须有 1 个空格。 |
+| 分隔线 | `---` | 在不同逻辑章节之间提供视觉分隔,增强层次感。 |
+| 有序列表 | `1. 列表项` | 展示需要按顺序执行的操作步骤。注 |
+| 无序列表 | `- 列表项` | 列举功能特性、配置选项等无序信息。 |
+| 缩进 | ` - 嵌套列表项` | 用于创建层级结构(如嵌套列表)。每个缩进层级使用 2 个半角空格。 |
+| **粗体文本** | `**文本内容**` | 突出显示 UI 元素(如按钮名、菜单项)、关键概念或警告信息。**文本两侧必须有空格**,除非紧跟标点符号。 |
+| `行内代码` | `` `代码内容` `` | 标识技术术语、参数名、配置项、状态值(如 `AgentId`、`Secret`)。 |
+| > 引用块 | `> 文本内容` | 突出显示重要提示、前置条件或警告信息。 |
+| 图片 | `` | 直观展示操作界面和预期结果。**禁止修改图片地址。** |
+| 链接 | `[链接文本](链接地址)` | 引用相关文档或外部资源。**禁止修改链接地址。** |
+| 表格 | `| Head | Text |` | 用于结构化地展示数据,如参数对比、配置说明等。表格第一行(标题行)应该加粗 |
+| 页面内引用 | `[文本内容](#anchor_id)` | 引用页面内内容。当出现页面短文本内容引用页面内段落时,可以考虑添加页面内引用。 |
+| HTML `` | `` | 用于页面内锚点定位,必须保留。 |
+| HTML `