appdynamics_agent 24.4.0 appdynamics_agent: ^24.4.0 copied to clipboard
Flutter plugin to integrate AppDynamics Mobile Real User Monitoring with your app.
AppDynamics Flutter Plugin #
Extension of the AppDynamics SDK that allows you to instrument Flutter apps and receive analytics.
This plugin wraps the native SDKs and requires a valid AppDynamics mobile license.
Features #
The Flutter agent incorporates the following features:
- Network request tracking via the TrackedHTTPClient and RequestTracker classes.
- Automatic crash reporting and CrashReportCallback for extra crash report configuration.
- Screen tracking via NavigationObserver and WidgetTracker.
- Automatic detection and reporting of the app-is-not-responding cases (ANR).
- SessionFrame mechanism to track custom user flows in the app.
- Errors and custom metrics reporting.
- Automatic capture of screenshots and user touch-points (iOS only).
- Custom user data on network requests, crash reports, or sessions.
- Report breadcrumbs to track UI widgets or custom user interactions.
- Timers to track events that span across multiple methods.
- Mark method execution as info points.
- Split app instrumentation into multiple sessions.
- Automatically report device metrics (memory, storage, battery) and connection transition events.
Getting started #
Installation #
You can install the Flutter plugin via flutter
— more info on
the Installation tab.
$ flutter pub add appdynamics_agent
Extra configuration for Android apps: #
- Add the following changes to
android/build.gradle
:
dependencies {
classpath "com.appdynamics:appdynamics-gradle-plugin:22.2.2"
// ... other dependencies
}
- Apply the
adeum
plugin to the bottom of theandroid/app/build.gradle
file:
dependencies {
// ... project dependencies
}
// Bottom of file
apply plugin: 'adeum'
- Add the following permissions to your
AndroidManifest.xml
(usually inandroid/src/main/
):
<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>
Start instrumentation #
NOTE: Replace
<EUM_APP_KEY>
with your app key.
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, // optional, for better debugging.
collectorURL: "<COLLECTOR_URL>", // optional, mostly on-premises.
screenshotURL: "<SCREENSHOT_URL>" // optional, mostly on-premises.
);
await Instrumentation.start(config);
runApp(const MyApp());
}
Docs #
You can access pub.dev docs or check the official docs for extra customization of the agent.