美文网首页
前端性能监控

前端性能监控

作者: 我叫Aliya但是被占用了 | 来源:发表于2022-07-12 16:09 被阅读0次

window.performance.timing 获取各种时间

window.performance.timing = {
  navigationStart: 1657100460006
  // redirect
  redirectStart: 0
  unloadEventStart: 1657100460069
  redirectEnd: 0
  unloadEventEnd: 1657100460069
  // APP CACHE
  fetchStart: 1657100460039
  // DNS
  domainLookupStart: 1657100460039
  domainLookupEnd: 1657100460039
  // TCP
  connectStart: 1657100460039
  secureConnectionStart: 0
  connectEnd: 1657100460039
  // REQ RES
  requestStart: 1657100460042
  responseStart: 1657100460053
  responseEnd: 1657100460056
  // DOMContentLoaded
  domLoading: 1657100461708
  domInteractive: 1657100461778
  domContentLoadedEventStart: 1657100461778
  domContentLoadedEventEnd: 1657100461778
  domComplete: 1657100461841
  // LOAD
  loadEventStart: 1657100461841
  loadEventEnd: 1657100461841
}
加载顺序
  • domLoading - fetchStart:index.html响应的时间(用它的大小来算网速?)
  • domLoading - navigationStart:index.html响应的时间(含 DNS 解析)
const HTML_LOAD_TIME = 30;
const FIRST_SCREEN_LOAD_TIME = 1000;
const offset = FIRST_SCREEN_LOADING_TIME / HTML_LOADING_TIME

var duration = performance.timing.domLoading - performance.timing.fetchStart;
var loadingTime = duration * offset; // 开屏动画时间

参考: https://blog.csdn.net/wang_yu_shun/article/details/110790205http://www.alloyteam.com/2020/01/14184/

监控工具 sentry

搭建方式参考 https://zhuanlan.zhihu.com/p/210765546

sentry for react

npm install @sentry/react @sentry/tracing
import ReactDOM from "react-dom";
import * as Sentry from "@sentry/react";
import { Integrations } from "@sentry/tracing";
import App from "./App";

Sentry.init({
  // c4e5aad16fc942bbaec0dd3ef3903a72由每个项目唯一生成。localhost:9000/5对应的是sentry的dns地址。
  dsn: "http://c4e5aad16fc942bbaec0dd3ef3903a72@localhost:9000/5",
  integrations: [new Integrations.BrowserTracing()],
  tracesSampleRate: 1.0,
});

ReactDOM.render(<App />, document.getElementById("root"));

优化由于压缩打包造成的错误日志难以阅读:

npm install --save-dev @sentry/webpack-plugin
// .sentryclirc
[defaults]
project=react-test         // 生成sentry sdk的时候建立的名字
org=sentry                 // 后台 Settings - Organization Settings - GENERAL 处查看
url=http://localhost:9000  // sentry的后台地址

[auth] // 由后台生成 Auth Tokens
token=851d20d9e7e943b191df663643d13f89d8fb6c2d12584c729d0e29f831ec1fd1
// webpack.config.js
const SentryWebpackPlugin = require("@sentry/webpack-plugin");
...
  configureWebpack: {
    plugins: [
      new SentryWebpackPlugin({
        include: ".",
        ignore: ["node_modules", "webpack.config.js"],
        configFile: "sentry.properties", // 默认为根目录下的 .sentryclirc
      }),
    ],
  },
  output:{
     filename:"[name].js",
     path:path.resolve(__dirname, 'dist/'),
     sourceMapFilename: "[name].js.map"
  },
  devtool: 'hidden-source-map',

但是,hidden-source-map的官方解释是: 与 source-map 相同,但不会为 bundle 添加引用注释。如果你只想 source map 映射那些源自错误报告的错误堆栈跟踪信息,但不想为浏览器开发工具暴露你的 source map,这个选项会很有用。

另一个工具TraceKit

参考:https://www.yuque.com/docs/share/799e3059-ce31-420b-b78d-b6d1c65d0527

它可以支持到 IE6,轻量级工具,仅格式化,不包含上报,上报需要自己搞(比如使用 requestIdleCallback 浏览器空闲回调)

相关文章

  • 前端异常监控解决方案研究

    本文出自 Tencent CDC(前端异常监控解决方案研究) 前端监控包括行为监控、异常监控、性能监控等,本文主要...

  • 前端异常监控解决方案研究(转)

    前端监控包括行为监控、异常监控、性能监控等,本文主要讨论异常监控。对于前端而言,和后端处于同一个监控系统中,前端有...

  • 【前端】异常监控解决方案研究

    前端监控包括行为监控、异常监控、性能监控等,本文主要讨论异常监控。对于前端而言,和后端处于同一个监控系统中,前端有...

  • 前端性能监控

    这是一片梳理前端性能监控的文章

  • react 框架性能优化

    react 框架性能优化 前端性能监控利器 1.Google Performance工具 2.react 性能查看...

  • 前端监控体系建设

    前端监控体系主要分为错误监控、性能监控、业务监控及安全监控三个方面。 一、错误监控 (一)监控范围 js语法错误、...

  • 前端性能监控

    前言 前端页面性能是一个非常核心的用户体验指标。本文介绍阿里UC 岳鹰全景监控平台 如何设计一个通用、低侵入性、自...

  • 前端性能监控

    一、性能指标-----如何更好地评价网站的性能 1、用户体验角度 页面加载总时间:是指从导航开始到页面完全加载完毕...

  • 前端性能监控

    2019-04-18-09:53:于公司 需要处理哪些异常? 对于前端来说,我们可做的异常捕获还真不少。总结一下,...

  • 前端性能监控

    页面的性能问题是前端开发中一个重要环节,但一直以来我们没有比较好的手段,来检测页面的性能。直到W3C性能小组引入的...

网友评论

      本文标题:前端性能监控

      本文链接:https://www.haomeiwen.com/subject/xqjabrtx.html