Asset Bundle Instrumentation
Learn more about the Sentry App Start Instrumentation for the Flutter SDK.
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
.
Copied
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
await SentryFlutter.init(
(options) => options.dsn = 'https://examplePublicKey@o0.ingest.sentry.io/0',
appRunner: () => runApp(
DefaultAssetBundle(
bundle: SentryAssetBundle(),
child: MyApp(),
),
),
);
}
Copied
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:
Copied
import 'package:sentry_flutter/sentry_flutter.dart';
SentryAssetBundle(enableStructuredDataTracing: false)
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").