注意:此版本文档已归档不再维护,请移步至 最新版本

性能管理(AppGallery Connect)快速入门

华为 AppGallery Connect(简称 AGC)性能管理(APM,App Performance Management)服务,提供分钟级应用性能监控能力,开发者可以在 AGC 后台查看和分析性能管理服务收集到的应用性能数据,从而全面了解所开发应用的性能特点,快速精准修复应用存在的性能问题,持续提升应用的用户体验。

主要功能

功能 说明
自动采集应用启动、应用屏幕、HTTP/HTTPS 网络请求等方面的性能数据 性能管理 APM SDK 能够自动采集应用启动、应用屏幕、HTTP/HTTPS 网络请求等关键性能数据。
1. 应用启动性能数据:记录应用启动(冷启动和热启动)时间。
2. 应用屏幕性能数据:记录应用屏幕渲染缓慢帧和冻结帧数量。
3. HTTP/HTTPS 网络性能数据:SDK 记录响应时长,成功率,响应大小等指标数据。
支持查看和分析应用性能数据,精准发现应用性能在哪些方面有改进空间 性能管理 APM 通过多个维度(版本号、国家/地区、手机类型、一级区域、系统版本、运营商、网络)向开发者展示应用的性能指标,帮助开发者快速了解应用在哪些方面可优化改进。
支持创建自定义跟踪记录,监控应用在特定场景下的性能 借助性能管理 APM SDK,开发者可以:
1. 创建自定义跟踪记录来监控应用在特定场景,如用户登录或者屏幕加载场景下的性能。
2. 为自定义跟踪记录添加指标(如登录次数)和属性(如登录是否成功)。

版本更新说明

  • 当前版本:0.5.2_1.3.1.300

    • 修复部分 bug。
  • v0.5.1_1.3.1

    • 集成华为 AGC APM 服务。

一键接入性能管理服务

开通服务

  • 使用 Cocos Creator 打开需要接入性能管理服务的项目工程。

  • 点击菜单栏的 面板 -> 服务,打开 服务 面板,选择 性能管理,进入服务详情页。然后点击右上方的 启用 按钮即可开通服务。详情可参考 服务面板操作指南

  • 如果华为后台的 性能管理 服务尚未开通,需登录 AppGallery Connect 后台,选择 我的项目,进入 质量 -> 性能管理 页面,点击 立即开通 按钮开通服务。

配置华为参数文件

大部分的华为相关项目都需要用到 agconnect-services.json 配置文件。若有新开通服务等操作,请及时更新该文件。

  • 登录 AppGallery Connect 后台,在 项目列表 -> 应用列表 中找到对应的应用。

  • 项目设置 页面的 应用 区域,点击 agconnect-services.json 下载配置文件。agconnect-services.json 文件在下载或者更新完成后,必须手动拷贝 到工程目录的 settings 目录下。

  • Cocos Creator v2.4.3 及以上版本,若 发布到 HUAWEI AppGallery Connect,开发者可直接在 构建发布 面板中选取下载或更新后的配置文件,不需要手动拷贝。

验证服务是否接入成功

  • 完成 性能管理 服务接入步骤后,无需改动代码,即可 发布到 Android 平台。请确保 构建发布 面板中的包名与华为后台设置的包名一致。

  • 工程运行到手机后,登录 AppGallery Connect 后台,打开对应项目,进入 质量 -> 性能管理,若能看到应用性能数据正常显示(通常会在 15 分钟内显示),即为接入成功。

Sample 工程

开发者可以通过 Sample 工程快速体验性能管理服务。

  • 点击性能管理服务面板中的 Sample 工程 按钮,Clone 或下载 HUAWEI Sample 工程,并在 Cocos Creator 中打开。

  • 参照上文开通性能管理并配置华为参数文件后,可通过 Creator 编辑器菜单栏的 项目 -> 构建发布 打开 构建发布 面板来构建编译工程。Creator v2.4.1 及以上版本,可 发布到 HUAWEI AppGallery Connect。Creator v2.4.1 以下的版本可 发布到 Android 平台

  • Sample 工程运行到手机后,点击首页的 APMS 按钮,即可进入功能界面进行测试。

开发指南

设置性能管理服务开关

enableCollection(enable: boolean): void

可参考 在应用客户端停用 文档。开关的默认值为打开(true),如果需要停用应用性能数据采集,可将开关设为关闭(false)。

应用客户端停用的级别 高于 AGC 远程配置停用。如用户在应用客户端停用性能监控,即使通过 AGC 远程配置打开性能监控开关,性能管理服务也不会进行性能数据采集。

参数说明

参数 说明
enable APM 服务开关。
true:打开,性能管理服务会采集性能监控数据。
false:关闭,性能管理服务不会采集性能监控数据。

示例

huawei.agc.apms.apmsService.enableCollection(true);

添加自定义跟踪记录(可选)

可参考 添加自定义跟踪记录 文档。自定义跟踪记录可用于监控开发者的应用在特定场景下的性能,如应用登录场景、应用页面长时间无响应场景等。性能管理插件封装后的方法,比起 SDK 原型方法,需要加入 name 参数,用于获取对象调用。若当前名称的对象不存在,则会再新建一个对象。

启动自定义跟踪记录

startCustomTrace(name: string): void

可参考 启动自定义跟踪记录 文档。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。

示例

huawei.agc.apms.apmsService.startCustomTrace("traceID");

停止自定义跟踪记录

stopCustomTrace(name: string): void

可参考 停止自定义跟踪记录 文档。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。

示例

huawei.agc.apms.apmsService.stopCustomTrace("traceID");

添加自定义属性

putCustomTraceProperty(name: string, propertyName: string, propertyValue: string): void

设置自定义跟踪记录属性名称和属性值。每个 CustomTrace 实例最多只能设置 5 个自定义属性。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不超过 40 字符。
propertyValue 自定义属性值,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不超过 100 字符。

示例

let traceID = "testTrace";
let pName = "product";
let pValue = "food";

huawei.agc.apms.apmsService.putCustomTraceProperty(traceID, pName, pValue);

移除自定义属性

removeCustomTraceProperty(name: string, propertyName: string): void

从 CustomTrace 实例中移除自定义属性。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不超过 40 字符。

示例

let traceID = "testTrace";
let pName = "product";

huawei.agc.apms.apmsService.removeCustomTraceProperty(traceID, pName);

获取自定义属性值

getCustomTraceProperty(name: string, propertyName: string): string

可参考 获取自定义属性值 文档。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不超过 40 字符。

示例

let traceID = "testTrace";
let pName = "product";
let propertValue = huawei.agc.apms.apmsService.getCustomTraceProperty(traceID, pName);
console.log("pValue = ", propertValue);

增加自定义跟踪记录指标

incrementCustomTraceMeasure(name: string, measureName: string, measureValue: number): void

增加自定义跟踪记录指标的指标值。如果指标不存在,将创建一个新指标。如果自定义跟踪记录未启动或已停止,接口不生效。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
measureName 自定义跟踪记录指标名称。
measureValue 自定义跟踪记录指标值,对应 Java 侧 long 型数值。

示例

let traceID = "testTrace";
let mName = "MeasureName";
let mValue = 12000;

huawei.agc.apms.apmsService.incrementCustomTraceMeasure(traceID, mName, mValue);

获取自定义跟踪记录指标值

getCustomTraceMeasure(name: string, measureName: string): string

可参考 获取自定义跟踪记录指标值 文档。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
measureName 自定义跟踪记录指标名称。

示例

let traceID = "testTrace";
let mName = "MeasureName";

let measureValue = huawei.agc.apms.apmsService.getCustomTraceMeasure(traceID, mName);
console.log("mValue = ", measureValue);

添加自定义跟踪记录指标

putCustomTraceMeasure(name: String, measureName: String, measureValue: number): void

添加自定义跟踪记录指标。如果指标已经存在,则更新指标的值。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。
measureName 自定义跟踪记录指标名称。
measureValue 自定义跟踪记录指标值,对应 Java 侧 long 型数值。

示例

let traceID = "testTrace";
let mName = "MeasureName";
let mValue = 12000;

huawei.agc.apms.apmsService.putCustomTraceMeasure(traceID, mName, mValue);

获取自定义跟踪记录的所有属性

getCustomTraceProperties(name: string): string

获取自定义跟踪记录的所有属性。返回值为 JSON 对象,存放所有属性的键值对。

参数说明

参数 说明
name 自定义跟踪记录名称,只能包含中文、字母(不区分大小写)、数字和下划线,且长度不能超过 100 字符,所有方法需要根据该名称获取对象调用。若当前名称的对象不存在,则会再新建一个对象。

示例

let traceID = "testTrace";
let tProp = huawei.agc.apms.apmsService.getCustomTraceProperties(traceID);
console.log("tProp = ", JSON.stringify(tProp));

添加针对特定网络请求的监控指标(可选)

可参考 添加针对特定网络请求的监控指标 文档。虽然 APM 会自动采集应用中大多数网络请求性能数据,但如果采用的是非 URLConnection 或非 Okhttp 框架,还是有少量网络请求 APM 无法自动采集。此时,可以按照下列方式采集网络请求性能数据。另外,您还可以对特定网络请求添加自定义属性。

创建网络请求指标实例

initNetworkMeasure(url: string, httpMethod: string): string

针对每个网络请求,创建网络请求指标实例,用于采集网络性能数据。返回值即为下方各方法所需的 id 参数

参数说明

参数 说明
url 网络请求 URL 地址
httpMethod 请求方法,仅支持 GET、PUT、POST、DELETE、HEAD、PATCH、OPTIONS、TRACE 和 CONNECT 方法。

示例

let id = huawei.agc.apms.apmsService.initNetworkMeasure(url, "POST");
console.log("createNetworkMeasure, id = ", id);

设置请求开始时间

startNetworkMeasure(id: string): void

可参考 设置请求开始时间 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。

示例

huawei.agc.apms.apmsService.startNetworkMeasure(id);

设置请求结束时间

stopNetworkMeasure(id: string): void

可参考 设置请求结束时间 文档,并上报网络请求指标及自定义属性数据。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。

示例

huawei.agc.apms.apmsService.stopNetworkMeasure(id);

设置请求的响应码

setNetworkMeasureStatusCode(id: string, statusCode: number): void

可参考 设置请求的响应码 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
statusCode 请求的响应码

示例

huawei.agc.apms.apmsService.setNetworkMeasureStatusCode(id, 500);

设置请求体大小

setNetworkMeasureBytesSent(id: string, length: number): void

可参考 设置请求体大小 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
length 请求体大小,对应 Java 侧 long 型数值。

示例

huawei.agc.apms.apmsService.setNetworkMeasureBytesSent(id, 10000);

设置响应体大小

setNetworkMeasureBytesReceived(id: string, length: number): void

可参考 设置响应体大小 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
length 响应体大小,对应 Java 侧 long 型数值。

示例

huawei.agc.apms.apmsService.setNetworkMeasureBytesReceived(id, 10000);

设置响应体 contentType 类型

setNetworkMeasureContentType(id: string, contentType: string): void

可参考 设置响应体 contentType 类型 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
contentType 响应体 contentType 类型

示例

huawei.agc.apms.apmsService.setNetworkMeasureContentType(id, "contentType1");

设置网络请求的自定义属性名称和属性值

putNetworkMeasureProperty(id: string, propertyName: string, propertyValue: string): void

可参考 设置网络请求的自定义属性名称和属性值 文档。每个 NetworkMeasure 实例最多只能设置 5 个自定义属性。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不能超过 40 字符。
propertyValue 自定义属性值,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不能超过 100 字符。

示例

let pName = "propName";
let pValue = "12000";
huawei.agc.apms.apmsService.putNetworkMeasureProperty(id, pName, pValue);

从 NetworkMeasure 实例中移除已存在属性

removeNetworkMeasureProperty(id: string, propertyName: string): void

可参考 从 NetworkMeasure 实例中移除已存在属性 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不能超过 40 字符。

示例

let pName = "propName";
huawei.agc.apms.apmsService.removeNetworkMeasureProperty(id, pName);

从 NetworkMeasure 实例中获取所有属性

getNetworkMeasureProperties(id: string): string

可参考 从 NetworkMeasure 实例中获取所有属性 文档,返回 JSON 对象。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。

示例

let mProp = huawei.agc.apms.apmsService.getNetworkMeasureProperties(id);
console.log("mProp = ", JSON.stringify(mProp));

获取自定义属性值

getNetworkMeasureProperty(id: string, propertyName: string): string

可参考 获取自定义属性值 文档。

参数说明

参数 说明
id initNetworkMeasure 方法返回的对象 id,同时可能有多个 id 对象存在。其他方法均需要传入此 id。
propertyName 自定义属性名称,只能由中文、字母(不区分大小写)、数字和下划线组成,且长度不能超过 40 字符。

示例

let pName = "propName";
let nMeasure = huawei.agc.apms.apmsService.getNetworkMeasureProperty(id, pName);
console.log("nMeasure = ", nMeasure);

API 文档

详细的功能接口和 API 说明,请参考 性能管理 - API 文档

条与 "" 相匹配的结果

    没有与 "" 匹配的结果