监控微信小程序中的慢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 相关文章推荐
彪哥1.1(智能表格)提供下载
Sep 07 Javascript
关于JavaScript的一些看法
May 27 Javascript
JQuery for与each性能比较分析
May 14 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 Javascript
AngularJS删除路由中的#符号的方法
Sep 20 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 Javascript
Vue常用指令V-model用法
Mar 08 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 Javascript
vue中组件的3种使用方式详解
Mar 23 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 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 设计模式之 工厂模式
2008/12/19 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php下载文件的代码示例
2012/06/29 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python解惑之整数比较详解
2017/04/24 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python字典的值可以修改吗
2020/06/29 Python
python 实现Harris角点检测算法
2020/12/11 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
教师见习期自我鉴定
2014/04/28 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
部分武汉产收音机展览
2022/04/07 无线电
Win11查看设备管理器
2022/04/19 数码科技