Skip to content

Latest commit

 

History

History
79 lines (56 loc) · 2.23 KB

asset-bundle-instrumentation.mdx

File metadata and controls

79 lines (56 loc) · 2.23 KB
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
mobile

AssetBundle instrumentation provides insight into how long your app takes to load its assets, such as files.

Instrumentation Behaviour

The instrumentation starts a span from an active transaction that's bound to the scope of the following calls:

  • load and loadString - The SDK sets the span operation to file.read.
  • loadStructuredData - The SDK sets the span operation to serialize.

Prerequisites

Before starting, ensure:

  1. The Sentry Flutter SDK is initialized. Learn more here.
  2. Tracing is set up. Learn more here.

Configure

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(),
        ),
    ),
  );
}

Verify

1. Execute the Code

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());

2. View the Transaction on Sentry.io

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.

Additional Configuration

Disabling the loadStructuredData Feature

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)