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

# RUM 数据收集机制

> 本文档详细介绍 Flashduty RUM 的数据收集机制，包括事件类型、属性、指标以及数据保留期等信息。

RUM Browser SDK 生成具有相关指标和属性的事件。每个 RUM 事件都具有所有默认属性，例如页面的 URL（`view_url`）和用户信息，如设备类型（`device_type`）和国家（`geo_country`）。

还有特定于给定事件类型的附加指标和属性。例如，`view_loading_time` 指标与视图事件相关联，而 `resource_method` 属性与资源事件相关联。

## 事件类型

| 事件类型 | 保留期 | 描述 |
| - | - | - |
| **Session** | 30 天 | 用户会话在用户开始浏览网络应用程序时开始。它包含关于用户的高级信息（浏览器、设备、地理位置）。它聚合了用户旅程中收集的所有 RUM 事件，使用唯一的 `session_id` 属性 |
| **View** | 30 天 | 每次用户访问网络应用程序的页面时都会生成视图事件。当用户留在同一页面上时，资源、长任务、错误和操作事件都链接到相关的 RUM 视图，使用 `view_id` 属性 |
| **Resource** | 15 天 | 为网页上加载的图像、XHR、Fetch、CSS 或 JS 库生成资源事件。它包括详细的加载时间信息 |
| **Long Task** | 15 天 | 对于在浏览器中阻塞主线程超过 50 毫秒的任何任务，都会生成长任务事件 |
| **Error** | 30 天 | RUM 收集浏览器发出的每个前端错误 |
| **Action** | 30 天 | RUM 操作事件跟踪用户旅程中的用户交互，也可以手动发送以监控自定义用户操作 |

<Note>
  会话在 15 分钟不活动后重置。
</Note>

### 事件层次关系

<Frame caption="事件类型之间的层次关系">
  <img src="https://docs-cdn.flashcat.cloud/images/png/eaaeda6894101f897c281961f824907a.png" alt="事件层次关系" style={{maxWidth: "300px", margin: "0 auto", display: "block"}} />
</Frame>

## 默认属性

所有 RUM 事件都包含以下默认属性：

| 属性 | 类型 | 描述 |
| - | - | - |
| `date` | 整数 | 事件的时间戳（以毫秒为单位） |
| `type` | 字符串 | 事件的类型（例如，`session`、`view`、`resource`、`error`、`action`） |
| `service` | 字符串 | 生成此事件的服务名称 |
| `application_id` | 字符串 | 生成此事件的应用程序 ID |
| `session_id` | 字符串 | 会话 ID |
| `view_id` | 字符串 | 视图 ID |
| `action_id` | 字符串 | 用户操作 ID |
| `context` | 对象 | 用户定义的上下文 |

## 事件特定指标和属性

<Tabs>
  <Tab title="Session">
    ### 会话指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `session_duration` | 数字 | 会话持续时间（以毫秒为单位），从会话中最早的视图起算，等于 `client_end_time` - `client_time`；上报时间早于其他视图、但处理更晚的视图（如移动端的启动视图）同样计入 |
    | `session_view_count` | 数字 | 会话中的视图数 |
    | `session_action_count` | 数字 | 会话中的用户操作数 |
    | `session_error_count` | 数字 | 会话中的错误数 |
    | `session_resource_count` | 数字 | 会话中的资源数 |
    | `session_long_task_count` | 数字 | 会话中的长任务数 |

    ### 会话属性

    | 属性 | 类型 | 描述 |
    | - | - | - |
    | `session_type` | 字符串 | 会话类型（例如，`user`、`synthetic`） |
    | `session_has_replay` | 布尔值 | 是否启用了会话重放 |
    | `session_is_active` | 布尔值 | 会话是否处于活动状态 |
    | `session_initial_view_id` | 字符串 | 初始视图 ID |
    | `session_initial_view_url` | 字符串 | 初始视图 URL |
    | `session_initial_view_referrer` | 字符串 | 初始视图的引用 URL |
  </Tab>

  <Tab title="View">
    ### 视图指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `view_loading_time` | 数字 | 视图加载时间（以毫秒为单位） |
    | `view_first_contentful_paint` | 数字 | 首次内容绘制时间（以毫秒为单位） |
    | `view_dom_interactive` | 数字 | DOM 交互时间（以毫秒为单位） |
    | `view_dom_complete` | 数字 | DOM 完成时间（以毫秒为单位） |
    | `view_load_event_end` | 数字 | 加载事件结束时间（以毫秒为单位） |
    | `view_error_count` | 数字 | 视图中的错误数 |
    | `view_resource_count` | 数字 | 视图中的资源数 |
    | `view_long_task_count` | 数字 | 视图中的长任务数 |
    | `view_action_count` | 数字 | 视图中的用户操作数 |

    ### 视图属性

    | 属性 | 类型 | 描述 |
    | - | - | - |
    | `view_url` | 字符串 | 视图 URL |
    | `view_referrer` | 字符串 | 视图的引用 URL |
    | `view_name` | 字符串 | 视图名称 |
  </Tab>

  <Tab title="Resource">
    ### 资源指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `resource_duration` | 数字 | 资源加载时间（以毫秒为单位） |
    | `resource_size` | 数字 | 资源大小（以字节为单位） |
    | `resource_connect_duration` | 数字 | 连接时间（以毫秒为单位） |
    | `resource_ssl_duration` | 数字 | SSL 握手时间（以毫秒为单位） |
    | `resource_dns_duration` | 数字 | DNS 查找时间（以毫秒为单位） |
    | `resource_first_byte_duration` | 数字 | 首字节时间（以毫秒为单位） |
    | `resource_download_duration` | 数字 | 下载时间（以毫秒为单位） |

    ### 资源属性

    | 属性 | 类型 | 描述 |
    | - | - | - |
    | `resource_type` | 字符串 | 资源类型（`xhr`、`fetch`、`document`、`script`、`css`、`image`、`font`、`media`、`other`） |
    | `resource_method` | 字符串 | HTTP 方法（例如，`GET`、`POST`） |
    | `resource_status_code` | 数字 | HTTP 状态码 |
    | `resource_url` | 字符串 | 资源 URL |
    | `resource_provider_name` | 字符串 | 资源提供者名称 |
    | `resource_provider_domain` | 字符串 | 资源提供者域名 |
    | `resource_provider_type` | 字符串 | 资源提供者类型（`first-party`、`third-party`） |
    | `resource_protocol` | 字符串 | 资源获取使用的网络协议（如 `h2`、`h3`、`http/1.1`） |
    | `resource_delivery_type` | 字符串 | 资源投递方式（`cache`、`navigational-prefetch`、`other`） |
    | `resource_render_blocking_status` | 字符串 | 资源是否阻塞渲染（`blocking`、`non-blocking`） |
    | `resource_transfer_size` | 数字 | 实际传输大小（字节），可能小于完整资源大小（如命中缓存或经过压缩） |
  </Tab>

  <Tab title="Long Task">
    ### 长任务指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `long_task_duration` | 数字 | 长任务持续时间（以毫秒为单位） |
  </Tab>

  <Tab title="Error">
    ### 错误指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `error_count` | 数字 | 错误数 |

    ### 错误属性

    | 属性 | 类型 | 描述 |
    | - | - | - |
    | `error_source` | 字符串 | 错误来源（`console`、`network`、`source`、`logger`、`agent`、`custom`） |
    | `error_type` | 字符串 | 错误类型 |
    | `error_message` | 字符串 | 错误消息 |
    | `error_stack` | 字符串 | 错误堆栈跟踪 |
  </Tab>

  <Tab title="Action">
    ### 用户操作指标

    | 指标 | 类型 | 描述 |
    | - | - | - |
    | `action_loading_time` | 数字 | 用户操作加载时间（以毫秒为单位） |
    | `action_long_task_count` | 数字 | 用户操作中的长任务数 |
    | `action_resource_count` | 数字 | 用户操作中的资源数 |
    | `action_error_count` | 数字 | 用户操作中的错误数 |

    ### 用户操作属性

    | 属性 | 类型 | 描述 |
    | - | - | - |
    | `action_id` | 字符串 | 用户操作 ID |
    | `action_type` | 字符串 | 用户操作类型（例如，`click`、`custom`） |
    | `action_target_name` | 字符串 | 用户操作目标名称 |
    | `action_name` | 字符串 | 用户操作名称 |
  </Tab>
</Tabs>


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