ARMS用户体验监控(Real User Monitoring,RUM)专注于对Web场景、App移动应用场景和小程序场景的监控,以用户体验为切入点,完整再现用户操作过程,从页面打开速度(测速)、请求服务调用(API)和故障分析(JS错误、网络错误等)稳定性(JS错误、崩溃、ANR 等)方面监测前端应用性能表现情况,并支持日志数据查询,帮助您快速跟踪定位故障原因,提升用户体验。
用户体验监控以用户会话作为用户体验分析切入点,追踪用户与应用交互过程中的错误、缓慢、异常问题。通过网络分析与ARMS应用监控联动,实现端到端分析,帮助您打通问题分析链路。
ARMS用户体验监控提供PC平台应用的监控能力,当前提供跨平台C/C++ API动态库。本文介绍Windows和macOS应用如何通过C/C++ SDK接入用户体验监控。
支持的平台和架构
C/C++ SDK当前支持Windows和macOS平台,PC应用需要满足以下平台要求:
平台 | 系统版本 | 架构 |
Windows | Win7 + | x86/x86_64 |
macOS | 10.12 + | x86_64/arm64 |
步骤一:创建应用
- 登录ARMS控制台。
-
在左侧导航栏选择用户体验监控 > 应用列表,并在顶部菜单栏选择目标地域。
-
在应用列表页面单击添加应用。
-
在创建应用面板单击Windows或macOS。
-
在Windows或macOS面板输入应用名称和描述,然后单击创建。
创建成功后,当前应用将会自动生成对应的ConfigAddress(上报地址)和AppID。
步骤二:接入SDK
1. 下载SDK
平台 | 架构 | 产物 |
Windows |
| https://rum-sdk.oss-cn-hangzhou.aliyuncs.com/native/AlibabaCloud_RUM_Windows_0.1.0.zip |
macOS | fat binary(x86_64/arm64) | https://rum-sdk.oss-cn-hangzhou.aliyuncs.com/native/AlibabaCloud_RUM_macOS_0.1.0.zip |
SDK说明:
-
功能支持:PV/UV统计、网络服务、自定义事件上报。
-
产物形式:
-
macOS:
dylib
动态库 -
Windows:
dll
动态库
-
2. 初始化SDK
-
添加头文件依赖。
Windows/macOS平台都需要引入头文件。
#include "alibabacloud_rum.h"
-
初始化SDK。
alibabacloud_rum_options_t *options = alibabacloud_rum_options_new(); // (必须) ConfigAddress创建RUM应用时获取。 alibabacloud_rum_options_set_config_address(options, "<your config address>"); // (必须) AppId,创建应用时获取。 alibabacloud_rum_options_set_app_id(options, "<your appId>"); // (必须) 设置应用版本号。 alibabacloud_rum_options_set_app_version(options, "0.1.0"); // (可选) 设置环境,用于区分开发环境、线上环境,默认为prod。 alibabacloud_rum_options_set_env(options, "dev"); // (可选) 设置debug等级,接入初期可以先打开调试模式,上线后务必关闭调试模式。 alibabacloud_rum_options_set_debug_level(options, ALIBABACLOUD_RUM_LEVEL_ALL); // (必须) 完成SDK初始化。 alibabacloud_rum_init(options);
SDK相关配置函数说明:
函数
是否必填
含义
默认值
alibabacloud_rum_options_set_config_address
必填
配置ConfigAddress。
-
alibabacloud_rum_options_set_app_id
必填
配置AppID。
-
alibabacloud_rum_options_set_env
可选
配置应用环境,用于区分开发、线上环境。
prod
alibabacloud_rum_options_set_app_version
必填
配置应用版本号。
-
alibabacloud_rum_options_set_debug_level
可选
Debug等级如下:
-
ALIBABACLOUD_RUM_LEVEL_FATAL
-
ALIBABACLOUD_RUM_LEVEL_ERROR
-
ALIBABACLOUD_RUM_LEVEL_WARNING
-
ALIBABACLOUD_RUM_LEVEL_INFO
-
ALIBABACLOUD_RUM_LEVEL_DEBUG
-
ALIBABACLOUD_RUM_LEVEL_TRACE
-
ALIBABACLOUD_RUM_LEVEL_ALL
ALIBABACLOUD_RUM_LEVEL_INFO
alibabacloud_rum_set_username
可选
配置用户名称,需要在SDK完成初始化之后调用。
-
-
接入验证
应用运行后,出现[AlibabaCloud-RUM] [INFO] [Init] alibabacloud rum init success.
日志即表示SDK初始化成功。
日志示例:
2024-07-25 17:27:27.647 [AlibabaCloud-RUM] [INFO] [Init] alibabacloud rum init success.
上报自定义事件
SDK支持上报自定义事件,示例如下:
alibabacloud_rum_event_t *event = alibabacloud_rum_event_new("test", "mytest");
// 配置统计指标,一般设置为 1 即可
alibabacloud_rum_event_set_value(event, 123.3456);
// 配置事件分组,默认为default
alibabacloud_rum_event_set_group(event, "custom");
// 上报自定义事件
alibabacloud_rum_report_event(event);
自定义事件相关配置函数说明:
函数 | 含义 |
alibabacloud_rum_event_new | 构造alibabacloud_rum_event_t结构体。 |
alibabacloud_rum_event_free | 释放alibabacloud_rum_event_t结构体,alibabacloud_rum_report_event函数会自动调用。 |
alibabacloud_rum_event_set_value | 配置Metric Value,默认为1。 |
alibabacloud_rum_event_set_group | 配置事件分组,默认为default。 |
alibabacloud_rum_report_event | 上报自定义事件。 |
停用SDK
如果您不再需要使用SDK监控您的PC应用,可以调用以下SDK接口停用SDK。
调用以下接口后,SDK的实例会被销毁,并停止所有功能和回收内存。
alibabacloud_rum_close();
重要
调用此接口时可能会发生短暂阻塞。SDK退出时会涉及回收操作,以及后台任务的等待操作,SDK会等待后台异步任务结束后才会退出。