UNPKG

my-performance-sdk

Version:

前端性能监控SDK,支持FCP、LCP、TBT、TTI和内存泄漏监控

131 lines (100 loc) 3.56 kB
# my-performance-sdk > 前端性能监控SDK,支持FCP、LCP、TBT、TTI、内存泄漏和能耗监控 ## 功能特性 - 自动采集核心Web Vitals(FCP、LCP、TBT、TTI等) - 内存泄漏趋势检测 - 设备能耗监控(电池状态、CPU使用率等) - 支持自定义数据上报/处理 - 支持npm集成,开箱即用 - 支持自定义上报接口和上报频率 ## 安装 ```bash npm install my-performance-sdk ``````bash yarn add my-performance-sdk ``` ## 快速开始 ### 1. 在项目入口文件中引入并初始化 ```js import { initPerformanceSDK } from 'my-performance-sdk'; const sdk = initPerformanceSDK({ reportUrl: 'https://your-server.com/perf-report', // 可选,数据上报接口 reportInterval: 30000, // 可选,上报间隔,单位ms enableMemoryMonitoring: true, // 可选,是否启用内存监控 enableWebVitals: true, // 可选,是否启用Web Vitals监控 enablePowerMonitoring: true, // 可选,是否启用能耗监控 onData: (data) => { // 可选,收到每次采集的数据时的回调 console.log('性能数据:', data); } }); ``` ### 2. 手动获取或上报性能数据 ```js import { getPerformanceMetrics, collectAndReport } from 'my-performance-sdk'; const metrics = getPerformanceMetrics(); console.log(metrics); // 手动采集并上报一次 collectAndReport(); ``` ### 3. 停止/销毁SDK ```js import { destroyPerformanceSDK } from 'my-performance-sdk'; destroyPerformanceSDK(); ``` ## API 说明 ### 初始化 ```ts initPerformanceSDK(options?: PerformanceSDKOptions): PerformanceSDK ``` - `options` 配置项: - `autoStart` 是否自动开始监控,默认true - `reportUrl` 数据上报接口 - `reportInterval` 上报间隔(ms),默认30000 - `enableMemoryMonitoring` 是否启用内存监控,默认true - `enableWebVitals` 是否启用Web Vitals监控,默认true - `enablePowerMonitoring` 是否启用能耗监控,默认true - `onData` 每次采集到数据时的回调 ### 获取SDK实例 ```ts getPerformanceSDK(): PerformanceSDK | null ``` ### 获取当前性能指标 ```ts getPerformanceMetrics(): PerformanceMetrics ``` ### 手动采集并上报 ```ts collectAndReport(): void ``` ### 销毁SDK ```ts destroyPerformanceSDK(): void ``` ## 性能指标说明 - **FCP** (First Contentful Paint):首次内容绘制时间 - **LCP** (Largest Contentful Paint):最大内容绘制时间 - **TBT** (Total Blocking Time):总阻塞时间 - **TTI** (Time to Interactive):可交互时间 - **memory**:内存使用情况(仅支持部分浏览器) - **loadTime**:页面加载总耗时 - **domContentLoaded**:DOM内容加载耗时 - **powerConsumption**:能耗监控数据 - `batteryLevel`:电池电量百分比 - `charging`:是否正在充电 - `cpuUsage`:CPU使用率估算 - `powerLevel`:能耗等级(low/medium/high) - `powerScore`:能耗评分(0-100) ## 常见问题 ### 1. 内存监控为什么在部分浏览器无效? - 目前只有 Chrome 支持 `performance.memory`,其他浏览器会自动忽略。 ### 2. 如何自定义数据上报? - 通过 `onData` 回调或配置 `reportUrl`,SDK会自动POST数据到你的接口。 ### 3. 如何判断内存泄漏? - SDK会自动检测内存持续增长趋势,若检测到疑似泄漏会在控制台警告并上报。 ### 4. 能耗监控支持哪些设备? - 支持所有支持Battery API的设备(主要是移动设备),桌面设备会基于内存使用率估算CPU使用率。 ## 许可证 MIT