title | description | caseStyle | supportLevel | sdk | categories | |
---|---|---|---|---|---|---|
Asset Bundle Instrumentation |
Learn more about the Sentry App Start Instrumentation for the Flutter SDK. |
camelCase |
production |
sentry.dart.flutter |
|
AssetBundle instrumentation provides insight into how long your app takes to load its assets, such as files.
The instrumentation starts a span from an active transaction that's bound to the scope of the following calls:
load
andloadString
- The SDK sets the spanoperation
tofile.read
.loadStructuredData
- The SDK sets the spanoperation
toserialize
.
Before starting, ensure:
Wrap the runApp
method with a DefaultAssetBundle
and SentryAssetBundle
.
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
await SentryFlutter.init(
(options) => options.dsn = '___PUBLIC_DSN___',
appRunner: () => runApp(
DefaultAssetBundle(
bundle: SentryAssetBundle(),
child: MyApp(),
),
),
);
}
final transaction = Sentry.startTransaction(
'asset-bundle-transaction',
'load',
bindToScope: true,
);
final text = await DefaultAssetBundle.of(context).loadString('assets/lorem-ipsum.txt');
await transaction.finish(status: const SpanStatus.ok());
To view the recorded transaction, log into sentry.io and open your project.
Clicking Performance will open a page with transactions, where you can select the just recorded transaction with the name asset-bundle-transaction
.
The loadStructuredData
is an opt-out feature. The following example shows how to disable it:
import 'package:sentry_flutter/sentry_flutter.dart';
SentryAssetBundle(enableStructuredDataTracing: false)