当前位置: 首页 > news >正文

前端埋点与监控实战指南

前端埋点+监控

  • 什么是埋点+监控
    • 埋点
      • 作用
      • 分类
    • 监控
      • 作用
      • 分类
  • 为什么需要埋点和监控
  • 案例
    • 跟踪用户事件
      • 效果演示
      • 完整代码
    • 完成性能监控指标
      • 效果演示
      • 完整代码

什么是埋点+监控

埋点

  • 埋点主要用于收集用户行为数据。在日常开发中,我们会通过在前端代码中插入代码获脚本的方式来实现埋点功能。

作用

  • 埋点的主要作用就是:捕获特定用户行为(如点击、浏览、提交表单、页面跳转等)以及关键业务数据(如下单金额、商品类别等)

分类

  • 在日常开发中,埋点的实现方案大致可以分为以下三大类:
  1. 手动埋点:在代码中手动加入记录代码来捕获特定事件。
  2. 自动埋点:利用DOM事件代码等技术来捕获页面上所有事件,从而减少手动配置。
  3. 可视化埋点:通过工具界面标记需要采集的元素和事件,可以不用手写代码。

监控

  • 监控主要关注系统的性能和稳定性。在日常开发中,我们会通过采集页面加载时间、资源请求、错误日志等数据的方式来实现前端监控。

作用

  • 监控的主要作用就是:及时发现并定位页面性能瓶颈或代码异常目的是为了保障系统不出bug

分类

  • 在日常开发中,监控一般需要完成以下三大部分:
  1. 性能监控:如:首屏加载时间、页面交互耗时、资源加载耗时等
  2. 错误监控:捕获JavaScript错误、网络请求失败、资源加载异常等
  3. 用户体验监控:收集白屏、卡顿等影响用户体验的问题

为什么需要埋点和监控

  • 埋点与监控体系是数字化产品实现精细化运营高质量交付的基础设施:通过实时采集页面访问(PV)及各类事件指标,构建覆盖性能、异常与业务的量化数据面,为产品决策(PD)提供可回溯、可验证的客观依据,并形成“洞察→决策→迭代→再验证”的闭环,降低因信息盲区导致的转化流失与故障扩大风险,持续驱动产品优化与价值增长。

案例

跟踪用户事件

  • 首先我们需要先构造一个通用追踪函数来减少代码复用,这里我采用的是打印模拟,生产环境中一般需要传入真正的服务器接口,如下:
// 通用追踪函数function trackEvent(eventType, detail) {//进行模拟console.log(`用户触发了${eventType}事件,`, detail);// 发送事件数据到服务器---真实应用//   fetch("/track-event", {//     method: "POST",//     headers: {//       "Content-Type": "application/json",//     },//     body: JSON.stringify({ eventType, detail }),//   });}
  • 这里用来跟踪用户的点击事件滚动页面事件
  • 这里两种均属于自动埋点

效果演示

  • 页面点击按钮后控制台打印”用户出发了点击事件以及时间戳“
  • 滚动页面后控制台打印”用户出发了scroll事件“
    在这里插入图片描述

完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><style>body{height: 2000px;background-color: aquamarine;}</style><body><div id="events-container"><button id="click-btn">跟踪点击事件</button></div></body><script>// 跟踪点击事件document.getElementById("click-btn").addEventListener("click", () => {trackEvent("click", {buttonId: "click-btn",timestamp: new Date().toISOString(),});});// 跟踪滚动事件window.addEventListener("scroll", () => {trackEvent("scroll", {scrollY: window.scrollY,timestamp: new Date().toISOString(),});});// 通用追踪函数function trackEvent(eventType, detail) {//进行模拟console.log(`用户触发了${eventType}事件,`, detail);// 发送事件数据到服务器---真实应用//   fetch("/track-event", {//     method: "POST",//     headers: {//       "Content-Type": "application/json",//     },//     body: JSON.stringify({ eventType, detail }),//   });}</script>
</html>

完成性能监控指标

  • 这里我们对页面加载时间以及模拟API调用耗时监控
  • 首先还是先定义通用追踪函数 — 同上
  • 利用load事件以及performance.now()方法获得页面加载时间并进行上报
    window.addEventListener("load", () => {const time = performance.now();trackEvent("load", {duration: time,});});
  • 利用settimeout模拟API调用耗时监控
    // 模拟API调用function callAPI() {const time = performance.now();// 模拟API调用耗时setTimeout(() => {trackEvent("api-call", {duration: performance.now() - time,});}, 1300);}

效果演示

在这里插入图片描述

完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><div><div>页面加载时间监控</div><div>API调用耗时监控</div><button id="api-btn">点击调用API</button></div></body><script>// 页面加载时间监控window.addEventListener("load", () => {const time = performance.now();trackEvent("load", {duration: time,});});// API调用耗时监控// 模拟API调用function callAPI() {const time = performance.now();// 模拟API调用耗时setTimeout(() => {trackEvent("api-call", {duration: performance.now() - time,});}, 1300);}// 调用APIdocument.getElementById("api-btn").addEventListener("click", () => {callAPI();});// 通用追踪函数function trackEvent(eventType, detail) {//进行模拟console.log(`用户触发了${eventType}事件,`, detail);// 发送事件数据到服务器---真实应用//   fetch("/track-event", {//     method: "POST",//     headers: {//       "Content-Type": "application/json",//     },//     body: JSON.stringify({ eventType, detail }),//   });}</script>
</html>
http://www.dtcms.com/a/504425.html

相关文章:

  • 通俗范畴论20 向量空间范畴与自然变换
  • ppt可以做网站桂城网站设计
  • 做pc端大型网站 前端用中国建设银行的网站设计
  • 楚雄市建设规划批前公示在那个网站网件路由器app 中文版
  • 【2026计算机毕业设计】基于Springboot的校园失物招领小程序
  • 第四章 IP地址规划
  • 12-头文件
  • 顺义做网站苏州专业做优化公司
  • 算法笔记 04
  • Annual Comedy Competition (Season 2)
  • 建设部网站办事大厅成都plc培训机构哪家最好
  • 在住房和城乡建设部网站查询在线设计平台的缺点
  • 公司网页建立乐陵seo优化信德
  • 做静态网站有什么建议wordpress文章没缩略图
  • 做网站提成仿做网站的网站
  • ICT 数字测试原理 31 - - X-Tree测试
  • 网站服务器ip地址在哪里看网站内容运营方案
  • CSDN-Markdown新版说明
  • 汕头网站推广seo在线咨询平台系统
  • 设计教程网站推荐网站开发 质量管理
  • 阆中网站网站建设郴州网站建设公司哪个好
  • 【STM32笔记】:P04 断言的使用
  • 阿里巴巴建网站龙华网站建设专业公司
  • 新手学wordpress优化落实防控措施
  • 基于彩色线图像增强和改进型YOLOv7模型的海洋水产养殖生物体检测
  • 网站可以免费建立吗网络游戏企业不得向提供游戏服务
  • codetop高频(3)
  • 兰州网络推广关键词优化网站营销seo
  • 开发大型网站的流程wordpress自定义搜索
  • 站长 网站ip怒江商城网站建设