监控微信小程序中的慢HTTP请求过程详解


Posted in Javascript onJuly 05, 2019

Fundebug 的微信小程序监控插件在 0.5.0 版本已经支持监控 HTTP 请求错误,在小程序中通过wx.request发起 HTTP 请求,如果请求失败,会被捕获并上报。时隔一年,微信小程序插件已经更新到 1.3.1, 而且提供了一个非常有用的功能,支持监控 HTTP 慢请求。对于轻量级的性能分析,可以说已经够用。

本文我们以一个天气微信小程序为例(由bodekjan开发),来演示如何监控慢请求。bmap-wx.js中的weather()函数调用百度地图小程序 api 提供的接口来获取天气预报信息。

监控微信小程序中的慢HTTP请求过程详解

接入监控

由于使用百度的 api,我们无法确认该接口的稳定性,可能有时候会特别慢,导致天气信息显示不出来。于是,我们使用 Fundebug 来监控请求过慢的情况。接下来,我们来演示如何监控慢请求。注册账户后,记得要在创建项目是选择“微信小程序”这一项目类型。

监控微信小程序中的慢HTTP请求过程详解

根据指示完成接入流程:

监控微信小程序中的慢HTTP请求过程详解

在app.js顶部加入下面的代码(记得将 apikey 替换成你自己的):

var fundebug = require("./utils/fundebug.1.3.1.min.js");
fundebug.init({
  apikey: "YOUR-API-KEY",
  monitorMethodCall: true,
  monitorMethodArguments: true,
  monitorHttpData: true,
  setSystemInfo: true,
  setUserInfo: true,
  setLocation: true,
  httpTimeout: 200
});

虽然init()函数只要设置apikey即可使用,但是为了最大程度发挥监控的威力,我们不妨多设置一些监控选项。

微信小程序插件有很多的可配置项,由于涉及到数据,默认处于关闭状态。我们可以监控函数调用(monitorMethodCall),以及函数调用的参数(monitorMethodArguments),监控 HTTP 请求的 Body 中的数据(monitorHttpData),获取系统信息(setSystemInfo)、用户信息(setUserInfo)、地理位置(setLocation)。

监控慢请求

最后,最重要的一步,配置httpTimeout来监控超过特定时长的请求,httpTimeout 类型为 Number,单位为毫秒(ms)。演示起见,我们将时间设置为 200 毫秒。

在微信开发者工具内运行代码,Fundebug 立马收到报错。小程序发往https://api.map.baidu.com/telematics/v3/weather接口的请求时长为 571ms,超过预设时间 200ms。

监控微信小程序中的慢HTTP请求过程详解

错误详情

该请求返回代码 200,表明能够正常获取数据。点击该条错误,查看错误详情:

监控微信小程序中的慢HTTP请求过程详解

通过上方的统计数据,我们可以知道获取天气信息的接口出现缓慢情况的趋势,影响的用户数量,累计发生的次数。我们可以以此来评估是否需要优化该接口,甚至替换成其它第三方接口来解决这个问题。

附加信息

因为配置了 monitorHttpData,所以我们可以查看到请求 body 中的详细数据。当请求失败的时候,有时候需要结合参数来分析失败的原因。

监控微信小程序中的慢HTTP请求过程详解

另外,用户行为数据记录了小程序运行的详细状况,特别是函数的调用序列,对于理解出错前程序的执行逻辑很有帮助:

监控微信小程序中的慢HTTP请求过程详解

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有阳光保险、核桃编程、荔枝FM、掌门1对1、微脉、青团社等众多品牌企业。欢迎大家免费试用!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS Window常用方法
Oct 07 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
Dec 08 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
Jan 23 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
AngularJS过滤器filter用法分析
Dec 11 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
不得不看之JavaScript构造函数及new运算符
Aug 21 Javascript
vue实现全选和反选功能
Aug 31 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
node 版本切换的实现
Feb 02 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
Sep 16 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 #Javascript
JS Math对象与Math方法实例小结
Jul 05 #Javascript
js字符串类型String常用操作实例总结
Jul 05 #Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 #Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
Jul 04 #Javascript
JS开发常用工具函数(小结)
Jul 04 #Javascript
Vue.js 中的实用工具方法【推荐】
Jul 04 #Javascript
You might like
php smarty模版引擎中的缓存应用
2009/12/11 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现大文本文件分割
2019/07/22 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
Python通过socketserver处理多个链接
2020/03/18 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
SQL Server面试题
2013/04/04 面试题
银行服务明星推荐材料
2014/05/29 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
4s店活动策划方案
2014/08/25 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
参观邀请函范文
2015/02/02 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL