0.1.1 • Published 5 years ago

efe-monitor-sdk v0.1.1

Weekly downloads
1
License
ISC
Repository
-
Last release
5 years ago

efe-monitor-sdk

集成浏览器端页面性能,ajax/fetch/axios加载情况,错误信息,资源性能上报SDK

一、介绍

1、sdk分三种

  • 一 :所有类型通用的上报SDK 即:default.js
  • 二 :针对于使用Jquery ajax的上报SDK 即:ajax.js
  • 三 :针对于使用Axios ajax的上报SDK 即:fetch.js

  • 通用版本适合所有上报情况

  • 至于三种sdk的选择可酌情选择。通常来说专库专用会更好,因此使用jquery的推荐第二种,使用Axios、fetch的推荐第三种,其他情况使用通用版本

  • efe-monitor-sdk 只做页面性,错误信息,资源信息,ajax信息等上报,让你不用关心浏览器上报部分,是一个比较完整和健全的数据上报插件。

  • 在此基础上你可以开发任何自己需要的性能上报系统。

2、efe-monitor-sdk主要上报以下性能信息

  • url 上报页面地址
  • preUrl 来访上一页面URL
  • performance 页面性能数据详情,字段含义详情请参考后面内容
  • errorList 页面错误信息详情,包含js,img,ajax,fetch等所有错误信息,字段含义详情请参考后面内容
  • resoruceList 页面性能数据详情,当前页面所有资源性能详情信息,字段含义详情请参考后面内容
  • markUv 统计uv标识
  • markUser 从用户进入网站开始标识,直到用户离开销毁,可以用来做用户漏斗分析
  • time 当前上报时间
  • screenwidth 屏幕宽度
  • screenheight 屏幕高度
  • isFristIn 是否是某次会话的第一次进入
  • type 上报类型 1:页面级性能上报 2:页面ajax性能上报 3:页面内错误信息上报

二、引入方式

1、参数说明

  • domain :上报api接口
  • outtime :上报延迟时间,保证异步数据的加载 (默认:300ms)
  • isPage :是否上报页面性能数据 (默认:true)
  • isResource :是否上报页面资源性能数据 (默认:true)
  • isError :是否上报页面错误信息数据 (默认:true)
  • isAjax :是否上报ajax信息 (默认:true)
  • add :附带参数 (值为json object 例如:{APPID:'123456789'})
  • filterUrl :不需要上报的ajax请求 (例如开发模式下的livereload链接)

2、浏览器页面直接引用资源方式

  • 1、下载 dist/**.js 到本地
  • 2、使用script标签引入到html的头部(备注:放到所有js资源之前)
  • 3、使用performance函数进行数据的监听上报
<html>
<head>
  <meta charset="UTF-8">
  <title>performance test</title>
  <script src="../dist/ajax.js"></script>
  <script>
    window.ajaxReport({
      domain:'http://192.168.99.115:7001/api/v1/report/web',
      add: {
        appId: 'xxx'
      }
    })
  </script>
</head>

3、npm引入方式

npm install efe-monitor-sdk --save

import {
  Performance, // default sdk
  // axiosReport,
  // jqueryReport
} from 'efe-monitor-sdk'

Performance({
  domain:'http://192.168.99.115:7001/api/v1/report/web',
  add: {
    appId: 'xxx'
  }
})

三、性能收集场景

在多页面中可加载插件后调用 window.ReportData() 方法直接上报。

  • type = 1(default): 页面级别性能数据上报,即页面加载|路由切换时页面性能数据的上报
  • type = 2: 页面已加载完毕,当进行某些操作请求了ajax信息时,对ajax性能数据的上报(如果ajax报错则上报错误信息)
  • type = 3: 页面已加载完毕,当进行某些操作报错时,对错误信息的上报
// 在vue中可如此使用
router.afterEach((to, from, next) => {
  if(from.name){
    try{ window.ReportData(); }catch(e){}
  }else{
    addEventListener("load",function(){
      try{ window.ReportData(); }catch(e){}
    },false);
  }
})

// 在react中也可以使用 withRouter 对路由跳转后进行统一上报。

四、注意事项

  • jquery和axios JDK需要放在jquery 或 axios之后,不然ajax错误性信息无法采集
  • 增加每次会话的第一次进入标识:isFristIn,客观的统计用户第一次进入页面性能数据
  • 单页面应用程序路由切换时根据页面是否有ajax请求进行性能的上报

五、其他

1、完整上报参数

parameter namedescribeexplain
url上报页面地址
markUv统计uv标识
markUser用户标识可用来做UV统计,和用户行为漏斗分析
isFristIn是否是每次会话的第一次渲染可以用来做首屏渲染性能统计分类
type上报类型1:页面级性能上报 2:页面ajax性能上报 3:页面内错误信息上报
screenwidth屏幕宽度
screenheight屏幕高度
preUrl上一页面
errorList错误资源列表信息
->t资源时间
->n资源类型resource,js,ajax,fetch,other
->msg错误信息
->method资源请求方式GET,POST
->data->resourceUrl请求资源路径
->data->coljs错误行
->data->linejs错误列
->data->statusajax错误状态
->data->textajax错误信息
performance页面资源性能数据(单位均为毫秒)
->dnstDNS解析时间
->tcptTCP建立时间
->wit白屏时间
->domtdom渲染完成时间
->lodt页面onload时间
->radt页面准备时间
->rdit页面重定向时间
->uodtunload时间
->reqtrequest请求耗时
->andt页面解析dom耗时
resoruceList页面资源性能数据
->decodedBodySize资源返回数据大小
->duration资源耗时
->method请求方式GET,POST
->name请求资源路径
->nextHopProtocolhttp协议版本
->type请求资源类型script,img,fetchrequest,xmlhttprequest,other

2、后期计划

...

0.1.1

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago