前端日志收集(monitor-report v1)

ops/2024/10/18 12:29:59/

为什么

为什么自己封装而不是使用三方  类似 Sentry 这种比较全面的

因为  Sentry 很大我没安装成功,所有才自己去封装的

为什么使用 可以帮助你简单解决前端收集错误日志、收集当前页面访问量,网站日活跃,页面访问次数,用户行为分析等

介绍

自己开发的一个插件,并且用持续性维护下去(目前支持原生html, 以及react, vue 等前端框架)

主要解决前端生产痛点的

痛点1: 前端报错后,开发人员无法收集到错误

痛点2:前端收集当前页面访问量,网站日活跃,页面访问次数,用户行为分析等

注 : 我很贴心提供一套完整的体系, 插件+后端(nodejs) github 地址,麻烦大家点点小星星

源码地址 v1.0.1 初始化版本

后端源码地址-使用nodejs 编写。默认mysql

使用

安装

npm i monitor-report  /  yarn add monitor-report

原生html(目前没有csdn)

<script src="../../dist/monitor.report.iife.min.js"></script>
<script>monitorReport({errorOptions: {url: "http://127.0.0.1:8888/monitor/error/report"},mode: "History",log: true,//isReport: true})
</script>

框架中使用

例如vue3( react 也是在跟目录引入即可)

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'
import monitorReport from 'monitor-report'monitorReport({errorOptions: {url: "http://127.0.0.1:8888/monitor/error/report"},mode: "History",log: true,//isReport: true
})
const app = createApp(App)app.use(router)
app.mount('#app')

成功标识

 失败

基础使用

基本配置

import monitorReport from 'monitor-report'
monitorReport({mode: "History",log: true 
})
字段默认值类型可选值作用

mode

Historystring        'Hash' | 'History'路由模式
logtrueboolean是否打印日志

isReport

falseboolean是否上报数据

errorOptions

{}

ErrorOptions | false

错误配置

behaviorOptions

{}       BehaviorOptions | false操作配置

pvUvOptions

{}

PvUvOptions | false

PV UV 配置 

customFields{}object自定义配置,可以加参数上传给后端

errorOptions  (错误上报)

import monitorReport from 'monitor-report'
monitorReport({errorOptions: {url: "http://127.0.0.1:8888/monitor/error/report",},mode: "History",log: true 
})
字段默认值类型可选值作用
urlsrring错误上报后端地址

behaviorOptions  (行为上报)

import monitorReport from 'monitor-report'
monitorReport({behaviorOptions: {url: "http://127.0.0.1:8888/monitor/behavior/report",},mode: "History",log: true 
})
字段默认值类型可选值作用
urlsrring操作上报后端地址

PvUvOption(pvuv 上报)

import monitorReport from 'monitor-report'
monitorReport({PvUvOptions: {url: "http://127.0.0.1:8888/monitor/puvu/report",},mode: "History",log: true 
})
字段默认值类型可选值作用
urlsrringpu,vu上报后端地址

上报内容

公共数据

属性说明默认值备注
host上报设备 主机
hostname上报设备 主机名
port上报设备 端口
protocol上报设备协议
requestURL上报设备请求地址

错误上报

属性说明默认值备注
message错误信息
name错误名称
rank错误分类"001" ( 普通)|"002" (一般) |"003" (严重 )|"101" 内部错误 101:internalError 001: resourcError, asyncError 002: promisError 003: requestError
type错误类型internalError(内部异常)| resourcError(资源错误) | promisError(promise 的错误) | requestError (请求错误) | asyncError(普通错误)
url错误地址错误地址根据类型来看, 如果是 async, promise 错误 就是当前页面地址, 若 resourcError 和 requestError 则是错误地址

实例

import monitorReport from 'monitor-report'
monitorReport({errorOptions: {url: "http://127.0.0.1:8888/monitor/error/report",},mode: "History",log: true 
})

操作上报

属性说明默认值备注
tag操作标签地址
name名字
type类型onclick
text操作按钮名称这个有时候获取不到, 因为我这边只去了button的操作名称,当然你也可以给标签加个自定义属性 data-info 最后这个值最后就给text

注:

提供了两个自定义标签属性 no-use(不触发上报) 、data-info(上报的数据)

实例

import monitorReport from 'monitor-report'
monitorReport({behaviorOptions: {url: "http://127.0.0.1:8888/monitor/error/report",},mode: "History",log: true 
})

pv uv 上报

属性说明默认值备注
stayTime停留时长
currentPath当前页面
prePath从哪来
type跳转类型'pushState' | 'replaceState' | 'load' | 'unload' | 'popstate'

实例

import monitorReport from 'monitor-report'
monitorReport({pvUvOptions: {url: "http://127.0.0.1:8888/monitor/error/report",},mode: "History",log: true 
})

自定义上报

实例

import monitorReport from 'monitor-report'
const {errorReporting, behaviorReporting,pvUvReporting }=  monitorReport({pvUvOptions: {url: "http://127.0.0.1:8888/monitor/error/report",},mode: "History",log: true 
})

errorReporting: 错误上报, 参数同上

behaviorReporting: 操作上报 参数同上

pvUvReporting: pvuv上报 参数同上

如有问题欢迎大家指出来。谢谢

好了,大概就这样有新的动心我再补充


http://www.ppmy.cn/ops/45176.html

相关文章

基于51单片机的酒精浓度检测仪的设计

一.硬件方案 硬件部分为利用MQ3气敏传感器测量空气中酒精浓度&#xff0c;并转换为电压信号&#xff0c;经A/D转换器转换成数字信号后传给单片机系统&#xff0c;由单片机及其相应外围电路进行信号的处理&#xff0c;显示酒精浓度值以及超阈值声光报警。电路主要由51单片机最小…

AIOps在线评测基准首阶段建设完成,面向社区发布真实运维数据!

本文根据必示科技算法研究员、产品总监聂晓辉博士在2024 CCF国际AIOps挑战赛线下宣讲会上的演讲整理成文。 2024年1月份OpenAIOps社区成立&#xff0c;随着越来越多的社区成员加入&#xff0c;各项工作在有条不紊的推进中。在线评测基准系统&#xff08;AIOps Live Benchmark&a…

大模型部署推理应用技术浅析

大模型完成预训练后不是就万事大吉了&#xff0c;离推理应用还有很大距离&#xff0c;需要经过微调、部署等一系列工程化工作。尤其是在2B的行业大模型应用中&#xff0c;为解决大模型的幻觉、时效性和推理成本问题&#xff0c;需要建立单一模型之上的体系。模型部署中的技术大…

猫狗分类识别模型建立②模型建立

一、导入依赖库 pip install opencv-python pip install numpy pip install tensorflow pip install keras 二、模型建立 pip install opencv-python pip install numpy pip install tensorflow pip install kerasimport os import xml.etree.ElementTree as ETimpor…

6.S081的Lab学习——Lab5: xv6 lazy page allocation

文章目录 前言一、Eliminate allocation from sbrk() (easy)解析&#xff1a; 二、Lazy allocation (moderate)解析&#xff1a; 三、Lazytests and Usertests (moderate)解析&#xff1a; 总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招。打算尝试6.S081&#xff0…

自然语言处理(NLP)中的迁移学习

Transfer Learning in NLP 迁移学习&#xff08;Transfer Learning&#xff09;无疑是目前深度学习中的新热点&#xff08;相对而言&#xff09;。在计算机视觉领域&#xff0c;它已经应用了一段时间&#xff0c;人们使用经过训练的模型从庞大的ImageNet数据集中学习特征&…

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 近年来&#xff0c;随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种严重的网络威胁&#xff0c;对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略&#xff0c;旨…

前端加密的方式汇总

目录 一、Base64编码 二、哈希算法 三、对称加密(AES/DES) 四、非对称加密(RSA) 五、加盐 六、Web Cryptography API 七、总结 随着信息和数据安全重要性的日益凸显&#xff0c;如何保证信息数据在传输的过程中的安全成为开发者重点关注的内容。前端加密通常是指在浏览…