监控微信小程序中的慢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 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
使用JS读秒使用示例
Sep 21 Javascript
通过action传过来的值在option获取进行验证的方法
Nov 14 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
微信小程序之购物车功能
Sep 23 Javascript
如何理解Vue的.sync修饰符的使用
Aug 17 Javascript
vue调试工具vue-devtools安装及使用方法
Nov 07 Javascript
Vue解决移动端弹窗滚动穿透问题
Dec 15 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
德生PL660的电路分析和打磨
2021/03/02 无线电
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP类型约束用法示例
2016/09/28 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
js获取变量
2006/08/24 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
vue-swiper的使用教程
2018/08/30 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Django xadmin安装及使用详解
2020/10/26 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
政法大学毕业生自荐信范文
2014/01/01 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL