# SDK **Repository Path**: joeyliao/sdk ## Basic Information - **Project Name**: SDK - **Description**: 前端性能监控SDK - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-17 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## SDK 监控系统 这是一个用于前端监控的 SDK 系统,支持性能监控、错误捕获、自定义上报等功能。 ### 核心功能 #### 1. 事件管理 (eventEmitter.ts) - 实现了基于发布-订阅模式的事件管理系统 - 支持事件的注册、触发、移除和一次性监听 - 用于系统内部各模块间的通信 #### 2. 数据存储 (storage.ts) - 提供数据缓冲区功能 - 支持任务的存储和管理 - 实现了缓冲区容量控制 - 支持按优先级处理数据 #### 3. 调度系统 (scheduler.ts) - 负责数据上报的调度管理 - 支持高优先级任务立即上报 - 实现了定时上报和超容上报策略 - 自动管理上报任务队列 #### 4. 上报客户端 (reporter.ts) - SDK 的核心类,提供数据采集和上报功能 - 支持性能数据采集(Navigation Timing、FCP、LCP 等) - 实现了错误监控和请求监控 - 提供自定义上报接口 ### 目录结构 ``` core/ ├── constant.ts # 常量定义 ├── eventEmitter.ts # 事件管理 ├── reporter.ts # 上报客户端 ├── scheduler.ts # 调度系统 ├── storage.ts # 数据存储 └── type.d.ts # 类型定义 ``` ### 使用方法 1. 安装依赖 ```bash pnpm i ``` 2. 构建 ```bash pnpm build ``` 3. 初始化 SDK ```typescript import Reporter from './core/reporter'; const reporter = new Reporter({ appId: 'your-app-id', env: 'production', dsn: 'your-report-endpoint', userId: 'user-id', maxTasks: 20, // 可选,默认20 }); reporter.init(); ``` ### 配置说明 | 参数 | 说明 | 类型 | 必填 | | -------- | ---------------- | ------ | ---- | | appId | 应用 ID | string | 是 | | env | 环境标识 | string | 是 | | dsn | 上报地址 | string | 是 | | userId | 用户 ID | string | 否 | | maxTasks | 缓冲区最大任务数 | number | 否 |