ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

本文涉及的产品
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 阿里云 ARMS 用户体验监控(RUM)推出了针对原生鸿蒙应用的 SDK。SDK 使用 ArkTS 语言开发,支持页面采集、资源加载采集、异常采集及自定义采集等功能,能够全面监控鸿蒙应用的表现。集成简单,只需几步即可将 SDK 接入项目中,为鸿蒙应用的开发者提供了强有力的支持。

作者:杨兰馨(楠瑆)


01 背景


2024 年 10 月 22 日,华为正式发布了原生鸿蒙操作系统(HarmonyOS NEXT)。原生鸿蒙实现了系统底座全部自研,系统的流畅度、性能、安全特性等方面显著提升,也实现了操作系统的自主可控。目前,已有超过 15000 个鸿蒙原生应用和元服务上架,为了进一步优化用户的使用体验,提升开发者效率,阿里云 ARMS 用户体验监控(Real User Monitoring,RUM)推出用于监控原生鸿蒙应用的 SDK,成为原生鸿蒙开发者的首选辅助工具。


02 功能介绍


ARMS RUM 产品覆盖浏览器、小程序、APP、PC 等客户端环境,观测与分析用户行为、页面性能,精准把握用户体验。本次发布的接入原生鸿蒙应用的 SDK 使用 ArkTS 语言进行开发,数据采集功能完备,在用户使用过程中可以对鸿蒙应用全方位监控。


2.1 页面采集

支持原生页面Webview 页面采集。产品统计了页面访问量、平均加载耗时、缓慢访问占比、平均停留时间、访问用户数等详细指标,并且按照地域、App 版本、联网方式、设备、操作系统、运营商等维度统计页面访问的分布。进一步,在页面明细模块,展示访问当前页面的设备品牌、型号、访问时间、IP 地址等信息,并且按照页面维度,展示在当前页面发生的点击、资源加载、异常等事件。针对 Webview 页面,RUM 支持对 Webview 页面错误、页面请求、页面路由切换进行采集。

image.png

image.png


2.2 资源加载采集

RUM 原生鸿蒙 SDK 会对所有类型的资源加载采集,具体包含 image、script、css、navigation 等静态资源加载和 socket、websocket、api 等动态资源加载。支持网络请求采集,具体包含 RCP、HTTP、WebSocket、TCPSocket、UDPSocket。针对资源加载,RUM 统计了加载次数、平均加载耗时、错误次数、错误率、请求方法等指标,并且在资源详情页面,展示了 DNS 查询、TCP 链接、SSL 建连、请求响应、内容传输、DOM 解析、资源加载等资源加载性能指标。

image.png


2.3 异常采集

异常统计是开发者最为关注的一个模块,RUM 原生鸿蒙 SDK 支持对 JS 崩溃、CPP 崩溃、APP Freeze、卡顿等类型异常的采集。产品对异常次数、崩溃率、影响会话数、影响用户数、异常分布等指标进行分析。

image.png

点击异常名称进入异常明细页面,与资源加载和页面访问类似,异常模块也按照地域、App 版本、联网方式、设备、操作系统、运营商等维度进行异常次数统计,并且展示了 Top50 的异常用户明细。比较关键的是,产品展示了具体的异常堆栈信息,并且提供了异常解析功能。在开发者上传对应的 Soucemap / 符号表 so 文件后(如果在应用构建时开启混淆构建,还需额外上传反混淆映射表文件),点击解析堆栈按钮,可以得到对应的解析结果,帮助开发者定位异常产生的位置,从而快速优化代码。

image.png

image.png


2.4 自定义采集

RUM 原生鸿蒙 SDK 支持开发者根据自身业务需求设定自定义事件、自定义日志的上报。自定义事件支持对事件名称、事件分组、属性值、以及自定义属性的配置。自定义日志支持对日志类型、日志内容、日志自定义属性的配置。


03 如何开始


只需几个简单步骤,即可将鸿蒙用户体验监控SDK接入您的项目之中:


3.1 集成 SDK

第一步:鸿蒙 RUM SDK 已发布到第三方仓库中,在 Terminal 窗口中,切换到模块级目录,执行如下命令安装三方包,DevEco Studio 会自动在该模块的 oh-package.json5 中自动添加三方包依赖。


cd path/to/your/project
ohpm config set registry https://ohpm.openharmony.cn/ohpm/
ohpm install @alibabacloud_rum/harmony_sdk


第二步:Rebuild 项目,确保配置生效。


3.2 接入 SDK

配置授权信息

检查应用程序 module.json5 配置文件,确保已引入如下授权:


ohos.permission.INTERNET            发送网络数据 
ohos.permission.GET_NETWORK_INFO    获取网络状态信息


配置 ohmurl 规则

将工程级或模块级 build-profile.json5 中的 useNormalizedOHMUrl 修改为 true, 若没有该配置项请手动添加。


{
  "app" : {
    "products": [{
      "buildOption": {
          "strictMode": {
            "useNormalizedOHMUrl": true
          }
        }
    }]
  }
}


初始化 SDK

在入口 entry module 自定义 AbilityStage 中的 onCreate 函数中,添加如下代码:


AlibabaCloudRum.withAppID("<your appid>") // AppID 在创建 RUM 应用时获取
      .withConfigAddress("<your config address") // ConfigAddress 在创建 RUM 应用时获取
      .start(this.context.getApplicationContext());


代码示例:


onCreate(): void {
  this.initAlibabaCloudRumSdk();
}

private initAlibabaCloudRumSdk() {
  AlibabaCloudRum.withAppID("<your appid>")
    .withConfigAddress("<your config address")
    .start(this.context.getApplicationContext());
}


更多的详细配置,详见官方接入文档[1],接口说明[2],SDK 的版本说明[3]


04 结语


原生鸿蒙系统是我国首个实现全栈自研的操作系统,全面突破操作系统核心技术,真正实现了国产操作系统的自主可控。在这样的背景下,RUM 推出的用于监控原生鸿蒙的 SDK 为鸿蒙应用的开发者提供了更进一步的便利,对衡量用户体验关键的指标进行全面的分析和追踪。目前阿里云用户体验监控 SDK 已经在华为 SDK 生态市场正式上架,详情可以点击此处了解。


相关文档:

[1] 接入文档

https://help.aliyun.com/zh/arms/user-experience-monitoring/access-harmonyos-application

[2] SDK 配置文档

https://help.aliyun.com/document_detail/2859795.html

[3] SDK 版本说明

https://help.aliyun.com/document_detail/2859794.html

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
7月前
|
Java API 开发工具
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
跨境支付公司和Docusign进行集成时,碰到问题时的解决方案。分别用SDK和API集成后的各自使用体验。
109 2
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
|
7月前
|
JSON Serverless API
Serverless 应用引擎常见问题之通过SDK修改调度器报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
7月前
|
开发工具 Android开发
应用研发平台EMAS的用户反馈SDK确实使用了WebView
应用研发平台EMAS的用户反馈SDK确实使用了WebView
82 6
|
开发工具 Python
Django使用支付宝SDK完整网站应用支付。
Django使用支付宝SDK完整网站应用支付。
338 0
|
4月前
|
开发工具 数据安全/隐私保护 Python
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
|
5月前
|
NoSQL 开发工具 数据库
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
|
6月前
|
编解码 运维 Serverless
Serverless 应用引擎产品使用合集之如何使用SDK
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之如何使用PHP SDK调用函数并在请求体(body)中传递字符串
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
116 4
|
7月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数中sdk可以被中层引用如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。