UNPKG

whitch-frontend-monitor

Version:

前端监控系统 - 一个轻量级的前端监控SDK

138 lines 4.18 kB
"use strict"; /** * Trae - 前端监控系统SDK */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TraeMonitor = void 0; var error_1 = require("./monitors/error"); var performance_1 = require("./monitors/performance"); var behavior_1 = require("./monitors/behavior"); var network_1 = require("./monitors/network"); var reporter_1 = require("./reporter"); var TraeMonitor = /** @class */ (function () { function TraeMonitor(config) { this.config = config; // 使用单例模式管理配置,确保所有模块访问的是同一份配置 if (!window.TraeMonitor) { window.TraeMonitor = { config: Object.freeze(__assign({}, config)) }; } this.init(); } /** * 获取单例实例 */ TraeMonitor.getInstance = function (config) { if (!TraeMonitor.instance) { TraeMonitor.instance = new TraeMonitor(config); } return TraeMonitor.instance; }; /** * 初始化监控系统 */ TraeMonitor.prototype.init = function () { // 确保在初始化各个监控模块之前已经创建了Reporter实例 var reportConfig = { reportUrl: this.config.reportUrl, delay: this.config.delay || 1000, maxRetry: this.config.maxRetry || 3, sampleRate: this.config.sampleRate || 1, ignoreUrls: this.config.ignoreUrls || [], compression: this.config.compression || false }; this.reporter = reporter_1.Reporter.getInstance(reportConfig); this.initErrorMonitor(); this.initPerformanceMonitor(); this.initBehaviorMonitor(); this.initNetworkMonitor(); }; /** * 初始化错误监控 */ TraeMonitor.prototype.initErrorMonitor = function () { error_1.ErrorMonitor.init(); }; /** * 初始化性能监控 */ TraeMonitor.prototype.initPerformanceMonitor = function () { performance_1.PerformanceMonitor.init(); }; /** * 初始化用户行为监控 */ TraeMonitor.prototype.initBehaviorMonitor = function () { behavior_1.BehaviorMonitor.init(); }; /** * 初始化网络请求监控 */ TraeMonitor.prototype.initNetworkMonitor = function () { network_1.NetworkMonitor.init(); }; /** * 获取错误监控数据 */ TraeMonitor.prototype.getErrors = function () { return error_1.ErrorMonitor.getErrors(); }; /** * 获取性能监控数据 */ TraeMonitor.prototype.getPerformanceData = function () { return performance_1.PerformanceMonitor.getPerformanceData(); }; /** * 获取用户行为数据 */ TraeMonitor.prototype.getBehaviors = function () { return behavior_1.BehaviorMonitor.getBehaviors(); }; /** * 获取网络请求监控数据 */ TraeMonitor.prototype.getNetworkData = function () { return network_1.NetworkMonitor.getNetworkData(); }; /** * 上报数据 */ TraeMonitor.prototype.report = function (type, data) { var reportData = { type: type, data: data, timestamp: Date.now() }; this.reporter.addToQueue(reportData); }; /** * 手动上报自定义数据 * @param type 数据类型 * @param data 上报的数据 */ TraeMonitor.prototype.reportCustomData = function (type, data) { this.report(type, data); }; /** * 销毁监控实例 */ TraeMonitor.prototype.destroy = function () { this.reporter.destroy(); }; return TraeMonitor; }()); exports.TraeMonitor = TraeMonitor; //# sourceMappingURL=index.js.map