flashcat_flutter_plugin 提供 RUM 能力。初始化后,SDK 会把应用中的视图、用户操作、网络请求、错误和崩溃事件上报到 Flashduty RUM,并使用 source: "flutter" 标识数据来源。
当前 SDK 版本为
0.1.0,仅支持 iOS 和 Android 平台(不支持 Flutter Web)。Dart 类名仍沿用上游 Datadog* 命名(如 DatadogSdk、DatadogConfiguration),仅包名 flashcat_flutter_plugin 与站点枚举 FlashcatSite 做了品牌化。v1 暂不包含 Logs、Session Replay、dio / gql / grpc 伴生包。前提条件
接入前,请先完成以下准备:- 在 Flashduty 控制台创建或选择一个 RUM 应用,并获取 Application ID 和 Client Token
- 确认应用可以访问
https://browser.flashcat.cloud/api/v2/rum - Flutter SDK ≥ 3.0,Dart ≥ 3.0;iOS 部署目标 ≥ 12.0,Android
minSdkVersion≥ 21 - 在应用启动早期(
main()中)完成 SDK 初始化
安装 SDK
在pubspec.yaml 中添加 flashcat_flutter_plugin,然后执行 flutter pub get。
flashcat_flutter_plugin 的 pub.dev 发布仍在确认中。为保证依赖可解析,下方示例使用 git 源。待正式发布到 pub.dev 后,可切换为 flashcat_flutter_plugin: ^0.1.0 的托管形式。pubspec.yaml
初始化 SDK
建议在main() 中、runApp 之前完成初始化。使用 DatadogSdk.runApp 启动应用时,SDK 会自动接管 FlutterError.onError 与 PlatformDispatcher.instance.onError,无需手动接线即可采集未处理异常。
main.dart
runApp 之外自行控制启动流程,也可以手动初始化,但需要自己接线错误采集:
采集页面视图
为MaterialApp(或 CupertinoApp)添加 DatadogNavigationObserver,SDK 会把 Navigator 的路由切换自动记录为 RUM 视图。
DatadogNavigationObserver 的构造函数使用命名参数 datadogSdk:。默认使用路由的 settings.name 作为视图名称,可以通过 viewInfoExtractor 回调自定义视图名或过滤路由。DatadogNavigationObserverProvider 配合 DatadogRouteAwareMixin 手动管理视图。
采集用户操作
在 RUM 配置中trackFrustrations 默认开启。用 RumUserActionDetector 包裹应用子树后,SDK 会自动识别点击等交互并生成 action 事件;你也可以手动记录操作。
采集网络请求
自动网络采集由独立的datadog_tracking_http_client 包提供,通过配置对象上的扩展方法 enableHttpTracking() 开启。它会全局替换 HttpClient,把 dart:io / http 请求记录为 RUM resource,并对 firstPartyHosts 命中的域名注入 W3C 追踪头。
关联用户信息
登录后,你可以设置当前用户。SDK 会把用户字段写入后续 RUM 事件的usr 对象。
上报错误
使用DatadogSdk.runApp 时未处理异常会被自动采集。你也可以手动上报捕获到的异常:
崩溃与错误堆栈需要上传符号文件才能还原到源码位置。Flutter symbols、iOS dSYM、Android mapping 文件通过 FlashCat CLI 上传,且上传时的
version 必须与 SDK 初始化中的 version 一致。详见 高级配置。验证接入
完成接入后,可以按以下方式验证:- 在初始化时临时设置
DatadogSdk.instance.sdkVerbosity = CoreLoggerLevel.debug,通过控制台日志查看 SDK 上报行为 - 运行应用并触发页面切换、点击、网络请求或手动错误
- 在 Flashduty RUM 应用中筛选
source:flutter,确认出现 view、action、resource 或 error 事件 - 对网络请求检查后端是否收到 W3C
traceparent
下一步
高级配置
配置采样率、隐私同意、事件过滤、追踪和符号文件上传。
兼容性
了解支持的平台、Flutter 版本、伴生包和当前限制。
数据收集
查看 SDK 自动和手动采集的事件类型、字段与上报行为。