当前位置:   article > 正文

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

wx.reportevent

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

Log.js

  1. var log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null
  2. module.exports = {
  3. // 实时日志
  4. info() {
  5. if (!log) return
  6. log.info.apply(log, arguments)
  7. },
  8. warn() {
  9. if (!log) return
  10. log.warn.apply(log, arguments)
  11. },
  12. error() {
  13. if (!log) return
  14. log.error.apply(log, arguments)
  15. },
  16. setFilterMsg(msg) { // 从基础库2.7.3开始支持
  17. if (!log || !log.setFilterMsg) return
  18. if (typeof msg !== 'string') return
  19. log.setFilterMsg(msg)
  20. },
  21. addFilterMsg(msg) { // 从基础库2.8.1开始支持
  22. if (!log || !log.addFilterMsg) return
  23. if (typeof msg !== 'string') return
  24. log.addFilterMsg(msg)
  25. },
  26. // 实时日志
  27. // 业务监控---基础监控--接口监控
  28. joggleMonitor(monitorId, errorCode, errorMsg, time) {
  29. wx.reportEvent && wx.reportEvent('wxdata_perf_monitor', {
  30. // 接口ID,可以使用URL相似的ID,也可以另外命名
  31. "wxdata_perf_monitor_id": monitorId,
  32. //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
  33. "wxdata_perf_monitor_level": 1,
  34. // 错误码,0为调用成功,非0为调用失败
  35. "wxdata_perf_error_code": errorCode,
  36. // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
  37. "wxdata_perf_error_msg": errorMsg,
  38. // 接口耗时,选填
  39. "wxdata_perf_cost_time": time,
  40. // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
  41. "wxdata_perf_extra_info1": "",
  42. "wxdata_perf_extra_info2": "",
  43. "wxdata_perf_extra_info3": "",
  44. })
  45. },
  46. // 业务监控---基础监控--业务逻辑监控
  47. businessMonitor(monitorId, errorCode, errorMsg, time, content) {
  48. // content==业务逻辑内容
  49. wx.reportEvent && wx.reportEvent('wxdata_perf_monitor', {
  50. // 接口ID,可以使用URL相似的ID,也可以另外命名
  51. "wxdata_perf_monitor_id": monitorId,
  52. //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
  53. "wxdata_perf_monitor_level": 1,
  54. // 错误码,0为调用成功,非0为调用失败
  55. "wxdata_perf_error_code": errorCode,
  56. // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
  57. "wxdata_perf_error_msg": errorMsg,
  58. // 接口耗时,选填
  59. "wxdata_perf_cost_time": time,
  60. // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
  61. "wxdata_perf_extra_info1": "",
  62. "wxdata_perf_extra_info2": "",
  63. "wxdata_perf_extra_info3": "",
  64. })
  65. },
  66. // 功能/模块监控--搜索模块下的多接口监控
  67. functionMonitor(monitorId, moduleId, errorCode, errorMsg, time) {
  68. console.log("errorCode",errorCode, time)
  69. wx.reportEvent && wx.reportEvent('wxdata_perf_module_monitor', {
  70. // 接口ID,可以使用URL相似的ID,也可以另外命名
  71. "wxdata_perf_monitor_id": monitorId,
  72. "wxdata_perf_module_id": moduleId,
  73. //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
  74. "wxdata_perf_monitor_level": 1,
  75. // 错误码,0为调用成功,非0为调用失败
  76. "wxdata_perf_error_code": errorCode,
  77. // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
  78. "wxdata_perf_error_msg": errorMsg,
  79. // 接口耗时,选填
  80. "wxdata_perf_cost_time": time,
  81. // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
  82. "wxdata_perf_extra_info1": "",
  83. "wxdata_perf_extra_info2": "",
  84. "wxdata_perf_extra_info3": "",
  85. })
  86. },
  87. // 服务/流程监控
  88. serveStartMonitor(serviceId, stepId, monitorId, errorCode, errorMsg, time) {
  89. wx.reportEvent && wx.reportEvent('wxdata_perf_service_monitor', {
  90. "wxdata_perf_service_id": serviceId,
  91. "wxdata_perf_step_type": 1,
  92. "wxdata_perf_step_id": stepId,
  93. // 接口ID,可以使用URL相似的ID,也可以另外命名
  94. "wxdata_perf_monitor_id": monitorId,
  95. //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
  96. "wxdata_perf_monitor_level": 1,
  97. // 错误码,0为调用成功,非0为调用失败
  98. "wxdata_perf_error_code": errorCode,
  99. // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
  100. "wxdata_perf_error_msg": errorMsg,
  101. // 接口耗时,选填
  102. "wxdata_perf_cost_time": time,
  103. // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
  104. "wxdata_perf_extra_info1": "",
  105. "wxdata_perf_extra_info2": "",
  106. "wxdata_perf_extra_info3": "",
  107. })
  108. },
  109. serveEndMonitor(serviceId, stepId, monitorId, errorCode, errorMsg, time) {
  110. wx.reportEvent && wx.reportEvent('wxdata_perf_service_monitor', {
  111. "wxdata_perf_service_id": serviceId,
  112. "wxdata_perf_step_type": 0,
  113. "wxdata_perf_step_id": stepId,
  114. // 接口ID,可以使用URL相似的ID,也可以另外命名
  115. "wxdata_perf_monitor_id": monitorId,
  116. //接口等级,0为普通,非0为重要,数值越大越重要,根据实际业务情况进行设置
  117. "wxdata_perf_monitor_level": 1,
  118. // 错误码,0为调用成功,非0为调用失败
  119. "wxdata_perf_error_code": errorCode,
  120. // 错误信息,选填,可以上报错误相关信息,方便后续排查问题
  121. "wxdata_perf_error_msg": errorMsg,
  122. // 接口耗时,选填
  123. "wxdata_perf_cost_time": time,
  124. // 以下为补充字段,可额外上报其他监控信息,用于事件分析,非必填
  125. "wxdata_perf_extra_info1": "",
  126. "wxdata_perf_extra_info2": "",
  127. "wxdata_perf_extra_info3": "",
  128. })
  129. }
  130. }

在需要监听的页面进行调用

  1. import Log from '../../../utils/log'
  2. import moment from 'moment'
  3. const start = +new Date()
  4. //接口调用时使用
  5. // 接口监控
  6. dishLis_v5({}).then(res => {
  7. // Log.joggleMonitor('dishLis_v5',res.success ? 0 : 1, res.msg, +new Date - start)
  8. // Log.functionMonitor('dishLis_v5','food',res.success ? 0 : 1, res.msg, +new Date - start)
  9. Log.serveEndMonitor('dishLis_v5_service','dishLis_v5_step'
  10. }).catch(error => {
  11. Log.info("=====", moment(new Date()).format('YYYY-MM-DD hh:mm:ss'), "======")
  12. Log.error("报错", error)
  13. })

注意事项: Log的输出,必需是在手机上运行时才会有记录,在开发者上运行是没有记录的

查看位置:微信公众平台--开发管理--运维中心--Web分析--性能质量--实时日志

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/509401
推荐阅读
相关标签
  

闽ICP备14008679号