微信小程序实现实时日志和接口监控的接入

这篇具有很好参考价值的文章主要介绍了微信小程序实现实时日志和接口监控的接入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:产品提出能够实时监控菜品展示、加购、下单的整个流程。方便正式环境查看接口运行情况。所以就接入了,小程序的日志和接口监控。

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分析--性能质量--实时日志

微信小程序日志,微信小程序,小程序

 文章来源地址https://www.toymoban.com/news/detail-545717.html

到了这里,关于微信小程序实现实时日志和接口监控的接入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信开发】微信小程序实现实时聊天功能

    最近在做一个项目,需要运用到实时聊天功能,分享一下。      分为: 1.界面如何布局以及细节; 2.如何实现实时更新; 3.全部代码展示;         一、界面如何布局以及细节:         1.说到底,聊天界面就是循环一个数组,每一行为一个单位(item),循环(wx.for)我

    2024年02月04日
    浏览(52)
  • 微信小程序 | 基于小程序+Java+WebSocket实现实时聊天功能

    此文主要实现在小程序内聊天对话功能,使用Java作为后端语言进行支持,界面友好,开发简单。 2.1、注册微信公众平台账号。 2.2、下载安装IntelliJ IDEA(后端语言开发工具),Mysql数据库,微信Web开发者工具。 1.创建maven project 先创建一个名为SpringBootDemo的项目,选择【New Proje

    2024年02月02日
    浏览(52)
  • 微信小程序-接入sse数据流并实现打字机效果( ChatGPT )

    从流中获取的数据格式如下 小程序调用SSE接口 我这边接收到的数据类型为Uint8Array,需要处理成text文本(如上图) 使对话有打字机效果 参考自:小程序实现 ChatGPT 聊天打字兼自动滚动效果 完整代码

    2024年04月09日
    浏览(87)
  • uniapp实现微信小程序用户实时位置定位并显示地图

    目前,我们可以通过一些现成的api来实现此功能。下面我将介绍一下通过腾讯位置服务来实现此功能的具体操作流程。 1、在Hbuilder x中对项目进行权限开放 进入到manifest.json文件中   2、获取调用腾讯位置服务所需的key 登录腾讯地图api: 腾讯位置服务 - 立足生态,连接未来

    2024年02月09日
    浏览(52)
  • 使用flink实现《实时监控和日志分析》的案例 java版

    本文档介绍了使用Java和Flink实现实时监控和日志分析的案例。该案例旨在通过实时监控和日志分析来提高系统的可靠性和性能。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjPKQuIf-1686052913444)(./architecture.png)] 如上图所示,该系统由以下组件组成

    2024年02月06日
    浏览(42)
  • 微信小程序使用stomp.js实现STOMP传输协议的实时聊天

    简介: stomp.js:uniapp开发的小程序中使用 stomp.js:官网 stomp.js:GitHub 本来使用websocket,后端同事使用了stomp协议,导致前端也需要对应修改。 如何使用 在static/js中新建stomp.js和websocket.js,然后在需要使用的页面引入监听代码+发送代码即可 代码如下: 位置:项目/pages/static/

    2024年02月11日
    浏览(59)
  • 微信小程序实现分享里调用接口

    在开发微信小程序的时候,有一个需求,在点击分享按钮的时候,调用后台的接口,来获取一个分享的值,在分享的时候在分享链接里拼这个值。 初始的想法 在onShareAppMessage里使用promise 在这里去请求接口,但随后就遇到了问题,在用户未登录的情况下点击分享按钮,会跳转

    2024年02月11日
    浏览(39)
  • 【接口测试】微信小程序接口自动化的实现方案

    前几天看到有人问微信小程序怎么进行接口自动化,所以想把自己如何进行微信小程序接口自动化的方法分享下。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html这是微信小程序的登陆流程,小程序登陆需要在小程序内部调用 wx.login() 的方法拿到 code,然后去请

    2024年02月09日
    浏览(41)
  • Java实现微信小程序相关接口

    订阅通知 获取用户openid 获取用户手机号 微信支付 PayVo类 getFee方法 WXPayUtil类 支付成功回调接口 微信退款 MD5Util类 PayConfig类 WxPayConstant类

    2024年02月12日
    浏览(39)
  • 微信小程序实现下拉简单展示接口数据

    在.js文件中这样写,代码如下: 在wxml文件中这样写,代码如下: 在.json文件中记得添加如下代码,打开下拉功能 \\\"window\\\":{     \\\"backgroundTextStyle\\\":\\\"light\\\",     \\\"navigationBarBackgroundColor\\\": \\\"#282A36\\\",     \\\"navigationBarTitleText\\\": \\\"Linux\\\",     \\\"navigationBarTextStyle\\\":\\\"white\\\",      \\\"enablePullDo

    2024年01月20日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包