UNPKG

my-performance-sdk

Version:

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

96 lines (95 loc) 2.46 kB
/** * 性能指标接口定义 */ export interface PerformanceMetrics { /** First Contentful Paint - 首次内容绘制 */ fcp?: number; /** Largest Contentful Paint - 最大内容绘制 */ lcp?: number; /** Total Blocking Time - 总阻塞时间 */ tbt?: number; /** Time to Interactive - 可交互时间 */ tti?: number; /** 内存使用情况 */ memory?: MemoryInfo; /** 页面加载时间 */ loadTime?: number; /** DOM内容加载时间 */ domContentLoaded?: number; /** 时间戳 */ timestamp?: number; /** 页面URL */ url?: string; /** 用户代理 */ userAgent?: string; /** 能耗监控数据 */ powerConsumption?: PowerConsumptionInfo; } /** * 内存信息接口 */ export interface MemoryInfo { /** 已使用的JS堆大小 */ usedJSHeapSize: number; /** JS堆大小限制 */ jsHeapSizeLimit: number; /** 总JS堆大小 */ totalJSHeapSize: number; } /** * 能耗信息接口 */ export interface PowerConsumptionInfo { /** 电池电量百分比 */ batteryLevel?: number; /** 是否正在充电 */ charging?: boolean; /** 电池剩余时间(分钟) */ timeToEmpty?: number; /** 电池充满时间(分钟) */ timeToFull?: number; /** CPU使用率估算 */ cpuUsage?: number; /** 设备温度(如果可用) */ temperature?: number; /** 能耗等级(低/中/高) */ powerLevel: 'low' | 'medium' | 'high'; /** 能耗评分(0-100) */ powerScore: number; } /** * SDK配置选项 */ export interface PerformanceSDKOptions { /** 是否自动开始监控 */ autoStart?: boolean; /** 数据上报URL */ reportUrl?: string; /** 上报间隔时间(ms) */ reportInterval?: number; /** 是否启用内存监控 */ enableMemoryMonitoring?: boolean; /** 是否启用Web Vitals监控 */ enableWebVitals?: boolean; /** 是否启用能耗监控 */ enablePowerMonitoring?: boolean; /** 自定义数据处理器 */ onData?: (data: PerformanceMetrics) => void; } /** * Web Vitals指标 */ export interface WebVitals { /** First Contentful Paint */ fcp: number; /** Largest Contentful Paint */ lcp: number; /** First Input Delay */ fid: number; /** Cumulative Layout Shift */ cls: number; /** Total Blocking Time */ tbt: number; /** Time to Interactive */ tti: number; }