Mastering ARMS RUM: End‑to‑End User Experience Monitoring for Mobile & Web
This guide introduces Alibaba Cloud ARMS RUM, explains its core capabilities, walks through Android and iOS SDK integration, permission and ProGuard setup, and demonstrates how to analyze sessions, resources, API calls, custom events, and logs to optimize user experience across cloud‑native applications.
Introduction
With the continuous evolution of mobile internet and the rise of an all‑connected era, users spend more time on Android, iOS apps, mini‑programs, H5 games, and web pages, increasing the complexity of UX scenarios and the demand for cross‑device performance monitoring. Analyzing user source, navigation paths, stay duration, and performance is essential for product optimization and user satisfaction.
ARMS User Experience Monitoring Overview
ARMS RUM (Real‑User Monitoring) is part of Alibaba Cloud Application Real‑time Monitoring (ARMS). It covers Web/H5, mini‑programs, Android, iOS, Flutter, ReactNative, Windows, macOS, etc. After integrating the SDK, it automatically collects page performance, resource loading, API calls, exceptions, freezes, user actions, system info, and supports custom event, log, and exception reporting. Core functions include:
Full‑stack traceability with per‑hop details for slow calls.
Session trajectory recording for root‑cause analysis.
Comprehensive exception collection with stack parsing.
Multi‑dimensional page performance statistics.
Full resource and API request capture with slow‑resource filtering.
Custom data reporting for enhanced product analysis.
Site‑wide dashboard for traffic, performance, exception, and regional distribution.
Configurable alerts based on dynamic thresholds.
Data exploration with multi‑dimensional statistics.
Open data storage: details in SLS, metrics in Prometheus.
Preparation
Activate the ARMS service (see 1 ).
Create an application for the target platform (Android, iOS, Flutter, RN, Web, mini‑program, PC, etc.) (see 2 ).
Product Integration – Android
Recommended integration via Maven.
buildscript {
repositories {
mavenLocal()
google()
mavenCentral()
gradlePluginPortal()
}
dependencies {
// Import ARMS RUM plugin
classpath "com.aliyun.rum:alibabacloud-android-rum-plugin:0.3.3"
}
}Enable the plugin and add the SDK dependency in the app module:
// Enable ARMS RUM plugin
apply plugin: "com.aliyun.rum"
dependencies {
// Import ARMS RUM SDK
implementation "com.aliyun.rum:alibabacloud-android-rum-sdk:0.3.3"
}Initialize the SDK in Application.onCreate() (or after user consent):
import com.alibabacloud.rum.AlibabaCloudRum;
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AlibabaCloudRum.withAppID("<your appid>")
.withConfigAddress("<your config address>")
.start(getApplicationContext());
}
}Permission configuration (AndroidManifest.xml):
<!-- Required -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Optional -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>ProGuard rules:
# ProGuard configurations for Aliyun ARMS RUM SDK
-keep public class com.openrum.** { *; }
-keep public class openrum.** { *; }
-keep public class com.alibabacloud.rum.** { *; }
-dontwarn com.openrum.**
-dontwarn openrum.**
# End Aliyun ARMS RUM SDKProduct Integration – iOS
Recommended integration via CocoaPods.
source 'https://github.com/CocoaPods/Specs.git'
target 'iOSDemo' do
# Import ARMS RUM SDK
pod 'AlibabaCloudRUM', '0.3.1'
endUpdate pods:
pod install --repo-updateImport the SDK in AppDelegate (Objective‑C or Swift) and start it:
// Objective‑C
@import AlibabaCloudRUM;
[AlibabaCloudRUM setConfigAddress:@"<your config address>"];
[AlibabaCloudRUM startWithAppID:@"<your appId>"];
// Swift
import AlibabaCloudRUM
AlibabaCloudRUM.setConfigAddress("<your config address>")
AlibabaCloudRUM.start("<your appId>")Advanced Analysis Scenarios
Session Analysis
Sessions represent a series of user interactions. By locating a session ID from an OOM exception, you can trace the exact user journey that led to the crash.
Resource & API Analysis
Resource loading and API request performance are visualized with trend, slow/error analysis, and metric statistics. Filters by app, device, system, user, etc., allow quick inspection of specific resources.
Embedded H5 Page Monitoring
ARMS RUM collects performance data from embedded H5 pages on Android/iOS, linking JavaScript errors, resources, and API calls to the native session via SessionId.
JavaScript Exception Analysis
Navigate to Exception Statistics → JS Errors to view and filter JavaScript exceptions by device, system, or user, then drill down to stack traces and associated sessions.
End‑to‑End Link Tracing
In e‑commerce scenarios, the end‑to‑end tracing records the full request path across client and backend services, helping pinpoint latency or failure nodes.
Supported protocols: SkyWalking v3 and OpenTelemetry.
Custom User Information
Set extra user info to correlate data with real users.
AlibabaCloudRum.setUserExtraInfo(new HashMap<String, Object>() {{
put("shop_id", "hz_xh_234123");
put("shop_name", "Alibaba Cloud Store 33333");
}}); [AlibabaCloudRUM setUserExtraInfo:@{ @"shopId": @12312313, @"shopName": @"云谷店" }];Custom Exceptions
Report business‑logic exceptions for faster debugging.
AlibabaCloudRum.setCustomException("exceptionName-default", "exceptionCauseBy-default", "exceptionErrorDump-default"); [AlibabaCloudRUM setCustomException:@"exceptionName-default" causeBy:@"exceptionCauseBy-default" errorDump:@"exceptionErrorDump-default"];Custom Events
Record business events such as order submissions.
HashMap<String, Object> mapKv = new HashMap<>();
mapKv.put("shop_id", "hz_xh_234123");
mapKv.put("order_id", "12397495850");
AlibabaCloudRum.setCustomEvent("order-submit", "order", 123.34, mapKv); [AlibabaCloudRUM setCustomEvent:@"order-submit" group:@"order" value:123.34f info:@{ @"shop_id": @"hz_xh_234123", @"order_id": @"12397495850" }];Custom Logs
Log detailed business information with severity levels.
HashMap<String, Object> mapKv = new HashMap<>();
mapKv.put("shop_id", "hz_xh_234123");
mapKv.put("order_id", "12397495850");
AlibabaCloudRum.setCustomLog("submit order info: order_id: 1312344933", "order-submit", "order snapshots info", "INFO", mapKv); [AlibabaCloudRUM setCustomLog:@"submit order info: order_id: 1312344933" name:@"order-submit" snapshots:@"order snapshots info" level:@"INFO" info:@{ @"shop_id": @"hz_xh_234123", @"order_id": @"12397495850" }];Conclusion
The article presented ARMS RUM’s core features and best practices for common scenarios. By integrating ARMS RUM, developers gain fine‑grained, real‑time insights across mobile, web, and mini‑programs, enabling continuous performance optimization and improved user retention.
Related Links
Activate ARMS: https://help.aliyun.com/zh/arms/getting-started/activate-arms
Quick Start: https://help.aliyun.com/zh/arms/user-experience-monitoring/quick-start/
SDK Configuration: https://help.aliyun.com/zh/arms/user-experience-monitoring/sdk-configuration/
Web/H5 Integration: https://help.aliyun.com/zh/arms/user-experience-monitoring/access-web-h5-applications
Mini‑Program Integration: https://help.aliyun.com/zh/arms/user-experience-monitoring/access-applet
Mobile Integration: https://help.aliyun.com/zh/arms/user-experience-monitoring/access-mobile-applications
PC Integration: https://help.aliyun.com/zh/arms/user-experience-monitoring/access-pc-platform-application
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Alibaba Cloud Observability
Driving continuous progress in observability technology!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
