介绍
XPM SDK 能够全面监控Flutter端线上稳定性和性能的运行情况。目前SDK提供以下功能
- 页面FPS监控
- 网络监控
- 页面性能监控(FP、FCP、FMP)
- Flutter/Dart 错误监控
使用
import 'package:x_apm/x_apm.dart';
void main() {
XApmManager.instance.init(
config: ApmConfig(
//是否使用性能监控
enable: true,
handlers: [FloatWindowHandler(globalKey)],
endpoint:
"https://hyperf.debug.591.com.hk/api/flutter/apm/save-record"));
//开启网络监控
HttpOverrides.global = ApmHttpOverrides();
//错误收集
XApm(appRunner: () => runApp(const MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
navigatorKey: globalKey,
routes: generateRoutes(),
theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: false),
//添加路由监控
navigatorObservers: [ApmNavigatorObserver.instance],
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
配置
X-APM支持以下配置选项
///是否启用
final bool enable;
///打印器列表
final List<PrintlnHandler> handlers;
///上传地址
final String endpoint;
///用于外界筛选需要上传的数据,返回true则进行上传,false不上传
final bool Function(Data data)? filterFunction;
///用于外界对数据进行转换
final Transformer Function() transformer;
///用于外界对数据进行发送
final Sender Function() sender;
///用于外界自定义http请求
final http.Client Function() httpClient;
///发送数据的网络策略
final NetworkType networkTypePolicy;
///两次数据发送的最小时间间隔,单位毫秒
final int flushInterval = 15;
///本地缓存日志的最大条目数
final int flushBulkSize = 15;