Cloud Native 19 min read

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.

Alibaba Cloud Observability
Alibaba Cloud Observability
Alibaba Cloud Observability
Mastering ARMS RUM: End‑to‑End User Experience Monitoring for Mobile & Web

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 SDK

Product 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'
end

Update pods:

pod install --repo-update

Import 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

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PerformanceiOSAndroidRUMARMSUser Experience Monitoring
Alibaba Cloud Observability
Written by

Alibaba Cloud Observability

Driving continuous progress in observability technology!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.