数据上报验证

最近更新时间:2025-10-10 16:35:52

我的收藏

前提条件

Dart 异常、启动性能监控指标、卡顿指标、联网上报全都需要配置开启,且支持采样。在接入时,请务必确认功能的开启情况符合您的预期。
需要在 终端性能监控 Pro > 应用配置 > SDK 配置 页面创建配置任务。有关配置功能的详细说明请参见 SDK 配置
在接入期间,建议将所有监控项的采样率调整为1.0(即 sample_ratio 和 event_sample_ratio),方便验证数据上报。接入完成后,可再根据需要调整采样率:开发任务打开所有的监控项,灰度阶段按需采样,正式发布根据需要降低采样。
检查待接入的产品是否已经 购买并绑定 生效中的资源包。如果产品没有绑定生效中的资源包,该产品将无法上报数据。

错误监控

模拟异常

参考以下示例代码,可以模拟各类异常。
class MyCrashTestApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('APM异常捕获测试')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 1. 同步异常测试
ElevatedButton(
child: const Text('触发同步异常'),
onPressed: () => _throwSyncException(),
),
const SizedBox(height: 20),
// 2. 异步异常测试
ElevatedButton(
child: const Text('触发异步异常'),
onPressed: () => _throwAsyncException(),
),
const SizedBox(height: 20),
// 3. Widget构建异常
ElevatedButton(
child: const Text('触发Widget异常'),
onPressed: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => FaultyWidget())
),
),
],
),
),
),
);
}

// 同步异常示例
void _throwSyncException() {
// 模拟业务逻辑错误
final list = [];
print(list[0]); // 越界访问
}

// 异步异常示例
Future<void> _throwAsyncException() async {
await Future.delayed(Duration(milliseconds: 500));
// 模拟异步错误
dynamic nullObject = null;
print(nullObject.length); // NoSuchMethodError
}
}

// 会抛出异常的Widget
class FaultyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
// 故意构造一个会抛出异常的build方法
if (DateTime.now().millisecond % 2 == 0) {
return Container(color: Colors.blue);
}
throw Exception('Widget构建时随机异常');
}
}

检查数据上报

错误上报后,在 错误 > 问题列表 看到上报的问题,点击进入问题详情,即可查看上报详情。

卡顿指标

只要正确设置了生命周期监听,就会有卡顿数据,详细指引可参见 API 说明-监听生命周期。您可在 卡顿 页面查看数据。


启动监控

只要正确设置了启动监控埋点,就会有启动数据,详细指引可参见 API 说明-设置启动监控埋点。您可在 启动 页面查看数据。