x_apm 2.0.0 copy "x_apm: ^2.0.0" to clipboard
x_apm: ^2.0.0 copied to clipboard

X APM

介绍 #

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;