前端监控那些事

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
应用实时监控服务-应用监控,每月50GB免费额度
简介: 监控这个词对于前端,个人觉得有三个定义,分别是“性能监控”、“异常监控”、“数据监控”
  • 性能监控则是针对web应用的性能,涉及包括用户体验、用户交互时间等
  • 异常监控则是指Web应用得不到预期效果结果的情况监控
  • 数据监控则是获取用户使用过程的行为数据反馈


微信截图_20220511104005.png

1.性能监控


性能监控可以让我们更好的监控当前应用的性能情况,然后对性能情况反馈去做优化,性能会影响到用户体验,而常见的性能指标我们能通过浏览器Performance里面看到


1.1 Performace


允许访问当前页面性能相关的信息,performance对象中常见的属性


  • timing :对象中提供了各种与浏览器处理相关的时间数据
  • navigation:在指定时间段里发生的操作信息,包括页面是加载还是刷新、发生了多少次重定向
  • memory: 获取到基本内存使用情况的对象
  • timeOrigin:  性能测量开始时的时间的时间戳


通过 window.performance 查看👇


微信截图_20220511104014.png


详情Performance Api文档链接 点我🚀


通过Performance的timing属性计算一些常见的指标


const timing = performance.timing;
const time = {};
//http请求响应时间
time.httpComplete = timing.responseEnd - timing.requestStart;
//白屏时间,head内资源加载完成
time.ttfb = timing.responseStart - timing.navigationStart
//页面渲染时间
time.loadComplte = timing.domLoading - timing.domInteractive;
//页面加载完成的时间
time.loadPage = timing.loadEventEnd - timing.navigationStart;


1.2 Timing.js


如果觉得自己写麻烦,可以参考github上的开源的工具 timing.js 点我🚀


  • 使用及安装


npm install timing.js //安装
timing.getTimes(); //控制台模式
timing.printSimpleTable(); //控制台表格模式


2.异常监控


异常监控旨在我们快速的定位开发的应用上所出现的bug等,当线上用户反馈应用出现异常时,你可以通过监控的方式来第一时间分析,在开发过程中,能及时上报异常情况,可以预防线上故障的发生。


2.1 Sentry


Sentry是开源的前端异常监控上报工具,通过集成到项目中,你可以在不同环境(测试,生产等)中,帮你收集记录问题,并定位到问题所在代码


Sentry官方服务需要付费,建议自行搭建,可以通过docker去部署搭建,不作详细说明介绍,官方链接 点我🚀


  • 如何使用


需要在sentry创建项目,并与你项目绑定关联(获取dsn)


微信截图_20220511104028.png


sentry与vue项目结合中,需要用到raven(sentry官方针对vue推荐的插件) 可以使用封装好的sentry工具来集成,树酱封装了sentry-report点我🚀,集成了raven,可以直接使用npm安装,免去自行配置


  • 安装


npm install sentry-report


  • vue项目中使用导入


import Report from 'sentry-report'; 
// 配置dsn
const option = {dsn:http://753ce3bf82e94ab0aa7b5e62fae16d3c@sentry.***.com/2}
// 初始化
const sentry = Report.getInstance(Vue, option);


  • 怎么查看异常


在sentry操作面板上可以看到具体的异常报错及对应的代码行,快速定位问题


微信截图_20220511104051.png


2.2 JS异常监控代码(code)


前端项目中,异常监控分为异常捕获和异常上报


  • window.onerror(JS异常)


我们使用 window.onerror 捕获一般情况下 JS 错误的异常信息。


window.onerror = function (message, source, lineno, colno, error) {
    console.log('errror')
  // todo
}


  • unhandledrejection(未捕获的promise异常)


onerror无法监控网络请求的异常包括图片请求失败、资源加载失败等等及promise异常,这个时候需要监听 unhandledrejection,用来全局监听 Uncaught Promise Error


window.addEventListener('unhandledrejection', event => {
    console.log('error'); 
});
function reject() {
    Promise.reject('Hello, Fundebug!');
}
reject();


  • try...catch..


主要用于捕获偶现的难以捕获的异常情况,最适合处理那些我们无法控制的错误,不过大部门前端代码少依赖环境,比较少用到,用node开发后端的同学,经常会有非常多的异步调用,需要对异常作捕获处理


try {
    //可能会导致错误的代码
} catch (error) {
    //错误时的处理方式
}


3.数据监控


数据监控一般是监控用户的行为,一般监控的指标主要包括:


  • PV/UV : 页面的浏览访问量和点击量
  • 用户进行某项操作行为(埋点)
  • 访客来源,用户从哪里来


数据监控的意义在于更好的统计和分析用户行为,包括了解用户的来源、那个功能交互用户点击比较多等等,可以更好的促使产品做得更好


数据采集方式:


  • 百度统计 - 只要加上百度统计的访问代码,就可以快速集成到项目中,记录页面的pv、uv
  • 埋点模式 - 调用埋点SDK的函数,在需要埋点的业务功能上去调用接口上报埋点数据,也可使用第三方的数据统计服务商友盟等。


相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
2月前
|
缓存 监控 前端开发
基于 CoffeeScript 的内网管理监控软件前端代码优化
本文探讨了基于CoffeeScript的内网管理监控软件前端代码优化方法,包括数据请求缓存、界面更新采用虚拟DOM技术以及增强错误处理机制,旨在提升软件性能、响应速度和用户体验。
54 4
|
2月前
|
监控 前端开发 JavaScript
OCamlScript 用于局域网电脑监控软件前端开发的探索
在数字化时代,局域网电脑监控软件广泛应用于企业管理和教育机构。OCamlScript 作为新兴技术,在此类软件的前端开发中展现出独特潜力,特别是在网络请求、界面更新及用户交互处理方面。通过合理利用其特性,可构建高效稳定的前端应用,提升用户体验,具有广阔的应用前景。
45 9
|
6月前
|
XML 监控 前端开发
WebTracing:如何使用一款SDK实现前端全链路监控
WebTracing:如何使用一款SDK实现前端全链路监控
324 1
|
8月前
|
缓存 监控 前端开发
前端性能监控:从Lighthouse到Real User Monitoring
**前端性能监控关乎用户体验。Lighthouse是自动化审计工具,评估网页性能、最佳实践、可访问性等,通过CLI或Chrome DevTools使用。RUM则实时监控用户与网站互动,收集性能数据。两者结合,从开发到生产环境,全面优化前端性能,包括资源加载、代码优化、网络性能和用户体验。使用Lighthouse和RUM数据,结合CI/CD,持续改进并设定性能预算,采用SSR、Service Worker、Code Splitting等高级策略,确保高性能和用户满意度。**
152 2
|
7月前
|
Web App开发 存储 监控
如何使用 Chrome DevTools 进行前端性能监控和调试?
如何使用 Chrome DevTools 进行前端性能监控和调试?
|
8月前
|
监控 前端开发 JavaScript
|
数据采集 监控 前端开发
前端性能和错误监控(一)
前端性能和错误监控
155 0
|
9月前
|
存储 监控 前端开发
JavaScript手册:公司员工电脑监控软件前端交互的代码设计
在当今信息时代,随着公司对员工电脑活动的监控需求不断增加,前端交互的代码设计变得尤为关键。本手册将深入探讨JavaScript编写的公司员工电脑监控软件监控代码,着重介绍如何设计能够在不引起怀疑的情况下,实现对员工电脑活动的细致监控。
276 2
|
9月前
|
移动开发 监控 前端开发
HTML5与CSS3教学:美化员工行为监控软件前端页面的代码技巧
在当今信息时代,企业对员工行为的监控成为了一项必不可少的工作。而员工行为监控软件作为一种高效的管理工具,其前端页面的设计和美化显得尤为重要。本文将介绍如何利用HTML5和CSS3技术,优雅地美化员工行为监控软件前端页面的代码技巧。
269 0
|
监控 前端开发 JavaScript
使用JavaScript实现实时报警功能的办公电脑上网监控软件:前端代码
在今天的数字化时代,监控软件已成为许多组织和企业必不可少的一部分,用于保护数据和确保系统的正常运行。本文将介绍如何使用JavaScript编写前端监控软件,包括实时报警功能的实现。我们将探讨一些关键的代码示例,以展示如何构建这样的系统。最后,我们还会讨论如何自动将监控到的数据提交到一个网站。
324 4

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    详解智能编码在前端研发的创新应用
  • 4
    巧用通义灵码,提升前端研发效率
  • 5
    智能编码在前端研发的创新应用
  • 6
    VSCode AI提效工具,通义灵码前端开发体验
  • 7
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 9
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
  • 10
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
  • 1
    前端起dev从110秒减少到7秒, 开发体验大幅提升
    15
  • 2
    无前端经验如何快速搭建游戏站:使用 windsurf 从零到上线的详细指南
    29
  • 3
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
    37
  • 4
    VSCode AI提效工具,通义灵码前端开发体验
    89
  • 5
    开箱即用的GO后台管理系统 Kratos Admin - 前端权限
    11
  • 6
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    43
  • 7
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    78
  • 8
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    33
  • 9
    巧用通义灵码,提升前端研发效率
    107
  • 10
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    155