本文介绍如何接入Android用户体验监控数据到全栈可观测应用。
前提条件
已创建2.1.0及以上版本的全栈可观测实例。具体操作,请参见创建全栈可观测实例。
步骤一:SDK集成
在Android Studio工程的App或Module级别的build.gradle文件中添加如下配置。
// opentelemetry 协议库
implementation(platform("io.opentelemetry:opentelemetry-bom:1.30.0"))
implementation("io.opentelemetry:opentelemetry-api")
implementation('io.opentelemetry:opentelemetry-sdk')
implementation("io.opentelemetry:opentelemetry-semconv:1.30.0-alpha")
// Android平台崩溃捕获
implementation 'io.github.aliyun-sls:aliyun-log-android-sdk:2.7.0@aar'
implementation 'io.github.aliyun-sls:android-crashreporter:1.0.0@aar'
implementation 'io.github.aliyun-sls:android-exporter-otlp:1.0.0@aar'
implementation 'io.github.aliyun-sls:android-otel-common:1.0.0@aar'
步骤二:权限配置
上报错误监控数据时需要申请网络权限,即需要在AndroidManifest.xml文件中添加以下权限申明。
<uses-permission android:name="android.permission.INTERNET" />
步骤三:初始化SDK
private void initCrashReporter() {
ConfigurationManager.getInstance().setProvider(
scope -> AccessKey.accessKey(
"${access-key-id}",
"${access-key-secret}",
"${access-key-token}"),
scope -> Workspace.workspace("https://${endpoint}", "${project}", "${instanceId}"),
scope -> {
Environment environment = Environment.environment();
// 设置环境信息,默认为default。一般情况下,建议debug版本设置为dev,release版本设置为pub。
environment.setEnv("default");
// 设置用户ID,可选。
//environment.setUid("123456789");
// 设置设备ID,可选。
//environment.setUtdid("your device id");
return environment;
}
);
// 一般情况下,建议debug版本设置为true,release版本设置为false。
final boolean debuggable = false;
// 完成SDK初始化。
CrashReporter.init(context, debuggable);
}
变量说明
变量 | 说明 | 示例 |
| 服务入口是访问一个Project及其内部数据的URL,日志服务提供私网域名和公网域名。更多信息,请参见服务入口。 | cn-hangzhou.log.aliyuncs.com |
| 日志服务Project名称,更多信息,请参见管理Project。 | test-project |
| 全栈可观测服务实例ID。更多信息,请参见创建实例。 | test-traces |
| AccessKey ID用于标识用户,更多信息,请参见访问密钥。 建议您遵循最小化原则,按需授予RAM用户必要的权限。关于授权的具体操作,请参见创建RAM用户及授权,RAM自定义授权示例。 | 无 |
| AccessKey Secret是用户用于加密签名字符串和日志服务用来验证签名字符串的密钥,必须保密。 | 无 |
${access-key-token} | AccessKey Token,仅当AccessKey是通过STS方式获取时才需要。 |