12.4 概念模块功能完善
This commit is contained in:
74
src/utils/posthog/performance-tracker.js
Normal file
74
src/utils/posthog/performance-tracker.js
Normal file
@@ -0,0 +1,74 @@
|
||||
import analytics from './index'
|
||||
import { PERFORMANCE_EVENTS } from '../../constants/events'
|
||||
|
||||
/**
|
||||
* 性能追踪器
|
||||
*/
|
||||
class PerformanceTracker {
|
||||
constructor() {
|
||||
// 页面加载开始时间
|
||||
this.pageLoadStartTimes = new Map()
|
||||
}
|
||||
|
||||
/**
|
||||
* 页面开始加载
|
||||
* @param {string} pagePath - 页面路径
|
||||
*/
|
||||
startPageLoad(pagePath) {
|
||||
this.pageLoadStartTimes.set(pagePath, Date.now())
|
||||
}
|
||||
|
||||
/**
|
||||
* 页面加载完成
|
||||
* @param {string} pagePath - 页面路径
|
||||
*/
|
||||
endPageLoad(pagePath) {
|
||||
const startTime = this.pageLoadStartTimes.get(pagePath)
|
||||
if (!startTime) return
|
||||
|
||||
const loadTime = Date.now() - startTime
|
||||
this.pageLoadStartTimes.delete(pagePath)
|
||||
|
||||
analytics.track(PERFORMANCE_EVENTS.PAGE_LOAD_PERFORMANCE, {
|
||||
page_path: pagePath,
|
||||
load_time: loadTime,
|
||||
load_time_range: this._getLoadTimeRange(loadTime),
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 追踪API响应时间
|
||||
* @param {object} params - 参数
|
||||
*/
|
||||
trackApiPerformance(params) {
|
||||
const {
|
||||
path,
|
||||
method,
|
||||
duration,
|
||||
success,
|
||||
} = params
|
||||
|
||||
analytics.track(PERFORMANCE_EVENTS.API_PERFORMANCE, {
|
||||
api_path: path,
|
||||
api_method: method,
|
||||
response_time: duration,
|
||||
response_time_range: this._getLoadTimeRange(duration),
|
||||
is_success: success,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取加载时间范围
|
||||
*/
|
||||
_getLoadTimeRange(ms) {
|
||||
if (ms < 500) return '0-500ms'
|
||||
if (ms < 1000) return '500ms-1s'
|
||||
if (ms < 2000) return '1-2s'
|
||||
if (ms < 3000) return '2-3s'
|
||||
if (ms < 5000) return '3-5s'
|
||||
return '5s+'
|
||||
}
|
||||
}
|
||||
|
||||
// 导出单例
|
||||
export default new PerformanceTracker()
|
||||
Reference in New Issue
Block a user