alicloud_apm 1.0.0 copy "alicloud_apm: ^1.0.0" to clipboard
alicloud_apm: ^1.0.0 copied to clipboard

Alibaba Cloud EMAS APM Flutter plugin providing crash analysis, performance metrics, and native channel integrations for apps.

Alicloud APM For Flutter #

阿里云 APM Flutter 插件,提供 Dart 层崩溃分析并桥接 iOS/Android 原生 SDK。
Alibaba Cloud APM Flutter plugin with crash analysis.

特性 Features #

  • Android/iOS 原生接入,自带原生崩溃监控能力
  • 内置 CrashAnalysis:捕获 FlutterError、PlatformDispatcher、Zone、Isolate 及自定义异常
  • 支持用户标识、自定义维度、日志级别等配置
  • 可调异常策略与堆栈深度,支持自定义异常模型上报

环境要求 Requirements #

  • Flutter >=3.0.0 / Dart >=2.18.0
  • iOS 12+,CocoaPods 依赖 AlicloudApmCrashAnalysis (>=2.3.6)
  • Android minSdk 21,Gradle 8.x,依赖 com.aliyun.ams:alicloud-apm-crash-analysis:3.6.1
  • 仅 Android/iOS 会真正启动 SDK,Web/Desktop 等平台会注册 AlicloudApmFallback

安装 Installation #

  1. pubspec.yaml 添加依赖:
    dependencies:
      alicloud_apm: ^1.0.0
    
  2. Android 仓库:在宿主工程的 settings.gradle(或 build.gradle 中的 repositories)加入阿里云仓库:
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
        google()
        mavenCentral()
        maven { url "https://maven.aliyun.com/nexus/content/repositories/releases/" }
      }
    }
    
  3. iOS:执行 cd ios && pod install

快速开始 Quick Start #

import 'package:alicloud_apm/alicloud_apm.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Apm.start(
    const ApmOptions(
      appKey: 'your-app-key',          // iOS/Android 分别向阿里云EMAS控制台申请
      appSecret: 'your-app-secret',
      appRsaSecret: 'your-app-rsa-secret',
    ),
  );

  runApp(const MyApp());
}
  • 可使用 Apm.runGuarded(() => runApp(...))Apm.start 之前建立 guarded zone。
  • 启动后可随时调用 Apm.setUserId / Apm.setUserNick / Apm.setCustomProperty / Apm.setCustomProperties 更新用户信息与自定义维度。

Crash Analysis 使用 #

// Isolate 监听
final isolate = await Isolate.spawn(doWork, null);
CrashAnalysis.watchIsolate(isolate);

// 记录自定义异常
try {
  throw StateError('Something went wrong');
} catch (error, stack) {
  await CrashAnalysis.recordException(error, stackTrace: stack);
}

// 手动构造异常模型
await CrashAnalysis.recordExceptionModel(
  ExceptionModel(
    name: 'ManualException',
    reason: 'Triggered from settings page',
    stackTrace: [StackFrame(symbol: 'HomePage.onTap')],
  ),
);

// 自定义日志
await CrashAnalysis.log('Your log message');
  • 策略与堆栈深度:
    CrashAnalysisConfiguration.policy = ExceptionPolicy.reportImmediately; // disabled/record/reportImmediately
    CrashAnalysisConfiguration.stackTraceDepth = 64; // 0~256
    

运行时配置 Runtime Configuration #

await ApmConfiguration.setLoggerLevel(LogLevel.info); // error/warning/notice/info/debug

示例与调试 Examples #

  • 完整示例位于 example/,覆盖启动、崩溃触发、自定义异常模型、用户维度等使用场景。
  • 常用开发命令:flutter pub getflutter analyzeflutter test
  • 建议发布前在真机运行 example 验证 iOS/Android 崩溃上报链路。

许可 License #

Apache-2.0,详见 LICENSE

6
likes
135
points
66
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Alibaba Cloud EMAS APM Flutter plugin providing crash analysis, performance metrics, and native channel integrations for apps.

Homepage

Topics

#apm #monitoring #crash-analysis #alibaba-cloud #flutter-plugin

License

Apache-2.0 (license)

Dependencies

flutter, stack_trace

More

Packages that depend on alicloud_apm

Packages that implement alicloud_apm