赞
踩
前提:产品提出能够实时监控菜品展示、加购、下单的整个流程。方便正式环境查看接口运行情况。所以就接入了,小程序的日志和接口监控。
Log.js
- var log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null
-
- module.exports = {
- // 实时日志
- info() {
- if (!log) return
- log.info.apply(log, arguments)
- },
- warn() {
- if (!log) return
- log.warn.apply(log, arguments)
- },
- error() {
- if (!log) return
- log.error.apply(log, arguments)
- },
- setFilterMsg(msg) { // 从基础库2.7.3开始支持
- if (!log || !log.setFilterMsg) return
- if (typeof msg !== 'string') return
- log.setFilterMsg(msg)
- },
- addFilterMsg(msg) { // 从基础库2.8.1开始支持
- if (!log || !log.addFilterMsg) return
- if (typeof msg !== 'string') return
- log.addFilterMsg(msg)
- },
- // 实时日志
- // 业务监控---基础监控--接口监控
- joggleMonitor(monitorId, errorCode, errorMsg, time) {
- wx.reportEvent && wx.reportEvent('wxdata_perf_monitor', {
- // 接口ID,可以使用URL相似的ID,也可以另外命名
- "wxdata_perf_monitor_id": monitorId,
- //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
- "wxdata_perf_monitor_level": 1,
- // 错误码,0为调用成功,非0为调用失败
- "wxdata_perf_error_code": errorCode,
- // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
- "wxdata_perf_error_msg": errorMsg,
- // 接口耗时,选填
- "wxdata_perf_cost_time": time,
- // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
- "wxdata_perf_extra_info1": "",
- "wxdata_perf_extra_info2": "",
- "wxdata_perf_extra_info3": "",
- })
- },
- // 业务监控---基础监控--业务逻辑监控
- businessMonitor(monitorId, errorCode, errorMsg, time, content) {
- // content==业务逻辑内容
- wx.reportEvent && wx.reportEvent('wxdata_perf_monitor', {
- // 接口ID,可以使用URL相似的ID,也可以另外命名
- "wxdata_perf_monitor_id": monitorId,
- //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
- "wxdata_perf_monitor_level": 1,
- // 错误码,0为调用成功,非0为调用失败
- "wxdata_perf_error_code": errorCode,
- // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
- "wxdata_perf_error_msg": errorMsg,
- // 接口耗时,选填
- "wxdata_perf_cost_time": time,
- // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
- "wxdata_perf_extra_info1": "",
- "wxdata_perf_extra_info2": "",
- "wxdata_perf_extra_info3": "",
- })
- },
- // 功能/模块监控--搜索模块下的多接口监控
- functionMonitor(monitorId, moduleId, errorCode, errorMsg, time) {
- console.log("errorCode",errorCode, time)
- wx.reportEvent && wx.reportEvent('wxdata_perf_module_monitor', {
- // 接口ID,可以使用URL相似的ID,也可以另外命名
- "wxdata_perf_monitor_id": monitorId,
- "wxdata_perf_module_id": moduleId,
- //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
- "wxdata_perf_monitor_level": 1,
- // 错误码,0为调用成功,非0为调用失败
- "wxdata_perf_error_code": errorCode,
- // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
- "wxdata_perf_error_msg": errorMsg,
- // 接口耗时,选填
- "wxdata_perf_cost_time": time,
- // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
- "wxdata_perf_extra_info1": "",
- "wxdata_perf_extra_info2": "",
- "wxdata_perf_extra_info3": "",
- })
- },
- // 服务/流程监控
- serveStartMonitor(serviceId, stepId, monitorId, errorCode, errorMsg, time) {
- wx.reportEvent && wx.reportEvent('wxdata_perf_service_monitor', {
- "wxdata_perf_service_id": serviceId,
- "wxdata_perf_step_type": 1,
- "wxdata_perf_step_id": stepId,
- // 接口ID,可以使用URL相似的ID,也可以另外命名
- "wxdata_perf_monitor_id": monitorId,
- //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
- "wxdata_perf_monitor_level": 1,
- // 错误码,0为调用成功,非0为调用失败
- "wxdata_perf_error_code": errorCode,
- // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
- "wxdata_perf_error_msg": errorMsg,
- // 接口耗时,选填
- "wxdata_perf_cost_time": time,
- // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
- "wxdata_perf_extra_info1": "",
- "wxdata_perf_extra_info2": "",
- "wxdata_perf_extra_info3": "",
- })
- },
- serveEndMonitor(serviceId, stepId, monitorId, errorCode, errorMsg, time) {
- wx.reportEvent && wx.reportEvent('wxdata_perf_service_monitor', {
- "wxdata_perf_service_id": serviceId,
- "wxdata_perf_step_type": 0,
- "wxdata_perf_step_id": stepId,
- // 接口ID,可以使用URL相似的ID,也可以另外命名
- "wxdata_perf_monitor_id": monitorId,
- //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
- "wxdata_perf_monitor_level": 1,
- // 错误码,0为调用成功,非0为调用失败
- "wxdata_perf_error_code": errorCode,
- // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
- "wxdata_perf_error_msg": errorMsg,
- // 接口耗时,选填
- "wxdata_perf_cost_time": time,
- // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
- "wxdata_perf_extra_info1": "",
- "wxdata_perf_extra_info2": "",
- "wxdata_perf_extra_info3": "",
- })
- }
- }
在需要监听的页面进行调用
- import Log from '../../../utils/log'
- import moment from 'moment'
- const start = +new Date()
-
- //接口调用时使用
- // 接口监控
- dishLis_v5({}).then(res => {
- // Log.joggleMonitor('dishLis_v5',res.success ? 0 : 1, res.msg, +new Date - start)
- // Log.functionMonitor('dishLis_v5','food',res.success ? 0 : 1, res.msg, +new Date - start)
- Log.serveEndMonitor('dishLis_v5_service','dishLis_v5_step'
- }).catch(error => {
- Log.info("=====", moment(new Date()).format('YYYY-MM-DD hh:mm:ss'), "======")
- Log.error("报错", error)
- })
注意事项: Log的输出,必需是在手机上运行时才会有记录,在开发者上运行是没有记录的
查看位置:微信公众平台--开发管理--运维中心--Web分析--性能质量--实时日志
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。