监控微信小程序中的慢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 事件参考手册
Dec 24 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
Sep 15 Javascript
js+html获取系统当前时间
Nov 10 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
Oct 25 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
Nov 26 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
微信小程序实现轮播图指示器
Jun 25 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python实现Restful API的例子
2019/08/31 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
Python如何重新加载模块
2020/07/29 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
什么是数组名
2012/05/10 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书