首页 > 编程语言 >[ARMS用户体验监控]接入小程序

[ARMS用户体验监控]接入小程序

时间:2024-10-16 11:46:54浏览次数:3  
标签:endpoint name 接入 ARMS String API 监控 id SDK

ARMS用户体验监控(Real User Monitoring,RUM)专注于对Web场景、App移动应用场景和小程序场景的监控,以用户体验为切入点,完整再现用户操作过程,从页面打开速度(测速)、请求服务调用(API)和故障分析(JS错误、网络错误等)稳定性(JS错误、崩溃、ANR 等)方面监测前端应用性能表现情况,并支持日志数据查询,帮助您快速跟踪定位故障原因,提升用户体验。

ARMS用户体验监控支持监控支付宝、微信、钉钉、QQ、抖音、百度、京东等常见小程序,并支持Taro、Uniapp等跨端框架编译目标为小程序,通过集成npm包的方式,采集应用站点运行过程中的性能指标,追踪异常问题,帮助您提升自身应用站点的用户体验。

操作步骤

  1. 登录ARMS控制台
  2. 在左侧导航栏选择用户体验监控 > 应用列表,并在顶部菜单栏选择目标地域。

  3. 应用列表页面单击添加应用

  4. 创建应用面板单击小程序

  5. 小程序面板输入应用名称和描述,然后单击创建

    说明

    应用名称唯一,不能与已创建的应用名称重复。

    创建成功后,当前应用将会自动生成对应的pid和endpoint地址。

  6. 获取探针SDK安装方式。

    小程序探针目前仅支持通过npm包接入。

    1. 引入npm包。

      npm install @arms/rum-miniapp
    2. 初始化。

      说明

      请将以下代码中的pidendpoint替换为控制台获取的当前应用对应的pid和endpoint地址。

      import ArmsRum from '@arms/rum-miniapp';
      ArmsRum.init({
        pid: "your app id",
        endpoint: "your endpint"
      });
  7. 设置安全域名。

    将当前应用对应的endpoint地址添加到服务器域名白名单中。

    Endpoint地址示例:https://aokcd*****-default-cn.rum.aliyuncs.com

SDK配置

参数

类型

描述

是否必填

默认值

pid

String

应用ID

-

endpoint

String

上报地址

-

env

-

应用环境:

  • prod:线上环境

  • gray:灰度环境

  • pre:预发环境

  • daily:日常环境

  • local:本地环境

prod

version

String

应用版本

-

user

Object

User配置

user.id由SDK默认生成

collectors

Object

各Collector(采集器)配置

-

beforeReport

Function

上报数据之前执行beforeReport,可以修改或阻止数据上报。

noop

reportConfig

Object

上报配置

{

flushTime: 3000,

maxEventCount: 20

}

parseViewName

Function

解析视图名称(view.name),入参为当前页面的URL。

-

parseResourceName

Function

解析资源名称(resource.name),入参为当前资源的URL。

-

evaluateApi

Function

自定义解析API事件,详细说明请参见evaluateApi配置

-

User配置

参数

类型

描述

是否必填

默认值

id

String

用户ID,不可修改。

由SDK默认生成

tags

String

标签

-

name

String

名称

-

示例

说明

如果需要关联业务自有账号体系,建议使用user.name或者user.tags ,而不是修改user.id。强制覆盖SDK生成的user.id ,会对影响UV的计算。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  user: {
    name: getYourUserName(),
    tags: getYourTags(),
  }
});

reportConfig配置

参数

类型

描述

是否必填

默认值

flushTime

Number

上报时间间隔

取值范围:[0, 10000]

3000

maxEventCount

Number

一次上报最大数量

取值范围:[1, 100]

20

示例

说明

使用业务自有账号体系强制覆盖SDK生成的user.id,会对影响UV的计算。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  reportConfig: {
    flushTime: 0, // 立即上报
    maxEventCount: 50 // 一次最多上报数量
  }
});

Collectors配置

Collector是RUM SDK用于收集页面监控数据的最小单元。目前RUM SDK内置了api、static Resource等丰富的采集器。

参数

类型

描述

是否必填

默认值

api

Boolean | Object

监听API请求。

true

jsError

Boolean | Object

监听JS错误。

true

consoleError

Boolean | Object

监听console.error抛出的错误。

true

action

Boolean | Object

监听用户行为。

true

示例

关闭监听用户Click行为。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  collectors: {
    action: false,
  }
});

evaluateApi配置

evaluateApi提供对API(request或httpRequest)事件的自定义解析。以下为SDK传入的三个参数:

参数

类型

描述

options

Object

请求参数,包括url、headers、data等,根据具体请求方式有差异。

response

Object

请求响应体。

error

Error

可选参数,只有在请求失败才会传入。

该函数支持异步函数,返回Promise<IApiBaseAttr>,IApiBaseAttr的定义如下:

参数

类型

描述

是否必填

name

String

API名称,一般是对URL的收敛,最大1000字符。

例如URL为/list/123, 收敛name字段后显示为/list/$id

重要

该字段的优先级高于parseResourceName返回的内容。

message

String

API信息,一个简短的描述API概况字符串,最大1000字符。

success

Number

请求成功状态:

  • 1:成功

  • 0:失败

  • -1:未知

duration

Number

API总耗时。

status_code

Number | String

API状态码。

snapshots

String

API快照。

说明

可用于存储reqHeaders、params、resHeaders等,具体字段组成方式可自行决定。该字段主要用于排查接口异常的原因,没有索引,不能根据该字段进行筛选或聚合,只接受字符串类型,最大5000字符。

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  evaluateApi: async (options, response, error) => {
    const respText = JSON.stringify(response);

    // 返回的字段会覆盖默认内容,不返回的字段会依然使用SDK自定生成内容
    return {
      name: 'my-custom-api',
      success: error ? 0 : 1,
      snapshots: JSON.stringify({
        params: 'page=1&size=10', // 请求入参
        response: respText.substring(0, 2000), // 返回值
        reqHeaders: '', // 请求头
        resHeaders: '' // 响应头
      })
    }
  }
});

SDK API

RUM SDK开放API,用于修改上报自定义数据,动态修改SDK配置等。

getConfig

获取SDK配置。

setConfig

修改SDK配置。

// 指定 key 设置
ArmsRum.setConfig('env', 'pre');

// 覆盖设置
const config = ArmsRum.getConfig();
ArmsRum.setConfig({
  ...config,
  version: '1.0.0',
  env: 'pre',
});

sendCustom

上报自定义数据,必须包含type和name两个属性,否则无法上报。属性的具体业务意义可参考下表,实际使用需要自行定义业务语义。

参数

类型

描述

是否必填

默认值

type

String

类型

-

name

String

名称

-

group

String

分组

-

value

Number

-

ArmsRum.sendCustom({
  type: 'CustomEvnetType1',
  name: 'customEventName2',
  group: 'customEventGroup3',
  value: 111.11
});

sendException

上报自定义异常数据,必须包含name和message两个属性,否则无法上报。

参数

类型

描述

是否必填

默认值

name

String

异常名称

-

message

String

异常信息

-

file

String

异常发生文件

-

stack

String

异常堆栈信息

-

line

Number

异常发生的行数

-

column

Number

异常发生的列数

-

ArmsRUM.sendException({
  // 必选
  name: 'customErrorName',
  message: 'custom error message',
  // 可选
  file: 'custom exception filename',
  stack: 'custom exception error.stack',
  line: 1,
  column: 2
});

sendResource

上报自定义资源,必须包含name、type和duration三个属性,否则无法上报。

参数

类型

描述

是否必填

默认值

name

String

资源名。

-

type

String

资源类型,例如:script、api、image、other。

-

duration

String

请求耗时。

-

success

Number

请求成功状态:

  • 1:成功

  • 0:失败

  • -1:未知

-

method

String

请求方法。

-

status_code

Number | String

请求状态码。

-

message

String

请求消息。

-

url

String

请求地址。

-

trace_id

String

链路追踪ID。

-

ArmsRum.sendResource({
  // 必选
  name: 'getListByPage',
  message: 'success',
  duration: 800,
  // 可选
  url: 'https://www.aliyun.com/data/getListByPage',
});

标签:endpoint,name,接入,ARMS,String,API,监控,id,SDK
From: https://blog.csdn.net/2401_88127808/article/details/142977085

相关文章

  • ELK实时监控Nginx日志
    ELK分析Nginx日志和可视化展示一、概述使用ELK收集nginxaccess日志,利用Grafana做出一套可视化图表二、环境准备环境说明操作系统:centos7.6docker版本:19.03.12ip地址:192.168.31.196elk搭建关于elk的搭建,请参考以下3篇文章:docker安装elasticsearch和head插件docker安......
  • 基于深度学习的智能传感与监控
    基于深度学习的智能传感与监控技术通过利用传感器收集数据,并使用深度学习算法对这些数据进行分析,以实现智能化的监控和管理。这些系统广泛应用于智慧城市、工业自动化、医疗健康、农业、安防等领域,提升了数据分析的精确度、实时性和自动化水平。1.智能传感概述智能传感技术......
  • 推荐一款国产云原生的监控系统!开箱即用,用起来一个字,爽!(带私活源码)
     本期给大家介绍一款开源的云原生监控系统夜莺,采用all-in-one的设计,开箱即用,跟着我来体验下吧!1.夜莺是什么官方解释是夜莺监控(Nightingale)是一款国产、开源云原生监控分析系统,采用All-In-One的设计,集数据采集、可视化、监控告警、数据分析于一体。我在体验后,咱就......
  • Unity接入人工智能
    在Unity接入人工智能中,本篇实现了接入百度智能云ai进行npc智能对话,通过http方式,并非插件,适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。1-4节讲解测试,第5节讲解Unity中的实现,建议从头开始阅读。一、创建应用1.1注册百度智能云账号按照图片......
  • ssl证书时效监控脚本
    #!/bin/bash#定义要监控的域名列表DOMAINS=("example1.com""example2.com""example3.com")#设定警告阈值(天)WARNING_DAYS=30#获取当前日期CURRENT_DATE=$(date+"%Y-%m-%d")#输出头部信息echo"SSL证书过期时间监控报告-......
  • Grafana+ Node+ Prometheus对服务器进行性能监控
    目录一、Grafana1.把Grafana压缩文件上传到Linux服务器2.安装服务3.启动服务4.访问二、Node1.上传node_exporter-1.5.0.linux-amd64.tar到服务器2.解压3.启动服务三、Prometheus1.上传prometheus-2.43.0.linux-amd64.tar到服务器2.解压3.进入prometheus.yml中修改......
  • 阿里云Milvus配置监控告警
    阿里云Milvus提供了告警设置功能,通过对重要的监控指标设置报警规则,可以实时了解实例的运行状况,及时处理潜在风险,保障实例稳定运行。背景信息阿里云Milvus的监控报警是通过阿里云云监控产品实现的。通过云监控,您可以设置监控项,在触发监控项报警规则时,通知报警联系组中的所有联......
  • 快速部署AI监控系统:思通数科视频卫士的开源解决方案
    AI视频监控卫士的主要应用场景:我们决定开源的原因:灵活性与可定制性:开源产品的代码对用户公开,允许开发者根据特定需求进行自定义和扩展。思通数科AI视频监控卫士作为开源项目,可以灵活适应不同企业或项目的需求。例如,用户可以针对特定的监控场景调整算法,优化人脸识别、行......
  • 注塑机接插件航空插头工厂数据采集产量监控系统
    测试机柜温湿度01.温度7dp8dp测试机柜温湿度01.湿度压接计数器02.产量计数测试机柜温湿度02.温度测试机柜温湿度02.湿度3eftkf压接计数器03.产量计数压接计数器01.产量计数压接计数器04.产量计数200121压接计数器05.产量计数5gd1qg海天温湿度.温度6h0c2l海天温湿度.湿度3......
  • 水库启闭机数据采集远程监控系统解决方案
    水库大坝作为防洪度汛的重要设施,其安全问题直接关系到人民群众的生命财产安全。因此,必须加强对大坝水库的安全管理,实现水库雨水情和安全监测的常态化管理,保障水库大坝的运行安全。 启闭机是用于各类大型给排水设施、水利水电工程的重要设备,用于控制各类大、中型铸铁闸门及钢制闸门......