Flutter应用性能监控插件appdynamics_agent的使用
Flutter应用性能监控插件appdynamics_agent的使用
简介
AppDynamics Flutter Plugin
是 AppDynamics SDK 的扩展,允许您对 Flutter 应用进行性能监控并接收分析数据。此插件封装了原生 SDK,并需要有效的 AppDynamics 移动许可证。
功能特性
- 网络请求跟踪:通过
TrackedHTTPClient
和RequestTracker
类。 - 自动崩溃报告:支持自定义崩溃报告配置。
- 屏幕跟踪:通过
NavigationObserver
和WidgetTracker
。 - ANR(应用程序无响应)检测和报告。
- 会话帧机制:跟踪自定义用户流。
- 错误和自定义指标报告。
- 自动捕获截图和用户触点(仅限 iOS)。
- 自定义用户数据:在网络请求、崩溃报告或会话中添加。
- 记录面包屑:跟踪 UI 组件或自定义用户交互。
- 计时器:跟踪跨越多个方法的事件。
- 方法执行标记。
- 多会话分割。
- 自动报告设备指标(内存、存储、电池)和连接转换事件。
快速开始
安装
您可以使用 flutter pub add appdynamics_agent
来安装插件。
对于 Android 应用,还需要额外的配置:
-
在
android/build.gradle
文件中添加依赖:dependencies { classpath "com.appdynamics:appdynamics-gradle-plugin:22.2.2" // ... other dependencies }
-
在
android/app/build.gradle
文件底部应用adeum
插件:dependencies { // ... project dependencies } // Bottom of file apply plugin: 'adeum'
-
在
AndroidManifest.xml
中添加权限:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myawesomepackage"> <!-- add these two permissions --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- other permissions --> <application> <!-- other settings --> </application> </manifest>
开始监控
在 main.dart
中启动监控:
import 'package:appdynamics_agent/appdynamics_agent.dart';
import 'package:flutter/material.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final config = AgentConfiguration(
appKey: "<EUM_APP_KEY>",
loggingLevel: LoggingLevel.verbose, // 可选,用于更好的调试。
collectorURL: "<COLLECTOR_URL>", // 可选,主要用于内部部署。
screenshotURL: "<SCREENSHOT_URL>" // 可选,主要用于内部部署。
);
await Instrumentation.start(config);
runApp(const MyApp());
}
示例代码
以下是一个完整的示例,展示了如何使用所有 Flutter agent 的功能:
/*
* Copyright (c) 2022. AppDynamics LLC and its affiliates.
* All rights reserved.
*
*/
/// Complete example with all Flutter agent's features.
import 'dart:async';
import 'package:appdynamics_agent/appdynamics_agent.dart';
import 'package:appdynamics_agent_example/routing/on_generate_route.dart';
import 'package:appdynamics_agent_example/routing/route_paths.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 设置全局错误处理程序
FlutterError.onError = Instrumentation.errorHandler;
PlatformDispatcher.instance.onError = (error, stack) {
final details = FlutterErrorDetails(exception: error, stack: stack);
Instrumentation.errorHandler(details);
return true;
};
// 自定义崩溃报告回调
crashReportCallback(List<CrashReportSummary> summaries) async {
// 处理崩溃报告
}
// 配置 Agent
AgentConfiguration config = AgentConfiguration(
appKey: "<EUM_APP_KEY>",
loggingLevel: LoggingLevel.verbose,
collectorURL: "https://www.<collector-url>.com",
screenshotURL: "https://www.<screenshots-url>.com",
crashReportCallback: crashReportCallback,
screenshotsEnabled: true,
crashReportingEnabled: true
);
// 启动监控
await Instrumentation.start(config);
// 运行应用
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: RoutePaths.settings,
onGenerateRoute: onGenerateRoute,
navigatorObservers: [NavigationObserver()]);
}
}
文档
您可以访问 pub.dev 文档 或查看 官方文档 获取更多关于代理自定义的信息。
通过以上步骤,您可以轻松地将 AppDynamics 的性能监控集成到您的 Flutter 应用中,确保应用的稳定性和性能得到全面监控。
更多关于Flutter应用性能监控插件appdynamics_agent的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用性能监控插件appdynamics_agent的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter应用中使用AppDynamics进行性能监控可以通过appdynamics_agent
插件来实现。以下是一个基本的代码案例,展示了如何在Flutter项目中集成和使用appdynamics_agent
插件。
1. 添加依赖
首先,你需要在你的pubspec.yaml
文件中添加appdynamics_agent
依赖。确保你的Flutter环境已经配置正确,并且网络连接正常,以便能够下载依赖包。
dependencies:
flutter:
sdk: flutter
appdynamics_agent: ^x.y.z # 请替换为实际的版本号
然后运行flutter pub get
来安装依赖。
2. 初始化AppDynamics Agent
在你的Flutter应用的入口文件(通常是main.dart
)中,初始化AppDynamics Agent。你需要提供你的AppDynamics应用密钥、服务名称和其他必要的配置信息。
import 'package:flutter/material.dart';
import 'package:appdynamics_agent/appdynamics_agent.dart';
void main() {
// 初始化AppDynamics Agent
AppDynamicsAgent.initialize(
applicationKey: 'your-app-key', // 替换为你的AppDynamics应用密钥
serviceName: 'your-service-name', // 替换为你的服务名称
// 其他可选配置参数
// ...
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter App with AppDynamics',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter App with AppDynamics'),
),
body: Center(
child: Text('Hello, AppDynamics!'),
),
);
}
}
3. 监控页面导航和自定义事件
你可以使用AppDynamics Agent来监控页面导航和记录自定义事件。例如,你可以在每个页面跳转时记录一个导航事件,或者在用户执行特定操作时记录一个自定义事件。
import 'package:flutter/material.dart';
import 'package:appdynamics_agent/appdynamics_agent.dart';
// ... (main函数和MyApp类保持不变)
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _navigateToSecondPage() {
// 记录页面导航事件
AppDynamicsAgent.recordCustomEvent(eventName: 'Navigate to Second Page');
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondPage()),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter App with AppDynamics'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Hello, AppDynamics!'),
SizedBox(height: 20),
ElevatedButton(
onPressed: _navigateToSecondPage,
child: Text('Go to Second Page'),
),
],
),
),
);
}
}
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Second Page'),
),
body: Center(
child: Text('Welcome to the Second Page!'),
),
);
}
}
在这个例子中,当用户点击按钮导航到第二个页面时,AppDynamicsAgent.recordCustomEvent
方法被用来记录一个自定义事件,事件名称为"Navigate to Second Page"。
注意事项
- 确保你已经正确配置了AppDynamics服务,并且你的应用密钥和服务名称是有效的。
appdynamics_agent
插件的具体API和使用方法可能会随着版本的更新而有所变化,请参考官方文档或插件的README文件获取最新信息。- 性能监控涉及到敏感数据和隐私,确保你遵守相关的法律法规和隐私政策。
这个代码案例展示了如何在Flutter应用中集成和使用appdynamics_agent
插件进行性能监控。根据你的具体需求,你可能需要进一步自定义和扩展这个基础实现。