diff --git a/README.md b/README.md index f1914b24..5b20e151 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,4 @@ date: "2023-12-18T10:00:00+08:00" ``` 完成润色后,可在 VSCode / Cursor 中打开文档,然后在文档 tab 页中右击,点击 `格式化文档`。 + diff --git a/flashduty/en/1. On-call/8. Integrations/8.1 Alerts integration/8.1.52 WecomAlert Integration.md b/flashduty/en/1. On-call/8. Integrations/8.1 Alerts integration/8.1.52 WecomAlert Integration.md new file mode 100644 index 00000000..d3d335be --- /dev/null +++ b/flashduty/en/1. On-call/8. Integrations/8.1 Alerts integration/8.1.52 WecomAlert Integration.md @@ -0,0 +1,81 @@ +--- +title: "Wecom Alert Integration" +description: "Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom" +date: "2025-05-19T10:00:00+08:00" +url: "https://docs.flashcat.cloud/en/flashduty/Wecom-alert-integration-guide" +--- + +Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom. + +
diff --git a/flashduty/en/2. RUM/2. Applications/2. SDK Integration.md b/flashduty/en/2. RUM/2. Applications/2. SDK Integration.md
index 2fdb822f..95f5a321 100644
--- a/flashduty/en/2. RUM/2. Applications/2. SDK Integration.md
+++ b/flashduty/en/2. RUM/2. Applications/2. SDK Integration.md
@@ -108,35 +108,35 @@ Add the following code snippet to the beginning of the `head` tag in each `HTML`
You can check for loading issues with `window.FC_RUM` if the RUM browser SDK fails to load.
-
-
-
## Initialization Parameters
-| Configuration | Type | Required | Description |
-| -------------------------- | -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| applicationId | String | Yes | Application ID, obtained from the application management page |
-| clientToken | String | Yes | Client Token, obtained from the application management page |
-| service | String | Yes | Service name, used to distinguish different services |
-| env | String | No | Environment identifier, such as production, staging, etc. |
-| version | String | No | Application version |
-| trackingConsent | "granted" \| "not-granted" | No | Set initial user tracking consent status. See user tracking consent. Default: `granted` |
-| trackViewsManually | Boolean | No | Allows you to control RUM view creation. See override default RUM view names. Default: `false` |
-| trackUserInteractions | Boolean | No | Enable automatic collection of user actions. Default: `true` |
-| trackResources | Boolean | No | Enable collection of resource events. Default: `true` |
-| trackLongTasks | Boolean | No | Enable collection of long task events. Default: `true` |
-| trackAnonymousUser | Boolean | No | Enable cross-session collection of anonymous user IDs. Default: `true` |
-| enablePrivacyForActionName | Boolean | No | See mask action names. Default: `false` |
-| actionNameAttribute | String | No | Specify your own attribute to use for naming actions. Default: `false` |
-| sessionSampleRate | Number | No | Percentage of sessions to track: 100 for all, 0 for none. Only tracked sessions send RUM events. Default: `100` |
-| silentMultipleInit | Boolean | No | If the RUM browser SDK is already initialized on the page, initialization will silently fail. Default: `false` |
-| proxy | String | No | Optional proxy URL, for example: `https://www.proxy.com/path` |
-| allowedTracingUrls | Array | No | List of request URLs for injecting tracing headers. For more information, see [Connect RUM and Traces](https://docs.flashcat.cloud/en/flashduty/rum/sdk-integration#Connect%20RUM%20and%20Traces) |
-| traceSampleRate | Number | No | Percentage of requests to trace: 100 for all, 0 for none. Default: `100` |
-| excludedActivityUrls | Array | No | List of request origins to ignore when calculating page activity |
-| compressIntakeRequests | Boolean | No | Compress requests sent to the FlashDuty intake to reduce bandwidth usage when sending large amounts of data. Compression is done in a Worker thread. Default: `false` |
-| storeContextsAcrossPages | Boolean | No | Store global context and user context in localStorage to preserve them across user navigation. Default: `false` |
-| allowUntrustedEvents | Boolean | No | Allow capturing [untrusted events][https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted], for example in automated UI tests. Default: `false` |
+| Configuration | Type | Required | Description |
+| ----------------------------------- | -------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| applicationId | String | Yes | Application ID, obtained from the application management page |
+| clientToken | String | Yes | Client Token, obtained from the application management page |
+| service | String | Yes | Service name, used to distinguish different services |
+| env | String | No | Environment identifier, such as production, staging, etc. |
+| version | String | No | Application version |
+| trackingConsent | "granted" \| "not-granted" | No | Set initial user tracking consent status. See user tracking consent. Default: `granted` |
+| trackViewsManually | Boolean | No | Allows you to control RUM view creation. See override default RUM view names. Default: `false` |
+| trackUserInteractions | Boolean | No | Enable automatic collection of user actions. Default: `true` |
+| trackResources | Boolean | No | Enable collection of resource events. Default: `true` |
+| trackLongTasks | Boolean | No | Enable collection of long task events. Default: `true` |
+| trackAnonymousUser | Boolean | No | Enable cross-session collection of anonymous user IDs. Default: `true` |
+| enablePrivacyForActionName | Boolean | No | See mask action names. Default: `false` |
+| actionNameAttribute | String | No | Specify your own attribute to use for naming actions. Default: `false` |
+| sessionSampleRate | Number | No | Percentage of sessions to track: 100 for all, 0 for none. Only tracked sessions send RUM events. Default: `100` |
+| sessionReplaySampleRate | Number | No | Percentage of tracked sessions to enable [session replay](https://docs.flashcat.cloud/en/flashduty/rum/session-replay) functionality: 100 for all, 0 for none. Default: `0` |
+| sessionReplayPrivacyLevel | String | No | Privacy policy for session replay data collection. 'allow' collects all data except passwords, 'mask-user-input' hides user input field content, 'mask-all' hides all text information. Default: `'mask-user-input'` |
+| startSessionReplayRecordingManually | Boolean | No | Whether to manually enable session replay recording switch |
+| silentMultipleInit | Boolean | No | If the RUM browser SDK is already initialized on the page, initialization will silently fail. Default: `false` |
+| proxy | String | No | Optional proxy URL, for example: `https://www.proxy.com/path` |
+| allowedTracingUrls | Array | No | List of request URLs for injecting tracing headers. For more information, see [Connect RUM and Traces](https://docs.flashcat.cloud/en/flashduty/rum/advanced-configuration#connect-rum-and-distributed-tracing) |
+| traceSampleRate | Number | No | Percentage of requests to trace: 100 for all, 0 for none. Default: `100` |
+| excludedActivityUrls | Array | No | List of request origins to ignore when calculating page activity |
+| compressIntakeRequests | Boolean | No | Compress requests sent to the FlashDuty intake to reduce bandwidth usage when sending large amounts of data. Compression is done in a Worker thread. Default: `false` |
+| storeContextsAcrossPages | Boolean | No | Store global context and user context in localStorage to preserve them across user navigation. Default: `false` |
+| allowUntrustedEvents | Boolean | No | Allow capturing [untrusted events](https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted), for example in automated UI tests. Default: `false` |
## Use Cases
@@ -209,4 +209,4 @@ After integration, you can validate whether the integration was successful throu
- [RUM Application Management](https://docs.flashcat.cloud/en/flashduty/rum/application-management?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5): Learn how to create and manage RUM applications
- [RUM SDK Advanced Configuration](https://docs.flashcat.cloud/en/flashduty/rum/advanced-configuration?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5): Learn how to configure advanced features of the SDK
-- [RUM Analysis Dashboard](https://docs.flashcat.cloud/en/flashduty/rum/analysis-dashboard?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5): View and analyze RUM data
\ No newline at end of file
+- [RUM Analysis Dashboard](https://docs.flashcat.cloud/en/flashduty/rum/analysis-dashboard?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5): View and analyze RUM data
diff --git a/flashduty/en/2. RUM/5. Session Replay/1. Overview.md b/flashduty/en/2. RUM/5. Session Replay/1. Overview.md
new file mode 100644
index 00000000..a169db90
--- /dev/null
+++ b/flashduty/en/2. RUM/5. Session Replay/1. Overview.md
@@ -0,0 +1,78 @@
+---
+title: "RUM Session Replay Overview"
+description: "Master Flashduty RUM's session replay functionality to quickly identify issues and optimize user experience by reproducing user operation paths."
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/en/flashduty/rum/session-replay"
+---
+
+## Overview
+
+Flashduty RUM's **Session Replay** feature is a powerful user behavior analysis tool designed to help developers understand user experience and quickly identify root causes by reproducing user operation paths in websites or applications, combined with RUM performance and error tracking data.
+
+## Core Features
+
+1. **User Operation Recording**: Automatically records user actions such as mouse clicks, page scrolling, form inputs, navigation behaviors, etc., generating intuitive session replay videos.
+2. **Error Correlation**: Combines session replay with error tracking, automatically correlating user operations and page states when errors occur, helping to quickly identify problem trigger scenarios.
+3. **Interaction Analysis**: Provides user interaction timeline, displaying user operation sequences, page loading times, and occurrence points of key events (such as errors or network request failures).
+4. **Privacy Protection**: Offers flexible privacy configurations to mask sensitive information (such as form input content) or limit recording scope, ensuring data compliance.
+
+## Value and Benefits
+
+1. **Intuitive Problem Identification**: Quickly understand specific operation paths when users encounter issues through visual replay, reducing troubleshooting time.
+2. **Enhanced User Experience**: Gain insights into user behavior patterns, discover interaction pain points, and optimize page design and functional logic.
+3. **Data-Driven Optimization**: Combine error data and user behavior analysis to provide reliable data support for product iterations.
+
+## Use Cases
+
+1. **Problem Reproduction**: Reproduce operation scenarios when errors occur by replaying user sessions, quickly identifying problem root causes.
+2. **User Behavior Analysis**: Analyze user behavior on key pages (such as payment, registration) to optimize user experience and conversion rates.
+3. **Debugging and Optimization**: Combine error tracking to identify issues like slow page loading and interaction lag, optimizing frontend performance.
+4. **Customer Support**: Quickly understand user-reported issues by replaying user sessions, providing more precise support.
+
+## Session Replay Process
+
+Flashduty RUM's session replay functionality is divided into two key phases: **Behavior Recording and Replay**, **Problem Analysis and Optimization**.
+
+### 1. Behavior Recording and Replay
+
+Quickly recording user behavior and generating replays is the first step in analysis. During the recording phase, the recording SDK takes snapshots of the current DOM and CSS styles, and collects corresponding events when user behaviors occur (DOM changes, mouse movements, clicks, form inputs, etc.). Data is reported after serialization, compression, and removal of sensitive information.
+
+### 2. Problem Analysis and Optimization
+
+Flashduty RUM provides rich behavior data and analysis tools to help identify problems and optimize experience:
+
+#### Core Behavior Data
+
+- **User Interactions**: Timeline of operations such as clicks, scrolling, input, navigation, etc.
+- **Page Performance**: Page loading times, resource loading failures, API call delays, etc.
+- **Error Context**: Page state, DOM structure, and user operations when errors occur.
+
+#### Context Information
+
+- **User Environment**: Browser, device, operating system, network conditions.
+- **Operation Path**: Complete operation sequence of users during the session.
+- **Page Snapshots**: Page DOM snapshots when errors occur.
+
+Through Flashduty RUM's visual replay tools, you can quickly analyze the correlation between user behavior and problems:
+
+| Problem Type | Typical Manifestation | Possible Causes | Identification Method |
+| --------------------------- | ---------------------------------- | ------------------------------------------- | ------------------------------------- |
+| **Slow Page Loading** | Page white screen, loading timeout | Resource loading failure, network delay | Check for resource loading exceptions |
+| **Function Failure** | Button clicks unresponsive | Code logic errors, event binding issues | View specific behavior and exceptions |
+| **Form Submission Failure** | Data not saved, submission failure | API response errors, form validation issues | View error and exception details |
+
+## Problem Analysis Tools
+
+#### 1. Session Replay Panel
+
+In the player, you can view all user operations including clicks, scrolling, and inputs, supporting playback controls such as fast-forward, replay, and seek, helping developers intuitively reproduce problem scenarios and precisely analyze user behavior.
+
+#### 2. Event and Context Correlation
+
+Session replay supports correlation with various events (such as view loading, errors, user behavior), allowing detailed viewing of errors and attributes (context information such as device type, browser version, geographic location, etc.), facilitating root cause identification and in-depth analysis.
+
+## Next Steps
+
+- [SDK Configuration](https://docs.flashcat.cloud/en/flashduty/rum/session-replay-config)
+- [View Session Replay](https://docs.flashcat.cloud/en/flashduty/rum/session-replay-explorer)
+- [Privacy Protection Settings](https://docs.flashcat.cloud/en/flashduty/rum/privacy-settings)
diff --git a/flashduty/en/2. RUM/5. Session Replay/2. SDK Configuration.md b/flashduty/en/2. RUM/5. Session Replay/2. SDK Configuration.md
new file mode 100644
index 00000000..644c9d3e
--- /dev/null
+++ b/flashduty/en/2. RUM/5. Session Replay/2. SDK Configuration.md
@@ -0,0 +1,92 @@
+---
+title: "RUM Session Replay SDK Configuration"
+description: "Master Flashduty RUM's session replay functionality to quickly identify issues and optimize user experience by reproducing user operation paths."
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/en/flashduty/rum/session-replay-config"
+---
+
+## Overview
+
+Flashduty RUM's session replay functionality is integrated into the RUM SDK. By simply configuring sampling rates and privacy rules, you can quickly enable replay functionality.
+
+## Enable Collection
+
+### Automatic Collection
+
+The replay SDK is already integrated into the RUM SDK. Configure the sampling rate to enable replay functionality.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // Default session replay sampling rate 10%
+ // ...
+});
+```
+
+::: tip
+Sampling Method: When the client SDK initializes a session, it generates a random number between 0-1 and compares it with `rate/100`. If it falls within the range, that session will be collected as a sample, and replay data will be collected and reported within the session cycle.
+
+Based on sampled session, the session will be
+Based on the session being sampled, the session replay sampling rate (`sessionReplaySampleRate`) will be applied for a second round of calculation and sampling.
+:::
+
+By default, after configuring the sampling rate, automatic collection will be enabled after `RUM.init()` is executed. If you want to manually control the collection timing (such as collecting data after user login), you can first enable the manual collection switch, then manually call the record method.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // 10% sampling rate
+ startSessionReplayRecordingManually: true, // Enable manual collection switch
+ // ...
+});
+
+if (userIsShouldRecord()) {
+ // If certain conditions are met, replay can be enabled
+ window.FC_RUM.startSessionReplayRecording(); // Enable data collection when called
+}
+```
+
+After enabling collection, you can stop collection using the `stopSessionReplayRecording()` method.
+
+### Force Enable
+
+In certain scenarios, even if the sampling rate is not hit, you may still want to collect data for that session (such as monitoring newly launched features, or capturing subsequent operations after an exception), you can force enable replay by calling the `startSessionReplayRecording({ force: true })` method.
+
+::: warning
+Note: Force enable will only take effect when the current session is sampled but sessionReplay is not sampled. If the session itself is not sampled, even forcing replay enable will be ineffective.
+:::
+
+## Disable Collection
+
+If you need to disable the collection functionality, adjust the corresponding replay sampling rate to 0 or simply remove the configuration item.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 0, // Disable replay functionality
+ // ...
+});
+```
+
+## How It Works
+
+The session replay SDK is implemented based on [rrweb](https://www.rrweb.io/).
+
+During the recording phase, the recording SDK takes snapshots of the current DOM and CSS styles, and collects corresponding events when user behaviors occur (DOM changes, mouse movements, clicks, form inputs, etc.). Data is reported after serialization, compression, and removal of sensitive information.
+
+During the replay phase, the playback SDK reconstructs the DOM based on snapshots and converts event behaviors to DOM changes for display at appropriate times.
+
+Before data reporting, the SDK performs data compression in advance and executes this CPU-intensive operation in a web worker, which does not affect main thread rendering.
+
+The SDK compatibility is consistent with the RUM SDK, supporting browsers above IE11.
+
+## Next Steps
+
+- [View Session Replays](https://docs.flashcat.cloud/zh/flashduty/rum/session-replay-explorer)
+- [Learn About Privacy Protection Settings](https://docs.flashcat.cloud/zh/flashduty/rum/privacy-settings)
diff --git a/flashduty/en/2. RUM/5. Session Replay/3. View Session Replay.md b/flashduty/en/2. RUM/5. Session Replay/3. View Session Replay.md
new file mode 100644
index 00000000..2143b06e
--- /dev/null
+++ b/flashduty/en/2. RUM/5. Session Replay/3. View Session Replay.md
@@ -0,0 +1,54 @@
+---
+title: "View RUM Session Replay Records"
+description: "Master Flashduty RUM's session replay functionality to quickly identify issues and optimize user experience by reproducing user operation paths."
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/en/flashduty/rum/session-replay-explorer"
+---
+
+## Overview
+
+Flashduty RUM's session replay functionality helps developers quickly identify problems, analyze user behavior, and optimize product experience by intuitively reproducing user operation paths. Integrated into the RUM SDK, it can be enabled with simple configuration and supports flexible sampling strategies and privacy rule settings. Session replay provides powerful player and Devtools functionality, including operation timelines, error analysis, and context information viewing, helping developers efficiently troubleshoot issues and gain deep insights into user interaction details.
+
+## Session List
+
+In the "Session Replay" menu, you can view recent session records, sorted by time in descending order by default. It supports sorting by fields such as session duration, view count, behavior count, error count, etc., and provides rich filtering conditions (such as time range, page, tags, etc.) for quickly locating target replay records.
+
+Click on any record item to open the player panel, divided into the following areas:
+
+- **Information Display Area**: Shows session context information such as access time, start and end pages, tags, etc.
+- **Playback Area**: Reproduces operation paths from the user's perspective, clearly displaying user interaction details.
+- **Playback Control Area**: Provides playback control functions for convenient operation.
+
+
+
+:::tip
+For quick browsing, only replays with a duration **greater than 3 seconds** are displayed in the list
+:::
+
+## Player
+
+The player supports functions such as play, pause, fast-forward, rewind, replay, speed control, fullscreen, and seek, and supports keyboard shortcuts to improve efficiency. During playback, the timeline will mark user behaviors (Action) and errors (Error) with different colored icons, making it easy to quickly overview key events in the session.
+
+
+By default, the player will automatically skip inactive segments to improve viewing efficiency. You can also disable this function through configuration to play completely according to the actual timeline.
+
+
+## Devtools
+
+Through the "View All Events and Errors" function, you can enter wide-screen mode to view the session's operation timeline and detailed analysis. Devtools includes the following functions:
+
+- **Events Tab**: Displays all user operations in the session, supporting the following functions:
+
+ - Switch between relative time and absolute time display.
+ - Filter by event type (such as clicks, page navigation, etc.).
+ - Click on specific events, and the player will automatically jump to the corresponding timestamp.
+
+
+
+- **Error Tab**: Lists all errors and issues in the session, supporting click-to-jump to detailed error information for quick identification and analysis.
+
+- **Attributes Tab**: Displays session context information (such as device, browser, geographic location, etc.), helping developers gain deep insights into problem background and perform precise identification.
+
+## Next Steps
+
+- [Learn About Privacy Protection Settings](https://docs.flashcat.cloud/zh/flashduty/rum/privacy-settings)
diff --git a/flashduty/en/2. RUM/5. Session Replay/4. Privacy Protection.md b/flashduty/en/2. RUM/5. Session Replay/4. Privacy Protection.md
new file mode 100644
index 00000000..a6e71557
--- /dev/null
+++ b/flashduty/en/2. RUM/5. Session Replay/4. Privacy Protection.md
@@ -0,0 +1,68 @@
+---
+title: "RUM Session Replay Privacy Protection"
+description: "Master Flashduty RUM's session replay functionality to quickly identify issues and optimize user experience by reproducing user operation paths."
+date: "2024-05-09T10:00:00+08:00"
+url: "https://docs.flashcat.cloud/en/flashduty/rum/session-replay-privacy"
+---
+
+## Overview
+
+To meet privacy requirements in different scenarios, the session replay functionality has built-in flexible privacy protection strategies. By configuring the `defaultPrivacyLevel` field, developers can control the sensitivity of data collection, supporting multiple modes from displaying all text (except passwords) to completely hiding page text, ensuring user data security and compliance.
+
+## Privacy Strategies
+
+The session replay functionality provides flexible privacy protection configuration through the `defaultPrivacyLevel` field, ensuring both functionality and data security when collecting user operation data. Below are three main privacy level configurations and their effects:
+:::tip
+Input fields with type "password" are sensitive information and will not be collected in any scenario.
+:::
+
+### Hide All Page Text
+
+Configure `defaultPrivacyLevel: "mask-all"` to completely hide all text content on the page, preserving only operation behaviors and page structure, suitable for scenarios with extremely high data privacy requirements.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // Default sampling rate 10%
+ defaultPrivacyLevel: "mask",
+ // ...
+});
+```
+
+
+
+### Hide Input Field Content
+
+Configure `defaultPrivacyLevel: "mask-user-input"` to hide content in user input fields (such as text inputs, select boxes, etc.) while preserving other page text, suitable for scenarios requiring protection of user input privacy.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // Default sampling rate 10%
+ defaultPrivacyLevel: "mask-user-input",
+ // ...
+});
+```
+
+
+
+### Display All Text (Except Passwords)
+
+Configure `defaultPrivacyLevel: "allow"` to allow collection of all text content on the page except password fields, suitable for scenarios requiring complete user interaction details.
+
+```js
+window.FC_RUM.init({
+ applicationId: "YOUR_APPLICATION_ID",
+ clientToken: "YOUR_CLIENT_TOKEN",
+ // ...
+ sessionReplaySampleRate: 10, // Default sampling rate 10%
+ defaultPrivacyLevel: "allow",
+ // ...
+});
+```
+
+
diff --git a/flashduty/en/2. RUM/5. Others/1. Terminology.md b/flashduty/en/2. RUM/6. Others/1. Terminology.md
similarity index 100%
rename from flashduty/en/2. RUM/5. Others/1. Terminology.md
rename to flashduty/en/2. RUM/6. Others/1. Terminology.md
diff --git a/flashduty/en/2. RUM/5. Others/2. Data Collection.md b/flashduty/en/2. RUM/6. Others/2. Data Collection.md
similarity index 100%
rename from flashduty/en/2. RUM/5. Others/2. Data Collection.md
rename to flashduty/en/2. RUM/6. Others/2. Data Collection.md
diff --git a/flashduty/en/2. RUM/5. Others/4. Data Security.md b/flashduty/en/2. RUM/6. Others/4. Data Security.md
similarity index 100%
rename from flashduty/en/2. RUM/5. Others/4. Data Security.md
rename to flashduty/en/2. RUM/6. Others/4. Data Security.md
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.0 \346\240\207\345\207\206\345\221\212\350\255\246\344\272\213\344\273\266\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.0 \346\240\207\345\207\206\345\221\212\350\255\246\344\272\213\344\273\266\351\233\206\346\210\220\346\214\207\345\274\225.md"
index f5b19296..6b91777b 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.0 \346\240\207\345\207\206\345\221\212\350\255\246\344\272\213\344\273\266\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.0 \346\240\207\345\207\206\345\221\212\350\255\246\344\272\213\344\273\266\351\233\206\346\210\220\346\214\207\345\274\225.md"
@@ -8,7 +8,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/custom-alert-integration-guide"
通过标准协议推送自有系统告警事件到 Flashduty,实现告警事件自动化降噪处理。
:::tips
-Flashduty 已经适配了大部分常用告警系统的 webhook 协议,对于这些系统您应该首先使用对应的集成,更加简单方便。本集成提供了一个标准的 HTTP 接口,需要允许您开发适配。好处是您可以推送任何你想进行oncall的告警事件。
+Flashduty 已经适配了大部分常用告警系统的 webhook 协议,对于这些系统您应该首先使用对应的集成,更加简单方便。本集成提供了一个标准的 HTTP 接口,需要您开发适配。好处是您可以推送任何你想进行oncall的告警事件。
:::
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: "